我实现 WC_Payment_Gateway 来自定义我的支付网关,将结帐页面重定向到银行页面以进行信用卡流程。信用卡付款后,银行页面将用户重定向到我设置的回调页面。我做了一些付款状态检查,然后使用 javascript 将用户重定向到thankyou.php。 <script>
function myFunction() {
window.location.href = "https://sib-skincare.com/checkout/order-received";
};
</script>然后它只显示一条简单的成功消息,如下所示在检查thankyou.php页面后,我注意到一件事。页面首先检查 ( $order ) 是否退出,然后显示更多订单详细信息,否则只会显示“谢谢。您的订单已收到”。我的问题是 $order 变量何时设置?如果我不在thankyou.php页面中插入一些代码来从会话和实例$order对象中获取order_id。该对象始终为 none,因此不会显示订单详细信息。https://github.com/woocommerce/woocommerce/blob/master/templates/checkout/thankyou.phpdefined( 'ABSPATH' ) || exit;?><div class="woocommerce-order"><?phpif ( $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 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
您可以确保在 url 中传递订单 ID 和安全密钥,如下所示:
https://site-url/checkout/order-received/2878/?key=wc_order_u9DmQCpfdEhcW
您可以从正在执行的过程中获取订单 ID,如果您没有获取密钥,则可以从 postmeta 表中获取它。
如果您像这样通过它,那么您将看到一个正常的感谢页面,其中包含订单的所有详细信息。
根据您当前的网址,网址中没有订单标识,因此它会向您显示一个通用的感谢页面。
- 1 回答
- 0 关注
- 220 浏览
添加回答
举报
0/150
提交
取消