Bạn có thể muốn buộc người dùng đăng nhập để xem giá và thêm sản phẩm vào giỏ hàng. Điều đó có nghĩa là bạn phải ẩn giá và nút thêm vào giỏ hàng trên trang Cửa hàng và Sản phẩm khi người dùng chưa đăng nhập.
Tất cả những gì bạn cần là dán mã sau vào functions.php của bạn (xin lưu ý: chủ đề của bạn có thể đã ghi đè một số chức năng WooCommerce mặc định, do đó mã bên dưới có thể không hoạt động. Hãy liên hệ với tôi nếu bạn cần mã tùy chỉnh).
Code php:
Đoạn mã php Ẩn các nút Thêm vào giỏ hàng và giá nếu chưa đăng nhập @ Cửa hàng WooCommerce, Trang sản phẩm đơn lẻ, Widget, v.v.
/**
* @snippet Hide Price & Add to Cart for Logged Out Users
* @how-to Get Tss247.vn FREE
* @author Nguyễn Văn Hoàng
* @testedwith WooCommerce 7
* @donate $2 https://tss247.vn
*/
add_filter( 'woocommerce_get_price_html', 'tss_hide_price_addcart_not_logged_in', 9999, 2 );
function tss_hide_price_addcart_not_logged_in( $price, $product ) {
if ( ! is_user_logged_in() ) {
$price = '<div><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">' . __( 'Login to see prices', 'tss' ) . '</a></div>';
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
add_filter( 'woocommerce_is_purchasable', '__return_false' );
}
return $price;
}
Thêm code này vào đâu?
Bạn có thể đặt các đoạn mã PHP ở cuối tệp tin functions.php của chủ đề con (xóa “?>” nếu bạn có nó ở đó).
CSS nằm trong tệp style.css của chủ đề con của bạn.
Code này (vẫn) có hoạt động không?
Vui lòng cho tôi biết trong phần nhận xét nếu mọi thứ hoạt động như mong đợi. Tôi sẽ sửa lại đoạn code nếu bạn báo lại với tôi (vui lòng cung cấp ảnh chụp màn hình). Tôi đã kiểm tra mã này với chủ đề Storefront, phiên bản WooCommerce 7 và trên PHP 7.3.
Nếu bạn nghĩ rằng mã này giúp bạn tiết kiệm thời gian và tiền bạc, vui lòng tham gia hơn 14.000 người đăng ký nhận tin hàng tuần để cập nhật bài đăng trên blog.
Chúc các bạn thành công!