Добавление и обработка кастомных полей в заказе woocommerce

Плагин woocommerce — интернет-магазин для WP — и так показывает огромное число полей на форме оформления заказа (т.н. checkout), и обычно требуется убрать/спрятать лишние поля. Но в данной статье я расскажу об обратной задаче: как добавить и обрабатывать свои произвольные поля в этой форме.

У нас будет несколько логических этапов:

  • Добавление элементов на форму;
  • Валидация, проверка данных;
  • Сохранение данных;
  • Показ элементов в заказе и письмах.

Добавление элементов на форму заказа (checkout)

Можно добавить поле слева сразу после адреса заказчика или справа — под примечаниями к заказу:

Я добавил поле — пожелания по дате/времени доставки — в зависимости от того куда нужно его вставить придется использовать соответствующую зацепку.

Вот пример кода для хука в правую часть формы:

Функция woocommerce_form_field берет на себя рутину по созданию HTML кода поля, но вы можете и сами проделать эту работу.

Валидация, проверка полей

Специальный хук woocommerce_checkout_process позволяет добавить необходимые проверки после отправки данных формы.

В нашем примере кастомное поле — необязательный сопроводительный текст, потому код, имеющий какой либо практический смысл, придумать сложно.

Сохранение данных

Отправленные пользователем данные нужно где то сохранить. Для этого хорошо подходят мета поля сущности заказа. А зацепка реализуется через хук — woocommerce_checkout_update_order_meta.

Тут просто сохраняем переданные пользователем данные в meta информацию заказа.

Пару слов о технических особенностях. Если вы будете использовать название мета поля, начинающееся с нижнего подчеркивания (как в примере), то такая мета информация не будет показана в редакторе заказа в админке. Это общее правило для работы с мета полями публикаций в WP.

Вывод поля в сводке заказа и отправляемых письмах

Еще несколько зацепок позволят нам вывести поле в сводке по заказу и отправляемых письмах.

Мы запрашиваем сохраненные данные из мета-полей заказа и выводим их, имитируя шаблон WC.

Остаётся добавить вывод данных поля в отправляемые email:

Написать комментарий

Мало букафф? Читайте есчо !

Замена символа валюты в woocommerce WP

Июль 4, 2019 г.

В админке woocommerce вы можете выбрать валюту и где её отображать - до или после цены. Но сам символ можно поменять только через PHP. Для замены обозначения валюты плагин предусматривает использование специального фильтра - woocommerce_currency_symbol. ...

Читать

Как вывести категорию товаров Woocommerce в нужном месте?

Июль 14, 2017 г.

Woocommerce показывает каталог товаров (витрину) на странице - /shop/, которая создаётся автоматически при установке плагина. Здесь выводятся ...

Читать

 

Комментарии к «Добавление и обработка кастомных полей в заказе woocommerce»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: