• Никакой политики на форуме. Иначе - бан!
  • Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Настройка вариантов полей пользователя в корзине

OniX

Форумчанин
Всем добрый день.

1. Есть необходимость сделать различные наборы полей пользователя в корзине.
Например, для физ. лица отображается один набор, а для юр. лица другой (добавляется ИНН, КПП).
Разместить как то радио-кнопки "физ.лицо" и "юр.лицо" и в зависимости от выбора отображать нужные.

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

3.Еще хотелось бы сделать загрузку файла при оформлении заказа (например, прикрепить реквизиты)
https://wpcommerce.ru/threads/fajl-k-on-lajn-zakazu.684/ этот плагин не работает у меня почему то, да и делает не совсем как нужно.

Как реализовать, сталкивался кто?
 

D&B

Администратор
Команда форума
Местный
Не уверен на 100, но мне кажется премиум вариант WooCommerce Checkout Manager Pro с этим справится в отличие от бесплатного. Почитайте повнимательнее.
 

OniX

Форумчанин
1. решил скриптом
Код:
<style>
#billing_company_field, #billing_inn_field, #billing_kpp_field {display:none;}
</style>

<div id="lico-form">
<input id="chkl" title="Отметьте если Вы являетесь юридическим лицом" type='checkbox' onchange="
                                                        document.getElementById('billing_company_field').style.display = this.checked ? 'block' : 'none';
                                                        document.getElementById('billing_inn_field').style.display = this.checked ? 'block' : 'none';
                                                        document.getElementById('billing_kpp_field').style.display = this.checked ? 'block' : 'none';                                                    
" /><label>Юридическое лицо</label>
<p id="info" style="display:none;"></p>
</div>
Если чекбокс нажат то открываются доп поля, которые я уже предварительно создал (изначально не отображаются)

Хочется еще менять обязательность для этих полей. Т.е. если чекбокс нажат, то они обязательны, иначе нет.
Если их изначально выставить обязательными, то при пустом чекбоксе, заказ не пройдет, т.к. даже скрытые обязательные поля обрабатываются.
Как woocommerce делает проверку обязательных полей?
 

dim70

Опытный
собственно вот попробовал и получилось. Вот код выводящий новые поля и скрывающий те которые уже есть
Код:
<div id="lico-form">
Отметьте этот пункт, если Вы являетесь юридическим лицом
<br>
<input id="chkl" title="Отметьте если Вы являетесь юридическим лицом" type='checkbox' onchange="
                                                        document.getElementById('billing_company_field').style.display = this.checked ? 'block' : 'none';
                                                        document.getElementById('billing_new_fild11_field').style.display = this.checked ? 'block' : 'none';
                                                        document.getElementById('billing_new_fild12_field').style.display = this.checked ? 'block' : 'none';
                                                        document.getElementById('billing_first_name_field').style.display = this.checked ? 'none' : 'block';
                                                        document.getElementById('billing_last_name_field').style.display = this.checked ? 'none' : 'block';                                                   
" /><label>Юридическое лицо</label>
<p id="info" style="display:none;"></p>
</div>
и стили правим немножко тоже
 

dim70

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