Итак, я добавил эту строку в сторонний плагин, который передаст задачу моему плагину сразу после оформления заказа (до экрана подтверждения заказа):
do_action('handover', $order_id);
Это код в моем плагине:
function myMainFunction($orderId) {
//do some image processing here and add something to DB
}
function run_my_cron_job($order_id){
wp_schedule_single_event( time(), 'my_cron', array($order_id));
}
add_action( 'handover', 'run_my_cron_job', 10 , 1);
add_action( 'my_cron','myMainFunction', 10, 1);
Это работает хорошо, за исключением того, что основная функция запускается всегда три раза в сочетании с заданием cron. Если я запускаю основной код вручную, он запускается как задумано - только один раз. Я хочу, чтобы это было асинхронно, поскольку обработка изображений занимает некоторое время. Любой совет, как это исправить?