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

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

Тема в разделе "Вопросы, советы и доработки.", создана пользователем neverovski, 10 ноя 2015.

  1. neverovski

    neverovski

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

    kimad Местный

    Сообщения:
    179
    Симпатии:
    48
    Баллы:
    28
  3. neverovski

    neverovski

    Сообщения:
    13
    Симпатии:
    2
    Баллы:
    3
    это не то, нужно, чтобы при выборе определённой доставки изменялись определённые поля. Как убрать поля для всех я это знаю и без плагинов, простым добавление кода в файл function.php а меня интерисует для конкретной доставки убрать какое-то поле
     
    Последнее редактирование: 10 ноя 2015
  4. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Можно реализовать с помощью JS. Общий подход показан здесь.
    Как подключать скрипт можно посмотреть в плагине.
     
    Последнее редактирование: 10 ноя 2015
  5. neverovski

    neverovski

    Сообщения:
    13
    Симпатии:
    2
    Баллы:
    3
    Всем спасибо, но это всё не то. Уже сам реализовал. Описал Js пару строк и встал его в нужное место, так же немного подредактировал файл где выводится поля оплаты. И всё отлично заработало
     
  6. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Ну и поделитесь решением с другими, если не жалко.
     
  7. neverovski

    neverovski

    Сообщения:
    13
    Симпатии:
    2
    Баллы:
    3
    Написал скрипт
    <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
     
    • Нравится Нравится x 2
  8. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Интересно, а если покупатель с отключёнными в браузере скриптами или работает в Opera mini?
    Всё же лучше решение на php.
     
    • Согласен Согласен x 1
  9. rikitiki

    rikitiki Местный

    Сообщения:
    749
    Симпатии:
    184
    Баллы:
    43
    Впрочем, поразмыслив, пришёл к выводу что покупка такими покупателями явление редкое. Им только придётся заполнить все поля:)
     
  10. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Конечно, на стороне php это делать более правильно.
     
    • Согласен Согласен x 1
  11. neverovski

    neverovski

    Сообщения:
    13
    Симпатии:
    2
    Баллы:
    3
    А как подобное реализовать в php, если не сложно поделитесь
     
    Последнее редактирование: 10 ноя 2015
  12. mazoga

    mazoga

    Сообщения:
    26
    Симпатии:
    5
    Баллы:
    3
    А как на счет обязательных полей? Не вылетит потом ошибка, что не все поля заполнены? Ведь как бы скрипт скрывает от глаз или с области видимости?
     
  13. neverovski

    neverovski

    Сообщения:
    13
    Симпатии:
    2
    Баллы:
    3
    Те поля которые скрываю, сделал не обязательным в function.php пору строк добавил и всё. Если интересно могу выложить какие
     
  14. mazoga

    mazoga

    Сообщения:
    26
    Симпатии:
    5
    Баллы:
    3
    Аааа, ну так можно. Видать действительно полнофункционально это можно только с помощью php и условных операторов if-else.
     
    • Согласен Согласен x 1
  15. neverovski

    neverovski

    Сообщения:
    13
    Симпатии:
    2
    Баллы:
    3
    Да вот только реализовал через JS. Интересно было бы посмотреть вариант через php
     
    • Согласен Согласен x 1
  16. searchingman

    searchingman Местный

    Сообщения:
    1.634
    Симпатии:
    552
    Баллы:
    113
    Если мы говорим про интерфейс пользователя на стороне браузера (выбор из списка или радиокнопки нужного варианта доставки), то все равно без JavaScript не обойтись. В итоге получается связка JavaScript + PHP с AJAX.
    В ближайшее время тоже нужна функциональность зависимости видов доставки от видов оплаты + полей от видов доставки.
    Как будет готов плагин, возможно, поделюсь.
     
    • Нравится Нравится x 1
  17. gregoro

    gregoro

    Сообщения:
    136
    Симпатии:
    9
    Баллы:
    18
    Интересный плагин кстати.
    Я его приспособить пытаюсь под курьерку (она по некоторым городам только, их и удобно в опции загонять).
    Вот только пока не могу понять как убрать дублирующийся текст заголовка (описания)
    [​IMG]
     
  18. neverovski

    neverovski

    Сообщения:
    13
    Симпатии:
    2
    Баллы:
    3
    Так как вашего плагина не вижу. Но предполагаю, что файл который выводит методы доставки, просто в нём дублируется. Удалить нужно данное отображение. Или как вариан с помощью css спрячьте его
     
  19. gregoro

    gregoro

    Сообщения:
    136
    Симпатии:
    9
    Баллы:
    18
    Да там всего один файл на 450 строк во всем плагине - https://yadi.sk/d/BX2-yRcOmBqYp
    Но вот только не программист я ни разу) Пробую методом научного тыка (иногда помогает), но пока не выходит.

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

    Stork.71 Местный

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