Woocommerce - перенаправление на страницу с полученным заказом, но детали заказа не отображаются - PullRequest
0 голосов
/ 21 июня 2020

Я использую WC_Payment_Gateway для настройки своего платежного шлюза, который перенаправляет страницу оформления заказа на страницу банка для обработки кредитной карты.

После оплаты кредитной картой страница банка перенаправляет пользователя на страницу обратного вызова, которую я установил. Я провожу некоторую проверку статуса платежа, а затем перенаправляю пользователя на thankyou. php с помощью javascript.

 <script>
     function myFunction() {
         window.location.href = "https://sib-skincare.com/checkout/order-received";
     };
 </script>

Затем отображается только простое успешное сообщение, подобное этому enter image description here

After I check the thankyou.php page, I notice one thing. The page firstly check if ( $order ) exits then it shows more order detail information otherwise it will only show "Thank you. Your order has been received."

My question is when the $order variable is set? If I don't insert some code in the thankyou.php page to get order_id from session and instance $order object. The object will always be none therefore order detail are not shown.

https://github.com/woocommerce/woocommerce/blob/master/templates/checkout/thankyou.php

defined( 'ABSPATH' ) || exit;
?>

<div class="woocommerce-order">

<?php
if ( $order ) :
    do_action( 'woocommerce_before_thankyou', $order->get_id() );
    ......
    .......

<?php else : ?>

    <p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', esc_html__( 'Thank you. Your order has been received.', 'woocommerce' ), null ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>

<?php endif; ?>

</div>

1 Ответ

1 голос
/ 21 июня 2020

Вы можете убедиться, что вы передаете идентификатор заказа и защищенный ключ, например, в URL-адресе:

https://site-url/checkout/order-received/2878/?key=wc_order_u9DmQCpfdEhcW

Идентификатор заказа, который вы можете получить в процессе, который вы выполняете , и если вы не получаете ключ, вы можете взять его из таблицы postmeta.

Если вы передадите его таким образом, вы увидите обычную страницу с благодарностью со всеми деталями заказа.

Согласно вашему текущему URL-адресу, в URL-адресе отсутствует идентификация порядка, поэтому отображается общая c страница с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...