WooCommerce允许我们开发自定义支付网关,有些网关可能会返回一些自定义信息,或者支付成功会需要用户做进一步的处理,这个时候显示一个自定义感谢页面非常有必要。
本文中,我们将为大家演示怎么根据付款方式不同跳转到不同的订单感谢页面。
实现本文功能的主要代码
下面的代码中,我们首先检查当前页面是否为收到订单页面,如果不是,什么都不做,直接返回。如果是,我们根据订单ID获取订单实例,然后获取该订单的付款方式,最后根据付款方式跳转到自定义感谢页面。
复制
add_action( 'template_redirect', 'rudr_order_received_custom_payment_redirect');
function rudr_order_received_custom_payment_redirect(){
// 如果当前不在收到订单页面,直接返回,什么都不用做
if( ! is_wc_endpoint_url( 'order-received' ) || empty( $_GET[ 'key' ] ) ) {
return;
}
// 获取订单ID
$order_id = wc_get_order_id_by_order_key( $_GET[ 'key' ] );
// 获取 WC_Order 对象的实例
$order = wc_get_order( $order_id );
// 检查该订单的付款方式
if( 'cod' === $order->get_payment_method() ) {
// 如果是货到付款,重定向到一个自定义感谢页面
wp_safe_redirect( site_url( '/custom-page/' ) );
exit;
}
}
除了根据付款方式,我们可以举一反三,只要是订单中有的数据,我们都可以拿来做比较,跳转到需要的页面。例如订单金额超过10000,跳转到升级为VIP的页面。