Chuyển hướng đến các trang khác nhau cho các sản phẩm khác nhau sau khi thanh toán mà không cần plugin

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;
        }
    }
}

Discuss