基于付款方式的WooCommerce订单接收重定向

时间:2017-09-05 12:34:07

标签: php wordpress woocommerce orders payment-method

通常在WooCommerce中,提交的订单会在付款完成后重定向到/order-received/

是否可以将客户重定向到特定付款方式的自定义页面?

例如:

Payment method 1 -> /order-received/
Payment method 2 -> /custom-page/
Payment method 3 -> /order-received/

2 个答案:

答案 0 :(得分:4)

使用条件函数 template_redirect is_wc_endpoint_url() 操作挂钩中附加自定义函数,并定位您所需的付款方式,将客户重定向到具体页面:

add_action( 'template_redirect', 'thankyou_custom_payment_redirect');
function thankyou_custom_payment_redirect(){
    if ( is_wc_endpoint_url( 'order-received' ) ) {
        global $wp;

        // Get the order ID
        $order_id =  intval( str_replace( 'checkout/order-received/', '', $wp->request ) );

        // Get an instance of the WC_Order object
        $order = wc_get_order( $order_id );

        // Set HERE your Payment Gateway ID
        if( $order->get_payment_method() == 'cheque' ){

            // Set HERE your custom URL path
            wp_redirect( home_url( '/custom-page/' ) );
        }
    }
    exit(); // always exit
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码经过测试并有效。

  

如何获取付款网关ID(WC设置>结帐标签):

     

enter image description here

答案 1 :(得分:0)

稍作修正。

“退出”必须在最后一个条件之内

set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")