2017-01-19 47 views
0

我使用admin-ajax.php來響應來自JavaScript的請求。WordPress管理員 - 阿賈克斯 - 推遲行動,直到發送迴應後

當我將所需的數據放在一起並返回我的響應時,我還需要將一些數據發送到外部API並向用戶發送電子郵件。這兩件事都需要一點時間。

我希望我可以做這樣的事情這將掀起動作之前通過AJAX返回JSON響應,使他們能夠在後臺實際上發生的反應是回來之後用戶:

function my_ajax_action() { 
     //process the $_REQUEST ajax data here 
     echo json_encode($results); 

     do_action('request_successful', $results); 

     wp_die(); 
} 

......但它顯然正在等待在它死亡之前完成這些操作(因爲PHP不是異步的),並且在提供響應之前AJAX請求才會完成。

有沒有任何已知的方法推遲這些行動,直到響應完全發送後?附加到這些操作的兩個功能不需要提供響應,只需要幾秒鐘就可以在用戶瀏覽器中顯示結果所需的時間。

我在猜測我可以將它們存儲在cron作業中,很快就會發生,但我覺得很可能有人已經以更好的方式解決了這個問題。

感謝 亞倫

回答