Ẩn nút add to cart WooCommerce (thêm vào giỏ hàng) như thế nào?

  • Được đăng bởi Miliweb

  • 02 Tháng Một, 2024

Để ẩn nút add to cart WooCommerce rất đơn giản. Bạn chỉ cần thêm đoạn code là được. Dưới đây, mình sẽ chia sẻ với các bạn một số đoạn code để ẩn nút thêm vào giỏ hàng rất đơn giản.

Cách ẩn nút add to cart WooCommerce với mọi sản phẩm

Để ẩn đi nút thêm vào giỏ hàng trong WooCommerce cho tất cả mọi sản phẩm, từ trang quản trị WordPress, bạn điều hướng đến wp-content -> Plugins -> WooCommerce rồi mở tệp woocommerce.php ra. Sau dòng 904, bạn thêm 2 hook dưới đây:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

Sau khi thêm đoạn code xong, bạn lưu tệp lại và quay trở về trang sản phẩm. Tại đây, bạn sẽ thấy nút add to cart bị xóa.

Hoặc bạn cũng có thể thêm vào tệp functions.php. Hãy mở tệp ra và bỏ đoạn code dưới đây vào vị trí cuối cùng của tệp. Tuy nhiên, cách này có thể gặp phải lỗi trong một số trường hợp. Trong trường hợp này, bạn có thể liên hệ mình để hỗ trợ xử lý nhé.

/**
 * Hides the price and add-to-cart button from the product
 * 
 * @copyright paulchinmoy.com
 * @author Paul Chinmoy
 **/
add_action( 'init', 'paulc_hide_price_add_to_cart_button', 1000 );
function paulc_hide_price_add_to_cart_button() {
    add_filter( 'woocommerce_get_price_html', '__return_false' );
    add_filter( 'woocommerce_loop_add_to_cart_link', '__return_null' );
    add_filter( 'wc_get_template', 'paulc_wc_get_template', 90, 2 );
}
/**
 * Hides the add-to-cart button from the single product page
 * 
 * @copyright paulchinmoy.com
 * @author Paul Chinmoy
 **/
function paulc_wc_get_template( $located, $template_name ) {
    $new_path = get_stylesheet_directory_uri() . '/woocommerce/no-add-to-cart-button.php';
    $templates = array(
    	'single-product/add-to-cart/simple.php',
        'single-product/add-to-cart/grouped.php',
        'single-product/add-to-cart/variable.php',
        'single-product/add-to-cart/external.php'
    );
    if( in_array( $template_name, $templates ) ) {
    	return $new_path;
    }
    return $located;
}

Cách xóa nút add to cart cho từng sản phẩm cụ thể

Nếu như bạn chỉ muốn xóa nút thêm vào giỏ hàng cho một hoặc một vài sản phẩm nào đó thôi thì sẽ đơn giản hơn. Có những cách như sau:

Cách 1. Không thêm giá

Nếu không điền trường giá cho sản phẩm thì sản phẩm đó sẽ không hiển thị giá và nút, do đó nút add to cart cũng không xuất hiện.

Cách 2. Để số lượng sản phẩm là 0

Bạn kích hoạt quản lý kho hàng và để số lượng sản phẩm là 0.

Cách 3. Thêm code

Cách này sẽ phức tạp hơn một chút. Bạn viết bộ lọc với hook woocommerce_is_purchasable để một ID sản phẩm trả về kết quả false. Như vậy, sản phẩm vẫn sẽ hiển thị giá cùng với ghi chú “sản phẩm không thể mua” chứ không hiện nút add to cart (thêm vào giỏ hàng).

Trong tệp functions.php, bạn hãy thêm đoạn code sau đây:

add_filter('woocommerce_is_purchasable', 'my_woocommerce_is_purchasable', 10, 2);
function my_woocommerce_is_purchasable($is_purchasable, $product) {
        return ($product->id == whatever_mambo_jambo_id_you_want ? false : $is_purchasable);
}

Như vậy, bạn đã hoàn thành ẩn nút add to cart WooCommerce. Nếu còn gặp khó khăn khi xóa nút này, hãy liên hệ với mình để được hỗ trợ sớm nhất nhé!

Chia sẽ bài viết:

Bài viết liên quan