我已经开发了一个网页,并集成了用于支付的 Cc Avenue网关,并且运行良好。
我的问题是,银行客户的成功付款被重定向到“谢谢”页面,该页面上将包含订单号,日期,客户详细信息等详细信息。URL看起来像:https://mysite/checkout/order-received/785/?key=wc_order_5b909f1966e92
如果我手动将key=wc_order_5b909f1966e92
更改为key=wc_order_5b909f1966e81
,它应该在“谢谢”页面上显示错误,例如“无效订单”。而是显示“谢谢。您的订单已收到。”页面上没有任何订单详细信息。
在更改密钥之前:
更改密钥后:
答案 0 :(得分:1)
以下功能将检查订单密钥的有效性。如果订单密钥不匹配,则会显示一个自定义错误通知(并根据需要重定向到商店页面):
add_action( 'template_redirect', 'check_thankyou_order_key' );
function check_thankyou_order_key() {
if( is_wc_endpoint_url('order-received') && isset($_GET['key']) ) {
global $wp;
$order_id = absint( $wp->query_vars['order-received'] );
$order = wc_get_order( $order_id );
if( $order->get_order_key() != wc_clean($_GET['key']) ){
// Display a custom error notice
wc_add_notice( __('Oups! The order key is invalid…', 'woocommerce'), 'error');
// Optionally redirect to shop page (uncomment code below)
// wp_redirect( get_permalink( wc_get_page_id( 'shop' ) ) );
// exit();
}
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。
通过可选的重定向至商店页面: