我實(shí)現(xiàn) WC_Payment_Gateway 來(lái)自定義我的支付網(wǎng)關(guān),將結(jié)帳頁(yè)面重定向到銀行頁(yè)面以進(jìn)行信用卡流程。信用卡付款后,銀行頁(yè)面將用戶重定向到我設(shè)置的回調(diào)頁(yè)面。我做了一些付款狀態(tài)檢查,然后使用 javascript 將用戶重定向到thankyou.php。 <script>
function myFunction() {
window.location.href = "https://sib-skincare.com/checkout/order-received";
};
</script>然后它只顯示一條簡(jiǎn)單的成功消息,如下所示在檢查thankyou.php頁(yè)面后,我注意到一件事。頁(yè)面首先檢查 ( $order ) 是否退出,然后顯示更多訂單詳細(xì)信息,否則只會(huì)顯示“謝謝。您的訂單已收到”。我的問(wèn)題是 $order 變量何時(shí)設(shè)置?如果我不在thankyou.php頁(yè)面中插入一些代碼來(lái)從會(huì)話和實(shí)例$order對(duì)象中獲取order_id。該對(duì)象始終為 none,因此不會(huì)顯示訂單詳細(xì)信息。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貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以確保在 url 中傳遞訂單 ID 和安全密鑰,如下所示:
https://site-url/checkout/order-received/2878/?key=wc_order_u9DmQCpfdEhcW
您可以從正在執(zhí)行的過(guò)程中獲取訂單 ID,如果您沒(méi)有獲取密鑰,則可以從 postmeta 表中獲取它。
如果您像這樣通過(guò)它,那么您將看到一個(gè)正常的感謝頁(yè)面,其中包含訂單的所有詳細(xì)信息。
根據(jù)您當(dāng)前的網(wǎng)址,網(wǎng)址中沒(méi)有訂單標(biāo)識(shí),因此它會(huì)向您顯示一個(gè)通用的感謝頁(yè)面。
- 1 回答
- 0 關(guān)注
- 443 瀏覽
添加回答
舉報(bào)
0/150
提交
取消