wp_schedule_event не выполняет мою функцию

Я отключил WP cron в файле wp-config.php и настроил задание cron на своем сервере для запуска в начале каждого часа против http://www.domain.com/wp-cron.php?doing_wp_cron

У меня есть следующий код в моем файле functions.php, но я никогда не получаю электронное письмо, когда задание обрезки выполняется в начале каждого часа.

Я проверил базу данных и подтвердил, что задание находится в таблице wp_options в разделе «cron».

Я не могу понять, что я делаю неправильно, из-за чего письмо не срабатывает.

// Scheduled Action Hook
    function menu_update_reminder( ) {
        mail('[email protected]', 'Cron ran successfully', 'Cron ran successfully');
}

// Schedule Cron Job Event
function menu_update_cron() {
    if ( ! wp_next_scheduled( 'menu_update_reminder' ) ) {
        wp_schedule_event( current_time( 'timestamp' ), 'hourly', 'menu_update_reminder' );
    }
}
add_action( 'wp', 'menu_update_cron' );

person unu    schedule 20.04.2016    source источник
comment
может быть идеей зарегистрировать, а также отправить электронное письмо, по крайней мере, вы знаете, является ли это проблемой с почтой или проблемой cron.   -  person David    schedule 21.04.2016
comment
вы пробовали использовать wp_mail?   -  person neoprez    schedule 21.04.2016


Ответы (1)


В итоге у меня не было самой полезной части кода. add_action для фактического запуска кода в функции после запуска задания cron.

Функция menu_update_reminder была переименована в menu_update_reminder_run.

// Scheduled Action Hook
function menu_update_reminder_run( ) {
    mail('[email protected]', 'Cron ran successfully', 'Cron ran successfully');
}
add_action( 'menu_update_reminder' , 'menu_update_reminder_run' );

// Schedule Cron Job Event
function menu_update_cron() {
if ( ! wp_next_scheduled( 'menu_update_reminder' ) ) {
    wp_schedule_event( current_time( 'timestamp' ), 'hourly', 'menu_update_reminder' );
    }
}
add_action( 'wp', 'menu_update_cron' );
person unu    schedule 21.04.2016