我定制了一个日历插件,在网站主页上显示今天的生日和本月的结婚纪念日列表。我在插件的显示页面中使用wp_mail
邮件将发送。但这种情况只有在网站被访问时才会发生。我的代码:
if($dat==date(\'Y-m-d\'))/*$dat is the date of event from DB*/
{
if($eid!=\'\'){ /*if recipient email id is not null*/
if($se!=1) /*if email is sending first time then($se=db column \'send\'value) $se=0 otherwise it is 1*/
{
$to=$eid;
$sub="Birthday Wishes";
$msg=\'Happy Birthday \'.$ev_title[$j];
$headers= \'From:Mysite <[email protected]>\' . "\\r\\n".\'Content-type: text/html\';
$attachments=array(WP_CONTENT_DIR . \'/plugins/spider-event-calendar/images/happybday.gif\');
$rx=wp_mail($to,$sub,$msg,$headers,$attachments);
$wpdb->update($wpdb->prefix. "spidercalendar_event",array(\'send\'=>1),array(\'id\'=>$ev_id[$j]));/**/
//echo "email send";
}
else{
//echo "email already sent";
}
}
}
我听说了
wp_cron
但当我在这个论坛上搜索如何写作时
cron
在WordPress中,我看到的答案是
不幸的是,WordPress cron作业只有在您的站点被访问时才会触发
如果这是真的,那么即使不访问网页,我如何每天发送电子邮件?还有其他方法吗?
SO网友:Sudar
不幸的是,WordPress cron作业只有在您的站点被访问时才会触发
这是真的。
可靠执行代码的唯一方法(即使访问者不访问您的站点)是使用unix cron函数。
您只需设置一个unix cron作业,该作业将在您的主页上执行wget。
Edit:
你可以阅读this article 了解如何设置unix cron作业。
只需设置通常的wp\\u cron,并安排它在您想要运行它的任何时间运行即可。
之后,设置一个unix cron作业,在主页上执行wget。这将触发页面视图,而页面视图又将触发wp\\u cron作业。