Как добавить переменные в пользовательский URL-адрес благодарности в Woocommerce - PullRequest
0 голосов
/ 25 сентября 2018

Мне удалось выполнить руководство по перенаправлению https://businessbloomer.com/resolved-woocommerce-redirect-custom-thank-page/

Но, похоже, я не могу добавить переменные woocommerce к URL.

Я хочу что-то вроде этого> http://example.com?EO_ID=M180924-678922&Product_Code=vssx2&Quantity=1&Email=billing_email@gmail.com'

Спасибо.

1 Ответ

0 голосов
/ 25 сентября 2018

Связанный код устарел и не обрабатывает строку запроса URL.Вам необходимо внести изменения и адаптировать код.

Примечание: В заказах может быть много элементов , поэтому, чтобы он работал для вашего случая мы используем только первый элемент .

Попробуйте это (вам нужно определить путь URL для переменной $path):

add_action( 'woocommerce_thankyou', 'thankyou_custom_redirect', 5, 1 );
function thankyou_custom_redirect( $order_id ){
    // Get the WC_Order object instance
    $order         = wc_get_order( $order_id );

    // Order data
    $order_key     = $order->get_order_key(); // Get order key (if needed)
    $transaction_id= $order->get_transaction_id(); // Get order key (if needed)
    $billing_email = $order->get_billing_email(); // Get billing email
    $order_num     = $order->get_order_number(); // Get order number
    $order_date    = $order->get_date_created(); // Get order creation date

    // Order item data (first item)
    $order_items = $order->get_items(); // Get order items
    $first_item  = reset($order_items); // Keep the first Item
    $item_qty    = $first_item->get_quantity(); // Item quantity
    $product     = $first_item->get_product(); // Get the WC_Product object instance
    $sku         = $product->get_sku(); // Get the product code (SKU)

    // Build your query string
    $query_string  = '?EO_ID=' . $order_date->date('ymd') . -rand(pow(10, 5), pow(10, 6)-1);
    $query_string .= '&Product_Code=' . $sku;
    $query_string .= '&Quantity=' . $item_qty;
    $query_string .= '&Email=' . $billing_email;

    $path = '/custom-path/'; // <=== HERE define the url path (without the domain)
    $url  = home_url( $path . $query_string );

    // Not for failed orders
    if ( ! $order->has_status( 'failed' ) ) {
        wp_redirect( $url );
        exit();
    }
}

Код входит вФайл function.php вашей активной дочерней темы (или активной темы).Проверено и работает.

...