我實現 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 關注
- 432 瀏覽
添加回答
舉報
0/150
提交
取消