Nếu cửa hàng có bạn có sản phẩm ảo và bạn muốn tắt phương thức thanh toán khác khi giỏ hàng có sản phẩm ảo trong WooCommerce, bài viết này sẽ giúp bạn.
Ví dụ mình tắt phương thức thanh toán là Chuyển khoản ngân hàng và Thanh toán khi nhận hàng khi giỏ hàng có sản phẩm ảo (hoặc bạn cũng có thể thêm sản phẩm có thể tải về).
// Tắt các phương thức thanh toán khác khi có sản phẩm ảo
add_filter('woocommerce_available_payment_gateways', 'conditional_payment_gateways', 10, 1);
function conditional_payment_gateways($available_gateways) {
if (is_admin()) return $available_gateways;
$prod_virtual = false;
foreach (WC()->cart->get_cart() as $cart_item_key => $cart_item) {
$product = wc_get_product($cart_item['product_id']);
if ($product->is_virtual()) $prod_virtual = true;
break;
}
if ($prod_virtual) {
unset($available_gateways['bacs']);
unset($available_gateways['cod']);
}
return $available_gateways;
}
Các bạn thêm đoạn mã trên vào functions.php
nhé.
Chúc các bạn thành công!
Không có bình luận.