我有活动网站。我想在活动前2小时向订阅者发送有关活动的提醒。
那么,如何安排wordpress在准确的时间调用函数呢。
我知道wp\\U时间表和cron。但这对我没有帮助。
不要推荐插件。因为我正在开发自定义插件。那么,正确的方法是什么呢。
示例:如果活动开始时间是今天晚上11:30,我想在晚上9:30提醒活动订阅者。
我有活动网站。我想在活动前2小时向订阅者发送有关活动的提醒。
那么,如何安排wordpress在准确的时间调用函数呢。
我知道wp\\U时间表和cron。但这对我没有帮助。
不要推荐插件。因为我正在开发自定义插件。那么,正确的方法是什么呢。
示例:如果活动开始时间是今天晚上11:30,我想在晚上9:30提醒活动订阅者。
我支持萨缪勒的评论,是的,克朗是一条出路。但是,哪个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
}
我希望这能回答你的问题。快乐编码:)我只是花了太多时间试图解决为什么我的wp cron作业没有运行的问题。在4.9.8中,运行cron的唯一方法似乎是调用wp-cron.php 文件作为URL。但文档说,它应该在页面加载时运行,尽管我找不到位置。需要帮忙吗?