Hi anh em, nay mình gặp 1 case cũng khá vui mà trước giờ mình chưa từ gặp cụ thể như sau:
Khách hàng yêu cầu khi đơn hàng có sản phẩm chỉ định thì sau khi order thì nó cần được chuyển đến form thông tin tương ứng.
Giải thích: tức là đơn hàng A sẽ chuyển đến form A và đơn hàng B sẽ chuyển đến form B sau khi thanh toán.
Bên là code xử lý case này, anh em thêm nó vào file functions.php là done nhé!
// Thêm hành động vào 'template_redirect' với hàm 'bunnywp_different_thank_you_pages_for_different_products'
add_action('template_redirect', 'bunnywp_different_thank_you_pages_for_different_products');
// Hàm này được sử dụng để chuyển hướng người dùng đến các trang cảm ơn khác nhau tùy thuộc vào sản phẩm đã mua
function bunnywp_different_thank_you_pages_for_different_products() {
// Kiểm tra xem endpoint có phải là 'order-received' và key có tồn tại không
if (!is_wc_endpoint_url('order-received') || empty($_GET['key'])) {
return;
}
// Lấy ID đơn hàng bằng cách sử dụng key
$order_id = wc_get_order_id_by_order_key($_GET['key']);
// Lấy thông tin đơn hàng
$order = wc_get_order($order_id);
// Duyệt qua các sản phẩm trong đơn hàng
foreach ($order->get_items() as $item) {
// Nếu ID sản phẩm là 6868, chuyển hướng người dùng đến URL thứ nhất
if ($item['product_id'] == 6868) {
wp_redirect('your first URL here');
exit;
}
// Nếu ID sản phẩm là 6869, chuyển hướng người dùng đến URL thứ nhất
if ($item['product_id'] == 6869) {
wp_redirect('your first URL here');
exit;
}
}
}