Intereting Posts
Meta_query с или без значения старые постоянные ссылки не найдены Можно ли открыть страницу с другой темой? Поле пароля пользователя пуст Повторное использование javascripts из плагинов в теме Как добавить параметры на страницу плагина? Загружать и прикреплять к сообщению несколько файлов изображений Как перенаправить сообщения Tumblr после перехода на WordPress? register_activation_hook в oop-подходе Обновить постоянную связь, когда новая категория добавлена ​​к пользовательской таксономии типа сообщения Каков наилучший способ (относительно производительности) установить переходные процессы для зарегистрированных пользователей? Поле обновления Dynamicaly, созданное с помощью wp_editor () Как использовать языковые файлы в плагинах? Настройка предупреждающих страниц для удаленных / архивных блогов Автоматическое удаление пользователей WordPress в соответствии с временем

wp_schedule_event () устанавливается ежедневно, но обрабатывается каждую секунду

Чтение документации wp_schedule_event () достало мне код примерно так:

add_action('cr_paid_link_manager_generate_expiring_link_email_action','cr_paid_link_manager_generate_expiring_link_email'); wp_schedule_event(time(), 'daily', 'cr_paid_link_manager_generate_expiring_link_email_action'); 

Проблема заключается в том, что cr_paid_link_manager_generate_expiring_link_email() генерируется каждый раз при загрузке страницы, или так выглядит. Этот код должен отправлять электронную почту только один раз в день.

Я пытаюсь установить первый параметр wp_schedule_event() в $timestamp_start :

 $timestamp_start = '2011-01-26 00:00:00'; add_action('cr_paid_link_manager_generate_expiring_link_email_action','cr_paid_link_manager_generate_expiring_link_email'); wp_schedule_event($timestamp_start, 'daily', 'cr_paid_link_manager_generate_expiring_link_email_action'); 

Все равно никакого результата. Код продолжает отправлять электронную почту каждую минуту. Что-то не хватает в моем коде?

Где вы помещаете код wp_schedule_event ()? Я предполагаю, что у вас есть это где-то, что заставляет его работать на каждой загрузке страницы, заставляя действие планировать несколько раз (например, возможно, вы просто уронили его в своих функциях.php?).

Вам нужно только запланировать действие один раз. Самый простой способ – это активировать ваш плагин. Попробуйте что-нибудь вроде:

 function wpsx_7780_myplugin_init() { wp_schedule_event(time(), 'daily', 'cr_paid_link_manager_generate_expiring_link_email_action'); } register_activation_hook( __FILE__, 'wpsx_7780_myplugin_init' ); add_action('cr_paid_link_manager_generate_expiring_link_email_action','cr_paid_link_manager_generate_expiring_link_email'); 

Затем отключите и активируйте свой плагин. Таким образом, событие получает только один раз, но действие добавляется при каждой загрузке страницы.

EDIT: Я должен также отметить, что вам, вероятно, потребуется очистить все те существующие события, которые вы создали, используя wp_clear_scheduled_hook ()