Callback_handler不会触发WooCommerce

Tom*_*las 6 php wordpress payment-gateway woocommerce

我正在为WooCommerce构建支付网关,其中付款在非现场URL中进行.我需要该页面能够回复给WooCommerce插件,并且"回调"URL实际上是我所需要的.

WooCommerce似乎有这个,但我无法让它工作.你应该能够ping:

http://yoursite/wc-api/WC_your_gateway
Run Code Online (Sandbox Code Playgroud)

然后你应该添加add_action('woocommerce_api_callback','callback_handler'); 然后它应该触发像这个公共函数callback_handler(){}这样的函数

但是当我访问该URL时,我看到的只是我页面上的1 - 我的处理程序应该重定向到另一个页面(这就是我设置它以使其显而易见).我喜欢的是,如果有人有这个工作的例子.我已经尝试将add_action和处理函数放在很多地方,没有运气.

uch*_*eng 5

我也有同样的问题。尝试添加出口;或wp_die(); 在您的回调函数的末尾。

这对我有用。


Jhu*_*eno 2

我遇到了同样的问题,所以,这对我有用:

class WC_mygateway extends WC_Payment_Gateway {
  public function __construct() {
    //'woocommerce_api_'.strtolower(get_class($this)) will result in 'woocommerce_api_wc_mygateway'
    add_action('woocommerce_api_'.strtolower(get_class($this)), array(&$this, 'handle_callback'));
  }
  function handle_callback() {
    //Handle the thing here!
  }
}

function woocommerce_mygateway_add_gateway( $methods ) {
  $methods[] = 'WC_mygateway';
  return $methods
}
add_filter( 'woocommerce_payment_gateways', 'woocommerce_mygateway_add_gateway');
Run Code Online (Sandbox Code Playgroud)

确保您没有遗漏任何这些细节,否则它将无法工作。您也可以使用http://example.com/?wc-api=wc_mygatewayhttp://example.com/wc-api/wc_mygateway来调用它

希望这对遇到这个问题的每个人都有效!