WordPress «An error occurred, please try again»: почему не проходит проверка лицензии плагина и как убрать уведомление

Уведомление WordPress «An error occurred, please try again.» — это ошибка, которую премиум-плагин показывает вверху админ-панели, когда запрашивает проверку у сервера лицензий и не получает корректного ответа. На сервере с этим уведомлением плагин нашли по тексту, а затем воспроизвели уведомление с тем же плагином, меняя ответы сервера лицензий; уведомление, которое держится ещё час после восстановления сервера, удалось убрать, удалив значение ожидания повторной попытки.

Essential Blocks Pro показывает это уведомление на каждой странице админ-панели, а сколько оно держится, зависит от того, ответил ли сервер лицензий кодом 503 или HTML-страницей.

Уведомление «An error occurred, please try again.» над списком записей WordPress

1️⃣ WordPress «An error occurred»: как найти плагин, который показал уведомление

Админ-панель WordPress — уведомление появляется вверху её страниц, поэтому выглядит как ошибка самого WordPress, но в файлах ядра WordPress этого текста нет. Текст находится в коде проверки лицензии плагина: если поискать его в папке плагинов, вы найдёте плагин, который показал уведомление.

При поиске текста различайте запятую и точку. Вариант с точкой, [An error occurred. Please try again.], — это строка ядра WordPress: когда виджет [Новости и мероприятия WordPress] в консоли не может загрузить данные о мероприятиях после поиска города, она появляется внутри виджета, а не вверху экрана.

Ошибка «An error occurred. Please try again.» в виджете «Новости и мероприятия WordPress» консоли WordPress

Строка ядра с добавленным [later] используется, когда файл, сохранённый в редакторе тем или редакторе плагинов, вызывает ошибку и откатывается, а также на экране «Настроить». Строки ядра переведены в русском файле перевода WordPress, но у Essential Blocks Pro нет русского файла перевода, поэтому даже в русской админ-панели уведомление о лицензии показывается на английском.

grep -rl 'An error occurred, please try again' wp-content/plugins --include=*.php
wp-content/plugins/essential-blocks-pro/includes/Deps/WPDeveloper/Licensing/Manager.php

Команду выполняют в папке установки WordPress; плагин — это папка, имя которой стоит сразу после wp-content/plugins в найденном пути. Помимо Essential Blocks Pro, этот текст есть в коде проверки лицензии Advanced Database Cleaner Pro и в коде проверки ключа AI API в TranslatePress.

Если результатов несколько, посмотрите в исходном коде страницы админ-панели имя класса блока уведомления: уведомление Essential Blocks Pro использует класс [essential-blocks-pro-notice].

2️⃣ Когда появляется уведомление: ответ 503, ответ HTML и тайм-аут

Каждый раз при открытии админ-панели Essential Blocks Pro проверяет, есть ли сохранённые данные лицензии, и, если их нет, отправляет серверу лицензий запрос на проверку. На схеме ниже — что происходило, когда админ-панель открывали, меняя только ответ сервера лицензий.

🧭 Проверка лицензии и уведомление в админ-панели
Поясняющая схема
📡 Ответ сервера
🛠️ После восстановления сервера
🖥️ Админ-панель
An error occurred, please try again.
cURL error 28
Нет уведомления
→при каждом открытии
🧩 Проверка лицензии плагина
🔑 Данные лицензии: 3 месяца📝 Сохранённая ошибка⏳ Ожидание повтора: 1 час
⇄запрос проверки
✕без запроса
☁️ Сервер лицензий
503
200 · HTML
Нет ответа 15 с
200 · JSON
Если сервер лицензий отвечает кодом 503, плагин сохраняет ошибку, устанавливает ожидание повтора на 1 час и показывает одно и то же уведомление на каждой странице админ-панели.
Даже когда сервер лицензий снова работает нормально, в течение часа ожидания запрос на проверку не отправляется, поэтому сохранённое уведомление остаётся.
Если код ответа 200, но тело — HTML, а не JSON, сохраняется то же уведомление; ожидание повтора в этом случае не устанавливается.
Без ожидания повтора проверка повторяется на следующей странице админ-панели, и при корректном ответе сохранённое уведомление удаляется.
Если ответа нет в течение 15 секунд, текст уведомления меняется на сообщение об ошибке cURL и устанавливается ожидание повтора на 1 час.
Как и при 503, в течение часа ожидания повторной проверки нет, поэтому уведомление об ошибке cURL остаётся.
При корректном ответе данные лицензии сохраняются на 3 месяца, и уведомление не показывается.
Пока есть сохранённые данные лицензии, плагин не обращается к серверу лицензий повторно, поэтому даже при сбое сервера уведомление не появляется.

Это уведомление появляется при ответах с кодом, отличным от 200, например 503, а также при ответе 200, тело которого — HTML, а не JSON. Если ответа нет в течение 15 секунд или само соединение не устанавливается, в уведомлении показывается сообщение об ошибке cURL, которое вернул WordPress, поэтому в этом случае вы увидите уведомление с другим текстом.

Данные лицензии, сохранённые после корректного ответа, хранятся 3 месяца; всё это время даже при сбое сервера лицензий запрос на проверку не отправляется, и уведомление не появляется.

3️⃣ Как удалить уведомление, которое остаётся после восстановления сервера

Уведомление не исчезает сразу, когда сервер лицензий снова работает нормально. Если проверка не удалась из-за 503 или тайм-аута, плагин устанавливает ожидание повтора на 1 час и всё это время не отправляет запрос на проверку, продолжая показывать сохранённое уведомление.

wp option list --search='wpdeveloper_sl_failed_http_*'
option_name	option_value
wpdeveloper_sl_failed_http_7838117baf19d8c92e668c95a04a2642	1792071902

Значение — это время окончания ожидания (время Unix), а строка в конце имени опции формируется из адреса сервера лицензий, поэтому для одного и того же плагина она одинакова на любом сайте.

wp option delete wpdeveloper_sl_failed_http_7838117baf19d8c92e668c95a04a2642
Success: Deleted 'wpdeveloper_sl_failed_http_7838117baf19d8c92e668c95a04a2642' option.

После удаления снова откройте список записей: плагин повторно обратится к серверу лицензий, и при корректном ответе уведомление исчезнет. Если сбой сервера лицензий ещё продолжается, плагин снова получит 503 и заново установит то же уведомление и ожидание на 1 час, поэтому удаляйте опцию только после того, как сервер лицензий снова заработает нормально.

🔢 FAQ & рекомендуемые материалы

Нет. Уведомление показывается только вверху страниц админ-панели и не появляется на страницах, которые открывают посетители, не вошедшие в систему.

Да. Essential Blocks Pro не проверяет права пользователя, когда показывает уведомление об ошибке лицензии. То же уведомление появляется, даже если открыть админ-панель под учётной записью с ролью «Автор», у которой нет прав на управление плагинами.

Появляется другой текст. Если сервер лицензий отвечает, что срок действия истёк, уведомление меняется на текст [Your Essential Blocks Pro license key expired on …]. В этом случае ожидание повтора на 1 час не устанавливается.

ℹ️ О партнёрских ссылках
Материалы этого сайта содержат партнёрские ссылки. Если посетитель покупает товар или услугу по такой ссылке, сайт получает комиссию от продавца. При этом сумма, которую платит покупатель (при акционных скидках сумма снижается ↓), не увеличивается. Указанные цены, скидки и наличие актуальны на момент написания и могут отличаться, поэтому перед покупкой уточняйте их у продавца. Товары выбираются и оцениваются по нашим собственным критериям, а комиссия не влияет ни на порядок, ни на содержание обзоров.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Докажите, что вы человек: 9   +   8   =