我正在创建一个Woocommerce自定义支付网关插件(它基本上将用户重定向到支付服务页面,然后支付服务页面将用户重定向回特定的URL),一切都按预期工作但我可以&似乎要创建一个自定义的感谢页面来自插件。
我的意思是"来自插件"如果有人安装了我的支付网关插件,他们应该能够看到自定义的感谢页面而无需任何附加操作,例如在WP中添加Woocommerce主题或页面。
以下是我目前用于处理默认感谢页面的内容:
重定向网址由:$this->get_return_url($order))
感谢页面上有:
add_action('woocommerce_thankyou_'.$this->id, array( $this, 'return_handler' ) );
这是我的函数应该处理thankyou页面消息:
public function return_handler() {
$order_id = get_query_var('order-received');
global $woocommerce;
$order = new WC_Order( $order_id );
//NEXT I JUST CHECK THE ORDER AND SHOW MESSAGES DEPENDING ON THE RESULT
}
编辑:如果还有另一种方法可以将用户返回到一个可以触发我的插件功能的URL,那么这可能是一个有效的选项。
答案 0 :(得分:2)
我认为您需要定位的过滤器是woocommerce_payment_successful_result
类中的WC_Checkout
。
function so_27024470_paypal_redirect( $return, $order_id ){
$order = new WC_Order( $order_id );
if( $order->payment_method == 'your-gateway-id' ){
$return['redirect'] = 'http://your-redirect.com';
}
return $return;
}
add_action( 'woocommerce_payment_successful_result, 'so_27024470_paypal_redirect', 10, 2 );
我没有对此进行过测试,因此请自行承担风险。