Woocommerce 未调用该回调函数
这是我的密码:Woocommerce 未调用该回调函数,woocommerce,hook-woocommerce,woocommerce-rest-api,Woocommerce,Hook Woocommerce,Woocommerce Rest Api,这是我的密码: add_action( 'plugins_loaded', 'mojo_abc_init', 0 ); function mojo_abc_init() { ... include_once( 'woocommerce-abc.php' ); ... add_filter( 'woocommerce_payment_gateways', 'mojo_add_abc_gateway' ); function mojo_add_abc_gateway( $methods ) {
add_action( 'plugins_loaded', 'mojo_abc_init', 0 );
function mojo_abc_init() {
...
include_once( 'woocommerce-abc.php' );
...
add_filter( 'woocommerce_payment_gateways', 'mojo_add_abc_gateway' );
function mojo_add_abc_gateway( $methods ) {
$methods[] = 'MOJO_ABC';
return $methods;
}
...
}
我的woocommerce-abc.php文件:
class MOJO_ABC extends WC_Payment_Gateway{
function __construct() {
...
add_action('woocommerce_api_mojo_abc', array($this, 'check_abc_response'));
...
}
/* callback function */
function check_abc_response(){
/* code */
wp_die();
}
}
现在我的问题是我的回调函数没有被调用。网址是
相反,屏幕上只显示1,调试日志中也没有显示代码有任何问题
任何帮助都将不胜感激。
谢谢我能够通过禁用所有插件,然后用我的插件逐个添加插件并检查woocommerce的调试日志来解决这个问题 我发现另一个插件有一些bug,这就是干扰我的钩子正确注册的原因,因此没有被调用。我只禁用了那个插件,它开始像一个魔咒一样工作。我已经通知了插件开发者这个问题 对于调试,您应该做一些事情来帮助我发现问题:
` 定义('WP_DEBUG',true); 定义('WP\u DEBUG\u LOG',true); //禁用错误和警告的显示 定义('WP_DEBUG_DISPLAY',false); @ini_集('display_errors',0)
并通过
write.log(“abc”)或
write.log($var)`写入日志
通过这种方式,您可以排除工作流程中可能出现的错误,并关注可能导致问题的其他因素。我会尝试在加载的
woocommerce\u
hook上初始化您的插件。但是,您是否通过woocmerce\u available\u payment\u gateways
过滤器添加网关?您没有显示代码的该部分。@helgatheviking我正在通过Woocomece\u available\u payment\u gateways
过滤器添加网关。我已经编辑了代码。不管怎样,我能解决这个问题。你能把你的解决方案作为答案吗?
if (!function_exists('write_log')) {
function write_log ( $log ) {
if ( true === WP_DEBUG ) {
if ( is_array( $log ) || is_object( $log ) ) {
error_log( print_r( $log, true ) );
} else {
error_log( $log );
}
}
}
}