• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

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

OniX

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

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

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

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

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

OniX

Форумчанин
#3
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

Опытный
#5
собственно вот попробовал и получилось. Вот код выводящий новые поля и скрывающий те которые уже есть
Код:
<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

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