Создание сайтов
Константин Никифоров
Создание сайтов
Константин Никифоров
Запись

Woocommerce: Юр. или физ. лицо при оформлении заказа

29.01.2023 Woocommerce, Wordpress
Woocommerce: Юр. или физ. лицо при оформлении заказа

В некоторых ситуациях интернет магазины торгуют не только с физическими лицами, но и с юридическими. В других CMS, например в 1С-Битрикс, функционал типа плательщика присутствует изначально и вопросов по его использованию не возникает. Однако в Woocommerce набора полей для юр. лиц нет и сейчас мы с вами создадим их дополнительно. У покупателя будет выбор, какой тип плательщика использовать, соответственно, от типа плательщика будет зависеть набор полей при оформлении заказа. Кроме того, мы добавим записи об этих полях в админку и в письмо о заказе.

Создание переключателя и полей для организации

Для начала создадим поле с переключателем юр. или физ. лица.

Создаем поля, которые нужны при выборе юридического лица.

‘required’ => true — обязательные для заполнения поля. В данной функции прописано автозаполнение полей если есть их значение.
Чтобы вставить поля “Реквизиты” нужно прописать action в шаблоне woocommerce/checkout/form-checkout.php после action woocommerce_checkout_billing (к нему самому привязаться невозможно, т.к. в этом случае поля выводятся ниже комментария).

Прописываем скрипты: один из пунктов выбора по умолчанию и скрытие группы полей “Реквизиты”, если выбран вариант физ. лицо.

Функция проверки на обязательность поля. Особенностью функции является вывод предупреждения только в случае если выбрано юр. лицо.

Функция сохранения полей. Причем данные поля сохраняем не как order meta, а как user meta.

Также эта функция сохраняет значение поля company (ON) если выбрано юр. лицо и удаляет мета поле company если выбрано физ. лицо. Далее поле company пригодится для проверки при выводе реквизитов.

Вывод полей в различных шаблонах

Выводим поля группы “Реквизиты” в бланке заказа.

Если необходимо вывести в Личном кабинете во вкладке Адреса, то необходимо прописать вышеописанную функцию к новому хуку.

А в шаблоне woocommerce/myaccount/my-address.php прописать вывод этого хука (после foreach).

Изменять реквизиты можно так же как адреса плательщика и доставки.

Вывести реквизиты в админке (в заказе).

Вывести реквизиты в бланках писем.

woocommerce_email_after_order_table — будут выводиться перед адресами.
woocommerce_email_customer_details — будут выводиться после адресов.

Набор методов платежей в зависимости от формы плательщика

Немного доработанное решение под этот переключатель.

В данном случае при выборе физ. лица пропадает вариант оплаты банковским переводом, а при выборе юр. лица становится недоступен вариант оплаты наличными.

ID стандартных и популярных методов оплаты:

  • bacs — прямой банковский перевод
  • cheque — чековые платежи
  • cod — оплата при доставке
  • paypal — PayPal
  • ym_api_bank_card — Банковские карты (через сервис Яндекс Касса)

Удалить стандартные поля банковского перевода

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

Убрать из шаблонов писем.

Убрать из деталей заказа.

 

Tags:
Related Posts
Woocommerce: Выводим категории над списком товаров

В стандартной теме Woocommerce Storefront, да и во многих других, если вы включили отображение категорий/разделов в каталоге вместе с товарами,…

Woocommerce: скрыть или удалить раздел Uncategorized/Misc

В Woocommerce, после установки, есть только один раздел – Uncategorized или Misc. Это раздел по умолчанию. После того, как вы…

Комментировать