Php 回调处理程序赢得';不要炒作商业
我正在为WooCommerce构建一个支付网关,在该网关中,支付在一个非现场URL中进行。我需要那个页面能够向WooCommerce插件发送消息,而“回调”URL就是我真正需要的 WooCommerce似乎有这个,但我无法让它工作。您应该能够ping:Php 回调处理程序赢得';不要炒作商业,php,wordpress,woocommerce,payment-gateway,Php,Wordpress,Woocommerce,Payment Gateway,我正在为WooCommerce构建一个支付网关,在该网关中,支付在一个非现场URL中进行。我需要那个页面能够向WooCommerce插件发送消息,而“回调”URL就是我真正需要的 WooCommerce似乎有这个,但我无法让它工作。您应该能够ping: http://yoursite/wc-api/WC_your_gateway 然后你应该加上 添加_操作('woocommerce_api_callback','callback_handler'); 然后它应该触发这样的函数 公共函数回调函数
http://yoursite/wc-api/WC_your_gateway
然后你应该加上
添加_操作('woocommerce_api_callback','callback_handler');
然后它应该触发这样的函数
公共函数回调函数处理程序(){}
但当我转到那个URL时,我在页面上看到的只是一个1——我的处理程序应该重定向到另一个页面(这就是我设置它的目的,以使其变得明显)。我喜欢的是,如果有人能举一个这样的例子。我尝试过将add_操作和处理函数放在很多地方,但运气不好。我也遇到了同样的问题,因此,这对我来说很有效:
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');
确保你没有遗漏任何细节,否则它不会起作用。你也可以用或来称呼它
希望这项工作为每个人都陷入这个问题 我也有同样的问题。尝试添加出口;或wp_die();在回调函数的末尾 这对我很有用。您是否尝试过使用(在末尾添加斜杠)
另外,add_操作应该是“woocommerce_api{class_name}”,而不是“woocommerce_api_callback”。因此,对于您的示例,它应该是“woocommerce\u api\u wc\u your\u gateway”。此外,您必须使用函数名“handle\u callback”,不能重命名它。浪费我大约五个小时。。。