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

Решено Самовывоз и доставка курьером

neverovski

Новичок
Вобщем-то дело такое: решил сделать магазин на WordPress + WooCommerce, но столкнулся с таким неприятным моментом как необходимость заполнения всех полей при самовывозе.
То есть есть два метода доставки. Один самовывоз другой курьером. Когда клиент выбирает самовывоз,то ему нужно ввести только имя и телефон. Когда он выбирает доставка курьером, тогда уже показываются все поля(адрес, имя, телефон и емаил)
Как это реализовать,были идеи JS но как-то не получилось, может есть плагин или ещё что подскажите
 
Последнее редактирование:

neverovski

Новичок
это не то, нужно, чтобы при выборе определённой доставки изменялись определённые поля. Как убрать поля для всех я это знаю и без плагинов, простым добавление кода в файл function.php а меня интерисует для конкретной доставки убрать какое-то поле
 
Последнее редактирование:

searchingman

Гуру
Местный
Последнее редактирование:

neverovski

Новичок
Всем спасибо, но это всё не то. Уже сам реализовал. Описал Js пару строк и встал его в нужное место, так же немного подредактировал файл где выводится поля оплаты. И всё отлично заработало
 

neverovski

Новичок
Написал скрипт
<script type="text/javascript">
function Show(a) {
obj1=document.getElementById("ad0");
obj2=document.getElementById("ad4");
obj3=document.getElementById("ad5");
obj4=document.getElementById("ad6");
obj5=document.getElementById("ad7");
obj6=document.getElementById("ad8");
if (a == 1) {
obj1.style.display="none";
obj2.style.display="none";
obj3.style.display="none";
obj4.style.display="none";
obj5.style.display="none";
obj6.style.display="none";
}
else {
obj1.style.display="block";
obj2.style.display="block";
obj3.style.display="block";
obj4.style.display="block";
obj5.style.display="block";
obj6.style.display="block";
}
}
</script>
Где функция Show() берёт данные из нашей радиокнопки. В моём случае их две самовывоз и курьер. Когда клиент выбирает самовывоз в радиокнопки срабатывает функция onClick='Show(1)' то есть в <input type="radio"> она идёт как атрибут. Далее когда клиент нажал срабатывае скрипт. Где в каждую переменную записывается id нашего поля. ad0, ad4 и так далее. Выбирал те поля которые нужно скрыть. Потом смотрим если мы передали 1 тогда каждое поле скрываем. Так же происходит когда клиент выбирает курьера. В моём случае передаётся уже не 1, а другое число. Все опирации прозводил в файле cart/cart-shipping.php
 

rikitiki

Специалист
Местный
Интересно, а если покупатель с отключёнными в браузере скриптами или работает в Opera mini?
Всё же лучше решение на php.
 

rikitiki

Специалист
Местный
Впрочем, поразмыслив, пришёл к выводу что покупка такими покупателями явление редкое. Им только придётся заполнить все поля:)
 

mazoga

Новичок
А как на счет обязательных полей? Не вылетит потом ошибка, что не все поля заполнены? Ведь как бы скрипт скрывает от глаз или с области видимости?
 

neverovski

Новичок
А как на счет обязательных полей? Не вылетит потом ошибка, что не все поля заполнены? Ведь как бы скрипт скрывает от глаз или с области видимости?
Те поля которые скрываю, сделал не обязательным в function.php пору строк добавил и всё. Если интересно могу выложить какие
 

mazoga

Новичок
Те поля которые скрываю, сделал не обязательным в function.php пору строк добавил и всё. Если интересно могу выложить какие
Аааа, ну так можно. Видать действительно полнофункционально это можно только с помощью php и условных операторов if-else.
 

searchingman

Гуру
Местный
Если мы говорим про интерфейс пользователя на стороне браузера (выбор из списка или радиокнопки нужного варианта доставки), то все равно без JavaScript не обойтись. В итоге получается связка JavaScript + PHP с AJAX.
В ближайшее время тоже нужна функциональность зависимости видов доставки от видов оплаты + полей от видов доставки.
Как будет готов плагин, возможно, поделюсь.
 

gregoro

Опытный
Добавить произвольные методы доставки:
WooCommerce Shipping Options
Интересный плагин кстати.
Я его приспособить пытаюсь под курьерку (она по некоторым городам только, их и удобно в опции загонять).
Вот только пока не могу понять как убрать дублирующийся текст заголовка (описания)
d95889b04d0a.png
 

neverovski

Новичок
Интересный плагин кстати.
Я его приспособить пытаюсь под курьерку (она по некоторым городам только, их и удобно в опции загонять).
Вот только пока не могу понять как убрать дублирующийся текст заголовка (описания)
d95889b04d0a.png
Так как вашего плагина не вижу. Но предполагаю, что файл который выводит методы доставки, просто в нём дублируется. Удалить нужно данное отображение. Или как вариан с помощью css спрячьте его
 

gregoro

Опытный
Так как вашего плагина не вижу. Но предполагаю, что файл который выводит методы доставки, просто в нём дублируется. Удалить нужно данное отображение.
Да там всего один файл на 450 строк во всем плагине - https://yadi.sk/d/BX2-yRcOmBqYp
Но вот только не программист я ни разу) Пробую методом научного тыка (иногда помогает), но пока не выходит.

С css умею только размеры элементов менять с помощью FireBag)
Если взглянете - буду очень признателен...
 

Stork.71

Гуру
Местный
Без ссылки на сайт Вам точно никто не поможет. Скорее всего.
Кстати, возможно проще будет тупо сделать display:none.
 
Сверху Снизу