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.

Tắt phương thức thanh toán khác khi giỏ hàng có sản phẩm ảo trong WooCommerce

Ví dụ mình tắt phương thức thanh toán là Chuyển khoản ngân hàngThanh 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!

5/5 (1 bình chọn)