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的主要内容,如果未能解决你的问题,请参考以下文章