在准确的时间安排提醒

时间:2016-11-23 作者:Gowri

我有活动网站。我想在活动前2小时向订阅者发送有关活动的提醒。

那么,如何安排wordpress在准确的时间调用函数呢。

我知道wp\\U时间表和cron。但这对我没有帮助。

不要推荐插件。因为我正在开发自定义插件。那么,正确的方法是什么呢。

示例:如果活动开始时间是今天晚上11:30,我想在晚上9:30提醒活动订阅者。

1 个回复
SO网友:TDEgypt

我支持萨缪勒的评论,是的,克朗是一条出路。但是,哪个cron?cron的Wordpress实现是一个棘手的实现。怎样事实上,这是一个cron,它是由您的站点获得的访问(后端和前端)触发的,因此,如果您的站点没有按照Samuel的建议每10分钟获得一个访问者,那么您的Wordpress将丢失cron时间表,并且可能无法按时发送电子邮件。

(参考:https://codex.wordpress.org/Function_Reference/wp_schedule_event)

有鉴于此,如果您的站点获得了足够的点击率来保证cron按时运行,那么添加以下内容就很容易:

对于您的插件页面,这是每小时一次的,但可以根据您的喜好进行更改:

register_activation_hook(__FILE__, \'cron_activation_function\'); //to add cron to the cron table when plugin gets activated.
add_action(\'the_name_tag_of_your_cron_in_cron_table\', \'the_cron_function_to_run\');
register_deactivation_hook(__FILE__, \'cron_deactivation_function\'); //to remove cron from the cron table when plugin gets deactivated.

function cron_activation_function()
{
    if (!wp_next_scheduled(\'the_name_tag_of_your_cron_in_cron_table\')) {
        wp_schedule_event(time(), \'hourly\', \'the_name_tag_of_your_cron_in_cron_table\');
    }
}

function cron_deactivation_function()
{
    wp_clear_scheduled_hook(\'the_name_tag_of_your_cron_in_cron_table\');
}

function the_cron_function_to_run() 
{
    //do what ever you want then send the emails
}
我希望这能回答你的问题。快乐编码:)