@YanAlexandrov
Чайник со стажем

Как запланировать событие на Wordpress?

Добрый день коллеги. Через js событие ajax подключаю php файл, в котором запланировано разовое событие с помощью wp_schedule_single_event. Пытаюсь отправить себе письмо:
function do_this_in_an_hour() {
	wp_mail('myemail@gmail.com','Тема тестового письма','Тестовое сообщение');
}
add_action('my_new_event','do_this_in_an_hour' );
wp_schedule_single_event( time() + 60, 'my_new_event' );

Событие добавляется в список запланированных задач, однако не срабатывает - письмо не отправляется.
Не совсем понимаю суть работы wordpress-овского крона в контексте задачи. Предложите, пожалуйста варианты решения проблемы. Мне нужно, чтобы событие планировалось при каком-либо действии пользователя, а не каждый раз, когда происходит посещение сайта.
За ранее спасибо

Я так понимаю в кроне прописывается лишь событие, но нет информации, какой именно php код нужно обрабатывать?
  • Вопрос задан
  • 292 просмотра
Пригласить эксперта
Ответы на вопрос 1
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Плагин WPCrontrol позволит понять что творится по части крона.

Вы воткнули функцию которая добавляет задачу крону просто в php. Соответственно она выполняется при каждом запросе - каждый раз когда кто то входит.

Например можно сделать так:
function t432897_my_action(){
  if(is_page('contacts')){
    wp_schedule_single_event( time() + 60, 'my_new_event' );
  }
}
add_action('template_redirect', 't432897_my_action');


В этом случае событие будет добавляться только если кто то зайдет на страницу 'contacts'

Условие и хук - зависит от желаемого действия. Под любое действие или сценарий можно подобрать хук и условие.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы