使用 wp_schedule_single_event 讓 wp_remote_post 請求背景執行

我們在 WordPress 裡當客戶填表後,會有需要背景執行 wp_remote_post 的需求,透過背景行我們可以減少前端畫面的回應時間,增加使用者體驗。

建立 action hook

function wp_remote_post_async($url, $data) {
    wp_remote_post($url, $data);
}

add_action( 'run_wp_remote_post_async', 'wp_remote_post_async', 10, 2);

使用方式

 $timestamp = time() + 1; // 1 seconds in the future
 wp_schedule_single_event( $timestamp, 'run_wp_remote_post_async', array('url' => '', 'data' => [])