Ẩn nút “Thêm vào giỏ hàng” nếu sản phẩm đã được mua trong WooCommerce

Trong WooCommerce, mặc định, người dùng có thể thêm sản phẩm vào giỏ hàng bất kể sản phẩm đó đã được mua hay chưa.

Tuy nhiên, có những trường hợp bạn muốn ẩn nút “Thêm vào giỏ hàng” nếu sản phẩm đã được mua để tránh sự nhầm lẫn hoặc không cần thiết cho khách hàng. Trong bài viết này, chúng ta sẽ tìm hiểu cách thực hiện điều này trong WooCommerce.

Bước 1: Sửa đổi file functions.php hoặc tạo plugin tùy chỉnh

Để ẩn nút “Thêm vào giỏ hàng” nếu sản phẩm đã được mua, chúng ta cần thêm đoạn mã tùy chỉnh vào file functions.php của theme hoặc tạo một plugin tùy chỉnh.

Cách 1: Sửa đổi file functions.php của theme

  • Truy cập trang quản lý theme trong WordPress và tìm theme đang được sử dụng.
  • Nhấp vào “Chỉnh sửa” để mở file functions.php của theme trong trình soạn thảo mã.
  • Thêm đoạn mã sau vào cuối file:
add_filter( 'woocommerce_is_purchasable', 'custom_hide_add_to_cart_if_purchased', 10, 2 );

function custom_hide_add_to_cart_if_purchased( $purchasable, $product ) {
    if ( $product->is_type( 'simple' ) && wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
        $purchasable = false;
    }
    return $purchasable;
}

Cách 2: Tạo một plugin tùy chỉnh

  • Tạo một thư mục mới trong thư mục wp-content/plugins/ của trang web WordPress và đặt tên cho thư mục này (ví dụ: custom-hide-add-to-cart).
  • Trong thư mục mới, tạo một file mới và đặt tên cho file này (ví dụ: custom-hide-add-to-cart.php).
  • Mở file custom-hide-add-to-cart.php và thêm đoạn mã sau:
<?php
/*
Plugin Name: Custom Hide Add to Cart
*/

add_filter( 'woocommerce_is_purchasable', 'custom_hide_add_to_cart_if_purchased', 10, 2 );

function custom_hide_add_to_cart_if_purchased( $purchasable, $product ) {
    if ( $product->is_type( 'simple' ) && wc_customer_bought_product( '', get_current_user_id(), $product->get_id() ) ) {
        $purchasable = false;
    }
    return $purchasable;
}
  • Lưu file và kích hoạt plugin mới tạo trong trang quản lý WordPress.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu cách ẩn nút “Thêm vào giỏ hàng” nếu sản phẩm đã được mua trong WooCommerce. Bằng cách thêm đoạn mã tùy chỉnh vào file functions.php hoặc tạo một plugin tùy chỉnh, bạn có thể tạo trải nghiệm mua sắm linh hoạt và tiện lợi hơn cho khách hàng.

Bài viết có hữu ích không?
Đánh giá bài viết