Кошмары обновления плагина WordPress (моя собственная история) и решения
Опубликовано: 2022-09-15Вот моя собственная — кошмарная — история обновления WordPress — и извлеченные уроки. Я также включил некоторые рекомендации ближе к концу, чтобы вы не попали в такую ситуацию, как мы!
Все шло хорошо…
Возможно, вы знаете, что у нас есть бизнес по аналитике электронной коммерции — Putler. Мы используем расширение WooCommerce и подписки вместе со многими другими плагинами для запуска его бэкэнда. Мы используем собственный плагин, который синхронизирует данные WooCommerce с Putler, поэтому я получаю все расширенные отчеты в Putler.
Я создал сайт Putler около трех лет назад, после этого обновлял его 3-4 раза, и все работало гладко. Все идет нормально.
Что-то сломалось…
Однажды клиент сказал , что не может войти в Путлер, несмотря на активную подписку.
Хотя это звучало странно, так оно и было на самом деле. Его подписка PayPal была активной, мы получали ежемесячные платежи, но в WooCommerce его подписка отображалась как «платеж не получен» / «ожидает отмены».
Мы не смогли найти конкретной причины, по которой это произошло, поэтому обозначили это как исключение и вручную пометили его подписку как активную.
Через пару дней аналогичный вопрос поднял другой подписчик. Мы исправили это вручную и попросили нашего администратора сервера проверить наличие проблем на сервере.
Администрация сервера сказала, что все в порядке. Мы нормально получали платежи, большинство подписок показывались как активные в WooCommerce. Поэтому я пожал плечами и отклонил это как «временную» проблему.
Бизнес под угрозой…
Неделю спустя, когда я просматривал ежемесячные цифры дохода, я понял, что наш месячный доход снизился на 20% . Это необычно для повторяющегося бизнеса, поэтому я начал внимательно изучать заказы.
Выяснилось, что за последние две недели многие повторяющиеся заказы не были обработаны. PayPal отправлял уведомления об успешном поступлении платежа, но они не связывались с фактическими подписками в системе. В конце концов эти подписки были отменены из-за просроченной оплаты.
Автоматическая отмена подписки — большая проблема. Если мы не найдем и не исправим это, мы потеряем весь бизнес, поскольку система со временем отменит каждую подписку.
Мы были в огне.
Кто виноват?
Сразу же исправили вину на плагин Subscriptions . Мы обновили его несколько дней назад и подумали, что новая версия его ломает. Мы начали обширную отладку и просмотрели журналы ошибок PHP, журналы WooCommerce, журналы IPN и многое другое. Мы могли бы достичь точной функции, в которой это ломалось. Всякий раз, когда было получено уведомление PayPal, обработка проходила нормально до определенного момента, а затем все замолкало.
Я был в ярости. Начал ругать плагин подписки и Брент. Брент Шепард из Prospress — создатель плагина Subscriptions — на самом деле мой хороший друг, поэтому обвинять его было легко!!
Тогда я подумал о том, чтобы воспользоваться его помощью — он все-таки друг. Итак, мы встретились с Габором Яворски (из Prospress) в Slack и описали нашу проблему. Он сказал, что проблемы с PayPal являются обычным явлением, и попросил меня прислать все журналы. Он также предположил, что проблема может быть вызвана другим плагином.
Прошло уже две недели после получения первой жалобы и почти месяц с начала проблемы. Я обострил проблему до наивысшего приоритета и попросил провести обширную проверку всего.
Через два дня мы нашли настоящего виновника.
Какой позор…
Это был плагин WooCommerce Putler Connector. Один из наших собственных плагинов.
Стыд!!
Собственно говоря, последнее обновление подключаемого модуля коннектора решило именно эту проблему. Мы не обновлялись до последней версии на собственном сайте!
Это был больший позор!!
Урок выучен…
Мы потеряли большую часть дохода, две недели времени и многих платящих клиентов только потому, что пропустили обновление плагина . И если бы мы не смогли решить проблему раньше, ущерб был бы серьезным.
Да, у всех нас были случаи, когда дела шли плохо сразу после обновления ядра WordPress, плагинов или темы. Мы видели «белый экран смерти». Мы столкнулись с кризисом на действующих веб-сайтах после выполнения обновления.
Но это не значит, что мы можем оставить наши сайты без обновлений.
И да, не торопитесь с выводами! (Прости, Брент!)
Дилемма обновления: быть или не быть??
Выполнение обновления на вашем работающем сайте может быть опасным. Отсутствие обновления вашего сайта может быть не менее, если не более, опасным. Ну так что ты делаешь?
Во-первых, давайте вспомним, почему мы должны поддерживать наш сайт в актуальном состоянии…
- Обновления безопасности — конечно, мы не хотим, чтобы нас взломали
- Исправления ошибок, обновления совместимости — нам это тоже нужно
- Новые функции — могут быть очень полезными, могут сэкономить время
- Поддержка — большинство премиальных плагинов поддерживают только платных пользователей.
Теперь давайте посмотрим, почему мы не обновляем наши сайты:
- Частые обновления – то или иное постоянно обновляется!
- Нехватка времени – занят другими обязанностями, обновление нескольких сайтов может занять очень много времени
- Риск того, что обновление нарушит работу сайта — серьезное обновление, безусловно, потребует тестирования перед запуском, незначительное обновление также может вывести сайт из строя.
- Разработчик недоступен — если вашим сайтом управляет кто-то другой, их доступность и стоимость также будут иметь значение.
- Сайт работает; Если он не сломан, не чините его — это имеет смысл — или нет?
Полное руководство по обновлению WordPress — ядро, плагины и темы
Итак, как следует подходить к обновлению WordPress?
Вот несколько рекомендаций, которым мы следуем сами :
- Делайте регулярные резервные копии — как файлов WordPress, так и базы данных
- Просмотрите журналы изменений , чтобы определить, является ли это незначительным обновлением или основным.
- Если это незначительное обновление, сделайте это (все же сначала сделайте резервную копию)
- Обновляйте один плагин за раз
- Протестируйте что-нибудь серьезное на промежуточном сервере, прежде чем пробовать на живом сайте.
- Подтвердите, что обновление прошло успешно
- Если есть какой-либо пользовательский код , перед обновлением убедитесь, что он будет работать с новой версией.
- Если вы используете дочернюю тему , никогда не обновляйте родительскую тему напрямую на действующем сайте. Сначала протестируйте в промежуточной среде.
- Обновления ядра WordPress, как правило, безопасны!
- Обновления WooCommerce следует выполнять после того, как вы убедитесь, что используемые вами плагины WC обновлены. Перед запуском лучше протестировать в локальной/промежуточной среде, особенно между крупными обновлениями.
- Никогда не храните резервные копии в папке wp-content или даже в папке public_html.
- Мы можем свести к минимуму воздействие, регулярно выполняя обновления
Несколько отличных статей о выполнении обновлений WP:
- Полное руководство по обновлению WP и Multisite на WPMU Dev
- Руководство по обновлению WordPress на SitePoint
- Обновление WordPress – расширенные инструкции по WP Codex
- Как обновить темы WP на Design Wall
Поделитесь своими историями / лучшими практиками…
Надеюсь, моя история поможет вам избежать таких проблем для себя.. Обновляйте чаще, обновляйте осторожно!
У вас есть какие-нибудь страшные истории об обновлении WordPress? Как вы от них выздоравливали?
Какие «лучшие методы» вы используете сейчас для обновления WordPress/WooCommerce/плагинов/тем?
Поделитесь ими, разместив комментарий ниже! Ваш комментарий поможет многим другим.
Кредиты изображений: Хельги Халлдорссон, Pixabay, Wikimedia, Giphy