Как сделать автоматическое срабатывание плагинов Wordpress? Добрый день. После штудирования PHP начал изучать для себя Wordpress. Собственно, уже некоторое время не могу понять одну деталь: как обеспечить автоматическое срабатывание плагинов без каких-либо действий пользователя? В качестве примеров приведу пару заказов, которые я использую как практические задачи:
1. Есть задание "Отправить письмо-напоминание пользователю через 15 минут после оформления заказа, если он не оплатил товар". Как запустить этот таймер на 15 минут? Ведь страницу вероятнее всего закроют, всякие скрытые счетчики в коде бесполезны.
2. Автоматический парсер. Этот вопрос актуален практически для любых грабберов. Есть новостные ленты или же динамические страницы. Парсер может проштудировать их и выбрать нужные нам данные, записывая их в базу, на это я способен. Но как сделать так, чтобы он делал это без ручного запуска? К примеру, каждые 5 минут проверял страницу на наличие записей, сверял последнюю имеющуюся с последней записью в базе, в случае соответствия - снова ждал 5 минут. Или здесь имеются какие-то альтернативные методы проверки?
Понимаю, что именно эти задачи возможно решить, попросту используя уже готовые плагины. Но мне интересна сама логика решения. Если я чего-то недопонимаю или упускаю детали - буду благодарен пояснению.

21 Авг 2019 в 06:29
251 +1
0
Ответы
1

Для автоматического выполнения определенных задач в Wordpress вы можете использовать расписание (Cron Jobs). Wordpress имеет встроенную систему расписания, которая позволяет запускать определенные функции или задачи с заданной периодичностью.

Чтобы запланировать выполнение определенной функции или задачи через определенный промежуток времени, вам необходимо создать крон-задачу. Для этого вам нужно добавить код в functions.php вашей темы или создать плагин.

Пример для вашего первого задания ("Отправить письмо-напоминание пользователю через 15 минут после оформления заказа, если он не оплатил товар"):

add_action('init', 'schedule_reminder_email');
function schedule_reminder_email() {
if (!wp_next_scheduled('send_reminder_email')) {
wp_schedule_single_event( time() + 900, 'send_reminder_email'); // 900 секунд = 15 минут
}
}
add_action('send_reminder_email', 'send_reminder_email_function');
function send_reminder_email_function() {
// Ваш код для отправки напоминания пользователю
}

Этот код добавляет крон-задачу, которая будет отправлять письмо-напоминание пользователю через 15 минут после оформления заказа.

Для вашего второго задания (автоматический парсер), вы также можете использовать крон-задачи для периодического выполнения парсинга страниц и обновления базы данных. Например, вы можете создать крон-задачу, которая будет проверять новости каждые 5 минут:

add_action('init', 'schedule_news_parser');
function schedule_news_parser() {
if (!wp_next_scheduled('parse_news')) {
wp_schedule_event(time(), '5minutes', 'parse_news'); // каждые 5 минут
}
}
add_action('parse_news', 'parse_news_function');
function parse_news_function() {
// Ваш код для парсинга новостей и обновления базы данных
}

Вы можете использовать кастомные интервалы вместо стандартных (например, '5minutes') или использовать плагин для удобного управления расписанием.

Надеюсь, это поможет вам понять, как автоматизировать выполнение определенных задач в Wordpress. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир