如果在Woocommerce上的URL中手动更改订单键,则显示错误

问题描述 投票:2回答:1

我已经开发了一个网页和集成的Cc Avenue网关进行支付,它工作正常。

我的问题是,在银行客户成功付款后被重定向到感谢页面,其中包含订单号,日期,客户详细信息等详细信息。该URL看起来像:https://mysite/checkout/order-received/785/?key=wc_order_5b909f1966e92

如果我手动将key=wc_order_5b909f1966e92更改为key=wc_order_5b909f1966e81,它应该在“谢谢”页面上显示错误,例如“无效订单”。相反,它显示“谢谢。您的订单已收到。”没有页面上的任何订单详细信息。

在更改密钥之前:

https://imgur.com/a/c68Q8og

更改密钥后:

enter image description here

php wordpress woocommerce key orders
1个回答
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文件中。经过测试和工作。

enter image description here

通过可选的重定向到商店页面:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.