2017-01-31 5 views
1

Я никогда не создавал работу CRON раньше, и моя попытка до сих пор не принесла каких-либо ощутимых результатов!Работа WP-cron добавлена, но не работает

Чтобы проверить, я использовал пример другого сайта и добавил код, чтобы получить его просто отправить и отправить по электронной почте, когда задание выполняется, в этом случае ежечасно.

это мой код:

add_action ('my_hourly_event', 'do_this_hourly');

function my_activation() { 
    if (!wp_next_scheduled('my_hourly_event')) { 
     wp_schedule_event(current_time('timestamp'), 'hourly', 'my_hourly_event'); 
    } 
} 
add_action('wp', 'my_activation'); 

function do_this_hourly() { 
    // do something every hour 

    $to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 


    // do something every hour 



} 

теперь используют <?php echo '<pre>'; print_r(_get_cron_array()); echo '</pre>'; ?> я могу видеть, что WordPress действительно видит, что ив создал

[1485859289] => Array 
    (
     [my_hourly_event] => Array 
      (
       [40cd750bba9870f18aada2478b24840a] => Array 
        (
         [schedule] => hourly 
         [args] => Array 
          (
          ) 

         [interval] => 3600 
        ) 

      ) 

    ) 

Но я не могу понять, почему электронная почта не отправляется и то, что мне нужно сделать, чтобы исправить проблема.

Я надеялся, что кто-то здесь может помочь решить проблему?

спасибо за чтение :)

+0

См. Здесь информацию о том, как вы можете отлаживать то, что происходит с событием http://stackoverflow.com/q/19787375/851885 – BadHorsie

+0

Это большое спасибо :) –

+0

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

ответ

0

Я думаю, что мог бы идти на это вы вызываете вашу функцию непосредственно в wp_next_scheduled функции, когда вам нужно позвонить крючок.

Таким образом, функция планировщика (для вас, это «my_activation») проверяет наличие крючка (для вас это «wp»), крючок проверяет функцию (для вас это «my_hourly_function»), а функция отправляет электронное письмо.

Ваша функция электронной почты do_this_hourly() не называется нигде. Таким образом, планировщик планирует cron, но без функции для запуска, когда он запускается. Попробуйте следующее:

function my_activation_scheduler() { 
    if (!wp_next_scheduled('my_activation_action')) { 
     wp_schedule_event(current_time('timestamp'), 'hourly', 'my_activation_action'); 
    } 
} 
add_action('my_activation_action', 'my_hourly_function'); 

function my_hourly_function() { 
    // do something every hour 

    $to  = '[email protected]'; 
    $subject = 'the subject'; 
    $message = 'hello'; 
    $headers = 'From: [email protected]' . "\r\n" . 
     'Reply-To: [email protected]' . "\r\n" . 
     'X-Mailer: PHP/' . phpversion(); 

    mail($to, $subject, $message, $headers); 

    // do something every hour 
} 

Это не проверено, но я считаю, что он должен работать. Я не проверял ваш почтовый код, но все остальное выглядит прямо в моей голове: P

EDIT - я не видел вашего дополнительного действия, потому что он был вне кода, но мой код выше все равно должен сделать трюк ,

 Смежные вопросы

  • Нет связанных вопросов^_^