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