пр. Мира 620000 Россия +7900-000-00-00
Логотип блога интернет-бродяги

Как скрыть лишние поля при заказе виртуальных товаров Woocommerce

Скрыть лишние поля при заказе виртуальных товаров Woocommerce

Для того, чтобы скрыть лишние поля при заказе виртуальных товаров в магазине, работающем под управлением Woocommerce, необходимо вписать несколько строчек кода в файл functions.php. Честно говоря, мне показалось довольно странным, что разработчики плагина Woocommerce не предусмотрели такой функционал, работающий «из коробки». Какой смысл запрашивать у покупателя по умолчанию адрес доставки (индекс, город, улицу…), если его интересует скачиваемый товар?!

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

Однако, как обычно, нет ничего невозможного. И при помощи файла functions.php эта проблема решается на ура. Правки лучше всего вносить, конечно же, в файл дочерней темы. Иначе, при обновлении основной рабочей темы, все изменения исчезнут, помножив все старания на ноль.

Итак, дополним functions.php следующим кодом:

Теперь, при добавлении виртуального (скачиваемого) товара в корзину, на странице создания заказа покупатель увидит лишь поля для заполнения фамилии, имени, телефона и адреса электронной почты. Этот код удалит поля адреса и города, почтового индекса, страны и штата из формы оформления заказа, если в корзине содержатся только виртуальные товары.

Мне не нужно собирать телефоны клиентов, которые приобретают виртуальные товары. Поэтому я убрал также и поле для указания номера телефона. Теперь страница заказа стала выглядеть следующим образом, как на скриншоте ниже.

Страница со скрытыми полями Woocommerce

Фишка ещё состоит и в том, что если покупатель положит в корзину физический товар в добавок к виртуальному, то появятся поля для заполнения адреса доставки физического товара. По-моему, это очень удобно.

Код, который я предоставил, добавляет фильтр woocommerce_checkout_fields, который позволяет изменять поля формы оформления заказа в Woocommerce.

Функция custom_override_checkout_fields принимает массив полей формы, который можно изменять. Внутри функции мы проверяем, является ли корзина товаров корзиной только с виртуальными товарами, используя метод needs_shipping(). Если это так, мы удаляем поля адреса и города, почтового индекса, страны и штата из формы оформления заказа, используя функцию unset().

Затем мы возвращаем измененный массив полей формы из функции custom_override_checkout_fields. Таким образом, код скрывает лишние поля при оформлении заказа в Woocommerce для виртуальных товаров.

Если недостаточно вышеприведённого кода, то можно дополнить его следующими строками:

Код рабочий и проверен на одном из разработанных мной интернет-магазинов. Успехов в освоении Woocommerce и больших продаж!

ytprevyu

Всем WEB!

Друзья, плюсаните, вдруг пригодится!

Почитайте похожие материалы

Об авторе: Hobo

Стараюсь всё делать своими собственными руками: от починки выключателя до создания веб-сайта. В этом блоге делюсь своим опытом и впечатлениями от использования различной техники, электронных и других устройств, которые побывали у меня в руках.

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

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