Как WooCommerce убирает «магические строки» — и что это значит для вашего сайта
Обсуждали с коллегами статью про то, как WooCommerce заменяет «магические строки» на классы-перечисления. Это не про фичу — это про то, как избежать ошибок, которые потом ломают сайт.
О чём речь и почему это важно для сайта
Речь о том, что в коде WooCommerce начали заменять простые строки вроде 'completed' на специальные константы — например, OrderStatus::COMPLETED. На первый взгляд — мелочь. Но на деле это про предсказуемость.
Я считаю, что это важно, потому что такие изменения не про удобство для разработчиков — они про отказ от ошибок, которые потом не видны, пока сайт не перестанет работать. Один неверный символ — и всё сломалось.
Как это устроено — что тут вообще происходит
Вместо того чтобы писать 'completed', теперь можно использовать константу. Она — не просто имя, а проверка: если ты напишешь 'complete' — код не пройдёт. Это не магия, а простой способ уберечься от опечаток.
Классы-перечисления хранят строку, но с именем. Их можно использовать в коде, а база данных по-прежнему хранит 'completed'. То есть ничего не ломается — но безопасность растёт.
Как понять, что это касается вашего сайта
Если у вас сайт на WooCommerce, и вы используете кастомные скрипты, формы или плагины, которые проверяют статус заказа, тип товара или статус склада — это касается вас.
Я проверяю это так: смотрю, как в коде сравниваются статусы. Если видно `if ( 'completed' === $order->get_status() )` — это сигнал. И не важно, кто написал код — если он использует строку, он уязвим к опечаткам.
Что с этим делать
Первое — не паниковать. Нужно понять, где используется строка. У нас в работе — сначала делаем резервную копию, потом постепенно заменяем строки на константы.
Важно: не всё можно сразу обновить. Нужно проверить, поддерживает ли ваша версия WooCommerce новые классы. Если нет — ждём, пока обновится. Но уже сейчас можно начать проверять код.
Что здесь даёт поддержка
На нашей поддержке это закрывается по принципу: не ждём, пока что-то сломается. Проверяем код, где используются статусы, и заменяем рискованные строки на константы. Это не срочная работа — но она входит в ежемесячную проверку.
Главный итог — не «мы починим», а «вы перестанете думать о сайте». Работаем с 2002 года, более 100 клиентов по всему миру. Приглашаю на бесплатный аудит сайта.