Woocommerce:支付网关自定义感谢页面


Woocommerce: Payment gateway custom thank you page

我正在创建一个 WooCommerce 自定义支付网关插件(它基本上将用户重定向到支付服务页面,然后支付服务页面将用户重定向回指定的 URL),一切都按预期工作,但我似乎无法从插件创建自定义感谢页面。

我所说的"从插件"的意思是,如果有人安装了我的支付网关插件,他们应该能够看到自定义的感谢页面,而无需任何额外的操作,例如在 WP 中添加 WooCommerce 主题或页面。

以下是我目前用于处理默认感谢页面的内容:

重定向 URL 由以下人员提供:$this->get_return_url($order))

感谢页面与以下内容挂钩:

add_action('woocommerce_thankyou_'.$this->id, array( $this, 'return_handler' ) );

这是我应该处理感谢页面消息的函数:

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,则可能是一个有效的选项。

我认为您需要定位的过滤器是woocommerce_payment_successful_resultWC_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 );

我还没有测试过这个,所以使用风险自负。