WP-cron作业已添加但未运行

时间:2017-01-31 12:27:54

标签: php wordpress cron

我以前从未创建过CRON工作,到目前为止我的尝试都没有产生任何实际结果!

要测试我已经使用了另一个网站的示例并添加了一些代码,以便在作业运行时简单地发送和发送电子邮件,在这种情况下每小时一次。

这是我的代码:

add_action(' my_hourly_event',' do_this_hourly');

import numpy as np
from vispy import plot as vp

fig = vp.Fig(size=(600, 500), show=True)

x=[0,1,2,3,4,5,6]
y=x
line = fig[0, 0].plot((x, y), width=3, color='k')
fig.show()

现在使用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 = 'jon@mydomain.com'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@mydomain.com' . "\r\n" . 'Reply-To: webmaster@mydomain.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); // do something every hour } 我可以看到wordpress确实看到了我创造的内容

<?php  echo '<pre>'; print_r( _get_cron_array() ); echo '</pre>'; ?>

但我无法解决为什么不发送电子邮件以及我需要采取哪些措施来解决问题。

我希望有人可以帮助解决这个问题吗?

感谢阅读:)

1 个答案:

答案 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      = 'jon@mydomain.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@mydomain.com' . "\r\n" .
       'Reply-To: webmaster@mydomain.com' . "\r\n" .
       'X-Mailer: PHP/' . phpversion();

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

    // do something every hour
}

这是未经测试的,但我相信它应该有效。我没有检查你的邮件代码,但其他一切看起来都在我脑海中:P

编辑 - 我没有看到你的额外动作,因为它在代码块之外,但我上面的代码仍然可以解决问题。