В WordPress я создаю плагин, где я отправляю электронную почту пользователям. Для этого я использую работу WordPress cron
. Поэтому в основном то, что он будет делать, это просто отправлять электронные письма пользователям в каждый час. Итак, мой код выглядит так
public function __construct() { add_action('init', array( $this, 'send_emails_to_users') ); add_action('cliv_recurring_cron_job', array( $this, 'send_email') ); } public function send_emails_to_users() { if(!wp_next_scheduled('cliv_recurring_cron_job')) { wp_schedule_event (time(), 'hourly', 'cliv_recurring_cron_job'); } } public function send_email() { //send email code goes here }
Здесь все выглядит хорошо, но не отправляет электронное письмо.
Если я сделаю свой код таким, как это
public function __construct() { add_action('head', array( $this, 'send_email') ); }
Затем он отправляет электронное письмо. Но проблема заключается в том, что он отправляет электронное письмо каждый раз, когда загружается страница или когда пользователь посещает сайт.
Вот почему я хочу использовать wp_schedule_event
для создания электронной почты в каждый час.
Так может кто-нибудь сказать мне, как решить эту проблему?
Любое предложение или помощь будут действительно заметны.
Прежде всего, 1) вам нужно настроить crontab на вашем сервере, если вы хотите динамически работать 2) если вы хотите, чтобы планировщик вручную WordPress вызывал после запуска страницы
так,
для установки crontab ниже – полезная ссылка: crontab
Если вы хотите запустить свой cron за каждый час, вам нужно добавить код ниже:
public function __construct() { // Call function for cron add_action('init', array( $this, 'send_emails_to_users') ); } public function send_emails_to_users() { if(!wp_next_scheduled('cliv_recurring_cron_job')) { // Add "cliv_recurring_cron_job" action so it fire every hour wp_schedule_event(time(), 'hourly', 'cliv_recurring_cron_job'); } } add_action('cliv_recurring_cron_job', array( $this, 'send_email') ); public function send_email() { //send email code goes here }
для получения дополнительной информации см. ссылку