我已经开发了一个网页和集成的Cc Avenue网关进行支付,它工作正常。
我的问题是,在银行客户成功付款后被重定向到感谢页面,其中包含订单号,日期,客户详细信息等详细信息。该URL看起来像:https://mysite/checkout/order-received/785/?key=wc_order_5b909f1966e92
如果我手动将key=wc_order_5b909f1966e92
更改为key=wc_order_5b909f1966e81
,它应该在“谢谢”页面上显示错误,例如“无效订单”。相反,它显示“谢谢。您的订单已收到。”没有页面上的任何订单详细信息。
在更改密钥之前:
更改密钥后:
以下功能将检查订单密钥的有效性。如果订单键不匹配,它将显示自定义错误通知(如果需要,可选择重定向到商店页面):
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文件中。经过测试和工作。
通过可选的重定向到商店页面: