我试图在wordpress ajax操作中再添加一个回调函数
woocommerce_apply_coupon
这个wp_ajax操作是在wooccommerce插件中定义的,我想从我的插件文件中添加我自己的回调函数。
我试过什么-
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中这样做甚至没有显示任何错误,就像我看不到这段代码的任何效果一样。
想知道这是否有可能实现。谢谢。
好吧,我想回答我自己的问题,因为似乎没有人回答。
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(赋予我的回调函数最高优先级),它实际上起到了作用!
这是未经测试的,但我会尝试在加载所有插件后删除原始操作,然后添加您的替代:
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
}