Chuyển thẳng đến trang thanh toán nếu vật phẩm ảo được thêm vào giỏ hàng trong WooCommerce

Trong một số trường hợp, bạn không muốn khách hàng phải trải qua bước xem giỏ hàng nếu họ mua sản phẩm kỹ thuật số hoặc vật phẩm ảo (virtual product). Ví dụ như: khóa học online, file tải về, hoặc dịch vụ kỹ thuật số. Việc chuyển thẳng đến trang thanh toán giúp tiết kiệm thời gian và tăng tỷ lệ chuyển đổi.

Chuyển thẳng đến trang thanh toán nếu vật phẩm ảo được thêm vào giỏ hàng trong WooCommerce

Trong bài viết này, mình sẽ hướng dẫn bạn cách tự động chuyển đến trang thanh toán (checkout) nếu khách hàng thêm một sản phẩm ảo vào giỏ hàng trong WooCommerce.

Cách thực hiện

Thêm đoạn mã sau vào functions.php.

// Chuyển thẳng đến trang thanh toán nếu là sản phẩm ảo
add_filter('woocommerce_add_to_cart_redirect', 'custom_skip_cart_for_virtual_product');

function custom_skip_cart_for_virtual_product($url) {
    if (!isset($_POST['add-to-cart'])) return $url;

    $product_id = absint($_POST['add-to-cart']);
    $product = wc_get_product($product_id);

    // Nếu là sản phẩm ảo thì chuyển hướng đến trang thanh toán
    if ($product && $product->is_virtual()) {
        return wc_get_checkout_url();
    }

    return $url;
}

Giải thích đoạn mã

  • woocommerce_add_to_cart_redirect: là hook cho phép can thiệp vào quá trình chuyển hướng sau khi thêm sản phẩm vào giỏ
  • Hàm is_virtual() sẽ kiểm tra xem sản phẩm có phải là vật phẩm ảo hay không
  • Nếu đúng, người dùng sẽ được chuyển thẳng đến trang thanh toán thay vì ở lại trang sản phẩm hoặc chuyển sang giỏ hàng

Lưu ý

  • Áp dụng tốt cho các website bán sản phẩm kỹ thuật số, dịch vụ, file tải về, hoặc kích hoạt đăng ký ngay lập tức
  • Nếu bạn bán cả sản phẩm vật lý và sản phẩm ảo, bạn có thể bổ sung điều kiện phức tạp hơn để kiểm tra toàn bộ giỏ hàng, không chỉ sản phẩm vừa thêm

Chúc bạn thành công! Nếu bạn thấy hữu ích, hãy chia sẻ bài viết này đến những người đang xây dựng cửa hàng WooCommerce giống bạn nhé!

Bình Luận


  • Không có bình luận.