我试图在wordpress ajax动作中添加一个回调函数
woocommerce_apply_coupon
这个wp_ajax动作是在woocommerce插件中定义的,我想从我的插件文件中添加我自己的回调函数。
我尝试了什么 -
add_action( 'wp_ajax_nopriv_woocommerce_apply_coupon','darn',999);
add_action( 'wp_ajax_woocommerce_apply_coupon', 'darn',999);
function darn(){
print_r($_REQUEST);
exit;
}
在我的functions.php中执行此操作甚至没有显示任何错误,就像我看不到此代码的任何影响。
想知道这是否有可能实现。三江源。
答案 0 :(得分:0)
这是未经测试的,但我会尝试解决此问题,在加载所有插件后删除原来的操作,然后添加替代品:
add_action( 'plugins_loaded', 'b5f_new_ajax_coupon', 15 );
function b5f_new_ajax_coupon()
{
remove_action( 'wp_ajax_woocommerce_apply_coupon', 'woocommerce_ajax_apply_coupon' );
remove_action( 'wp_ajax_nopriv_woocommerce_apply_coupon', 'woocommerce_ajax_apply_coupon' );
add_action( 'wp_ajax_woocommerce_apply_coupon', 'b5f_ajax_apply_coupon' );
add_action( 'wp_ajax_nopriv_woocommerce_apply_coupon', 'b5f_ajax_apply_coupon' );
}
function b5f_ajax_apply_coupon()
{
// COPY THE ORIGINAL /woocommerce/woocommerce-ajax.php#L57
// AND ADAPT TO YOUR NEEDS
}
答案 1 :(得分:0)
我想回答我自己的问题,因为似乎没有人回答它。
add_action( 'wp_ajax_nopriv_woocommerce_apply_coupon','darn',1);
add_action( 'wp_ajax_woocommerce_apply_coupon', 'darn',1);
function darn(){
print_r($_REQUEST);
exit;
}
通过将优先级设置为1(将我的回调函数作为最高优先级)它实际上有效!