Callback_handler 不会触发 WooCommerce

Posted

技术标签:

【中文标题】Callback_handler 不会触发 WooCommerce【英文标题】:Callback_handler won't fire WooCommerce 【发布时间】:2014-07-26 19:01:13 【问题描述】:

我正在为 WooCommerce 构建一个支付网关,其中支付发生在一个异地 URL 中。我需要该页面能够向 WooCommerce 插件发送消息,而“回调” URL 确实是我所需要的。

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

http://yoursite/wc-api/WC_your_gateway

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

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

【问题讨论】:

【参考方案1】:

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

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');

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

希望这对每个遇到此问题的人都有帮助!

【讨论】:

另外,必须使用函数名'handle_callback',不能重命名。浪费我大约五个小时......【参考方案2】:

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

这对我有用。

【讨论】:

【参考方案3】:

您是否尝试过使用http://yoursite/wc-api/WC_your_gateway/(在末尾添加斜杠)?

另外,add_action 应该是“woocommerce_api_class_name”而不是“woocommerce_api_callback”。因此,对于您的示例,它应该是“woocommerce_api_wc_your_gateway”。

【讨论】:

以上是关于Callback_handler 不会触发 WooCommerce的主要内容,如果未能解决你的问题,请参考以下文章

Ruby Woo

MAC子弹头,除了Ruby Woo,良心推荐这10个色!

只知道Ruby Woo?这20支热门MAC不来看看嘛

php Woo Checkout Fields&Arrays #woo

如何在正常的WordPress网站中集成支付网关?

Woo-commerce 评论不适用于单个产品页面