wp_schedule_single_event не вызывает мое действие - PullRequest
0 голосов
/ 27 января 2020

Функция wp_schedule_single_event работает в функциях. php, но не работает в пользовательском файле плагина

if ( !function_exists( 'wp_schedule_single_event' ) ) {
    require_once ABSPATH . WPINC . '/cron.php'; 
}

add_action('test', 'test_action');
do_action('test');

function test_action() {
    if( ! wp_next_scheduled( 'cron' ) ) {
        wp_schedule_single_event( time() + 10, 'cron' );
    }
}

add_action('cron', 'send_email_cron');
function send_email_cron() {
    // wp_mail() function
}

Что не так?

1 Ответ

0 голосов
/ 27 января 2020

Прикрепить действие к init или wp

add_action('wp', 'test_action');

Итак, окончательный код:

if ( !function_exists( 'wp_schedule_single_event' ) ) {
    require_once ABSPATH . WPINC . '/cron.php'; 
}

add_action('init', 'test_action');

function test_action() {
    if( ! wp_next_scheduled( 'cron' ) ) {
        wp_schedule_single_event( time() + 10, 'cron' );
    }
}

add_action('cron', 'send_email_cron');
function send_email_cron() {
    // wp_mail() function
}
...