arendadecora.ru - аренда фотозон и декора
WooCommerce: корзина, состав фотозоны, автор и PHP 8
На сайте студии АрендаДекора (Woodmart + WooCommerce) починил гонку AJAX при бронировании из каталога, заменил нестабильное поле дней на дату аренды, почистил битые иконки состава фотозон по всему каталогу, добавил загрузку фото в блок «Об авторе» и убрал фаталы PHP 8 на карточке товара и портфолио.
Задача
На сайте аренды декора и фотозон сломалось бронирование из каталога: в корзину уходил один товар, количество больше единицы для гостей не учитывалось, поле «количество дней» работало нестабильно. Отдельно часть иконок в блоке «Состав фотозоны» отдавала 404 из‑за пробелов в URL, в статьях не было нормального фото автора, а отдельные карточки товара и портфолио падали с критической ошибкой PHP 8.
Что сделано
- Диагностика гонки AJAX: Woodmart и WooCommerce одновременно обрабатывали form.cart в каталоге
- Каталог: отдельная форма loop-add-to-cart, блокировка кнопок на время добавления, qty из поля количества в data-quantity
- Checkout: убрал самописное «количество дней», поставил datepicker даты аренды с валидацией и сохранением в заказ
- Состав фотозоны: trim и очистка %20 в URL иконок на выводе плюс массовая чистка meta у 27 товаров из 102
- Блок «Об авторе»: поле загрузки фото в профиле пользователя и вывод в author-bio вместо пустого Gravatar
- PHP 8: безопасный stock progress bar Woodmart при пустом _stock и безопасный get_the_excerpt для конфликта Beaver Builder и WPBakery
Подробнее о проекте
Студия АрендаДекора
arendadecora.ru - аренда фотозон и декора для мероприятий в Москве на WordPress, WooCommerce и теме Woodmart. Каталог с кнопкой «Бронировать», карточки с тарифами по дням и самописный блок состава фотозоны. Задача была не в редизайне, а в рабочих сценариях бронирования и стабильности витрины.
Каталог и бронирование
В каталоге при быстрых кликах «Бронировать» в корзину попадал один товар: конфликтовали AJAX Woodmart и WooCommerce. Для гостей количество из поля qty уходило как 1. Развёл формы, синхронизировал quantity и проверил сценарий с несколькими позициями. Поле дней на checkout заменил на дату аренды с сохранением в заказ.
Состав фотозоны без битых иконок
Во вкладке «Состав фотозоны» часть иконок отдавала 404: в meta сохранялись URL с хвостовыми пробелами и %20. Почистил вывод и прогнал базу - 27 товаров из 102 с составом. На витрине снова grid, bag-tick и остальные SVG.
Карточка после PHP 8
Страницы вроде «Неуловимый Джо» и часть портфолио обрывались на середине. Woodmart падал на round('') при пустом остатке, а Beaver Builder ломал get_the_excerpt в сетке WPBakery. Обернул оба места безопасными обработчиками в child-теме - страницы открываются целиком.
Блок «Об авторе»
В статьях блок автора тянул пустой Gravatar. Добавил поле «Фото для блока О авторе» в профиле пользователя и вывод в шаблоне author-bio - клиент загружает портрет из админки без правки кода.
Результат
- Несколько товаров и нужное количество стабильно попадают в корзину из каталога
- На checkout выбирается дата аренды и она уходит в заказ
- Иконки состава фотозон отображаются по всему каталогу
- В статьях можно задать фото автора из профиля
- Карточки товара и портфолио без критических ошибок PHP 8
У вас похожая задача?
Опишите задачу - разберу и скажу, как лучше решить и сколько это займёт.
Алексей - отвечу в течение часа