首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP-cron作业添加但未运行

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

Stack Overflow用户
提问于 2017-01-31 12:27:53
回答 1查看 955关注 0票数 1

我从来没有创造过一个CRON的工作,我的尝试到目前为止还没有产生任何实际的结果!

为了进行测试,我使用了另一个站点的一个例子,并添加了一些代码,以便在作业运行时简单地发送和发送电子邮件,在本例中是每小时发送一次。

这是我的密码:

Add_action(‘my_逐时事件’,'do_this_hourly');

代码语言:javascript
复制
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



}

现在使用<?php echo '<pre>'; print_r( _get_cron_array() ); echo '</pre>'; ?>,我可以看到wordpress确实看到了我创建了什么

代码语言:javascript
复制
[1485859289] => Array
    (
        [my_hourly_event] => Array
            (
                [40cd750bba9870f18aada2478b24840a] => Array
                    (
                        [schedule] => hourly
                        [args] => Array
                            (
                            )

                        [interval] => 3600
                    )

            )

    )

但是我不知道为什么邮件没有发送,我需要做些什么来解决这个问题。

我希望这里有人能帮我解决这个问题?

谢谢你的阅读:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-31 17:29:01

我认为,当您需要调用钩子时,可能会在wp_next_scheduled函数中直接调用您的函数。

所以调度器函数(对您来说是"my_activation")检查钩子(对您来说是"wp"),钩子检查函数(对于您来说是"my_hourly_function"),并且函数发送电子邮件。

您的电子邮件功能do_this_hourly()不在任何地方调用。所以调度程序正在调度一个cron,但是在触发它时没有函数可以运行。试试这个:

代码语言:javascript
复制
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

编辑-我没有看到您的附加操作,因为它在代码块之外,但我上面的代码仍然可以做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41957607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档