WordPress:do#u action赢了';不能在ajax回调函数中工作

WordPress:do#u action赢了';不能在ajax回调函数中工作,ajax,wordpress,wordpress-action,Ajax,Wordpress,Wordpress Action,我想在ajax任务成功完成时执行一些操作。例如,如果项目添加到购物车,我想发送电子邮件。还可能执行一些其他操作 设置do_操作('prefix_item_added_to_cart',$args)无法识别,因此add_action不会执行任务,在我发送电子邮件的情况下 如果我编写代码和程序代码来发送电子邮件,效果很好,但是使用do\u action 不起作用 作品 你只需要调用这个函数。无论从何处获取$args,只要将其作为函数的参数传递即可 // ajax callback function

我想在ajax任务成功完成时执行一些操作。例如,如果项目添加到购物车,我想发送电子邮件。还可能执行一些其他操作

设置
do_操作('prefix_item_added_to_cart',$args)
无法识别,因此
add_action
不会执行任务,在我发送电子邮件的情况下

如果我编写代码和程序代码来发送电子邮件,效果很好,但是使用
do\u action

不起作用 作品
你只需要调用这个函数。无论从何处获取
$args
,只要将其作为函数的参数传递即可

// ajax callback function
function my_ajax_callback() {

    ...
    // add item to cart
    $cart =. new Cart();
    $cart_id = $cart->add_item($params);

    // if item added successfully
    if($cart_id){
        // perform action
        send_email_to_user($args);
    }
    ...
    exit(); /// if it's ajax function, don't forget to exit or die.
}

这可能只是执行顺序的问题。当WP执行AJAX调用时,它通过admin-AJAX.php。您应该100%确保您的“add_操作”在AJAX处理程序之前被调用
function my_ajax_callback() {

    ...
    // add item to cart
    $cart =. new Cart();
    $cart_id = $cart->add_item($params);

    // if item added successfully
    if($cart_id){
        // send email notification
        wp_mail('set params for email');
    }
    ...

}
// ajax callback function
function my_ajax_callback() {

    ...
    // add item to cart
    $cart =. new Cart();
    $cart_id = $cart->add_item($params);

    // if item added successfully
    if($cart_id){
        // perform action
        send_email_to_user($args);
    }
    ...
    exit(); /// if it's ajax function, don't forget to exit or die.
}