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

Решено Как избавится от заполнения всех полей при Самовывозе?

Тема в разделе "Вопросы новичков", создана пользователем vas555vas, 22 авг 2014.

  1. EliteWars

    EliteWars

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    Ты же в методах доставки в настройках woocommerce указываешь допустим , что(Пример: При самовывозе используется "Оплата наличными", а при доставке "Наложенный платеж") вот этим ты их и связываешь, а потом они уже как я показал на скрине выше взаимодействуют.
    Тоесть где я выберу "Наложенный платеж" эти поля будут отображаться при выборе способа доставки "Доставка бла бла бла", там где я выбрал "Оплата наличными" эти поля будут отображаться при выборе способа доставки "Самовывоз".)
     
  2. leksus

    leksus

    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Ээээ, я не хочу сделать определенный вид формы для способа оплаты. Твой способ - кривой, и работает он только при двух способах оплаты и двух способах доставки. Тупо добавить еще один способ просто невозможно.

    Мне нужно делать разные формы для разных способов доставки. Для самовывоза - имя и телефон, при этом покупатель может оплатить как наличкой, так и сразу онлайн. Для транспортной компании - ФИО, город, телефон и номер паспорта. Для курьерской службы - ФИО, полный адрес, телефон. Для Почты России - ФИО, полный адрес с индексом. И для всех этих способов покупателю надо предложить все способы оплаты.

    Ну-ка, покажи как мне настроить этот супер-плагин, где 1+2=3 и 2+1=3 :)
     
  3. EliteWars

    EliteWars

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    ) Не ну суть осталась ведь неизменной по сути? Ты можешь просто для каждого способа оплаты (связанного с доставкой) разные поля делать нужными. Допустим: Поле город доступно для способов оплаты 1 и 2 ну и тд. ))
     
  4. EliteWars

    EliteWars

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    А по поводу ограничения способов доставки и оплаты другая песня надо подумать
     
  5. EliteWars

    EliteWars

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    Сейчас разберусь с checkout а то после обновления woocommerce перестал работать...
     
  6. leksus

    leksus

    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Я не знаю, как по-другому тебе объяснить. Твой способ - привязка способа оплаты к способу доставки. Он подходит если у тебя два способа доставки и оплаты. Либо для каждого способа доставки делать свой способ оплаты? Это вообще как? Зачем? Это же бред! Еще раз. Данным плагином нельзя управлять отображением полей для разных способов доставки. Только для разных способов оплаты. И твой способ - это некий костыль, который подходит только под один случай.

    И это не "совсем другая песня". Это - суть данного топика. Возможность менять поля при изменении способов доставки. Это основа обсуждаемой проблемы. А не "другая песня".
     
  7. EliteWars

    EliteWars

    Сообщения:
    8
    Симпатии:
    1
    Баллы:
    3
    Ладно давай искать другой способ
     
  8. ADv

    ADv Местный

    Сообщения:
    668
    Симпатии:
    253
    Баллы:
    63
    Верно, плагин умеет в способы оплаты, а не доставки. Я то как раз это и искал, посему поспешил обрадоваться :)
    Посмотрите это
     
  9. M0HAX

    M0HAX

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Тоже пришлось озадачиться... В итоге оказалось боле менее подходящим решением, это решение от yaspis . Но:

    Уберем обязательность заполнения полей.
    Это можно сделав переопределив необходимые вам поля в файле functions.php вашей темы:

    // Хук
    add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
    // Все $fields в этой функции будут пропущены через фильтр
    function custom_override_checkout_fields( $fields ) {
    $fields['billing']['billing_state_name']['required'] = false;
    $fields['billing']['billing_address_1']['required'] = false;
    $fields['billing']['billing_address_2']['required'] = false;
    return $fields; }


    ... - не срабатывает(((
    Точнее не срабатывают именно

    $fields['billing']['billing_state_name']['required'] = false;
    $fields['billing']['billing_address_1']['required'] = false;
    $fields['billing']['billing_address_2']['required'] = false;


    т.к. если добавить еще
    unset($fields['billing']['billing_company']);

    то поле с названием компании исчезает, соответственно через фильтры все проходит...
    Но поля все равно считаются обязательными...
    И пропускать через фильтр тоже желательно при выборе метода доставки Самовывоза (local_pickup) . Может кто-нибудь допилил уже этот скрипт?
    P.S. Или, как вариант, у меня блокируется это WooChekcout - ом?
     
    Последнее редактирование: 26 июл 2017
  10. Zoten

    Zoten

    Сообщения:
    59
    Симпатии:
    11
    Баллы:
    8
    Была похожая задача: сделать возможность создания доставок, с расчётом стоимости по параметру (вес) и с привязкой к зонам доставки. При этом для каждой доставки нужен был свой набор полей или селектов (для выбора ПВЗ использовали). И вишенкой на торте была реализация пошагового оформления заказа: Контактные данные -> Выбор способа доставки -> Выбор способа оплаты
    Я решил так:
    1) отключил все billing-поля кроме Имя, Фамилия, телефон, email, регион.
    2) подключил два плагина
    https://codecanyon.net/item/woocommerce-advanced-shipping/8634573 - с помощью него создавал доставки
    https://shopplugins.com/plugins/extra-shipping-options-woocommerce/ - с помощью него привязывал нужные мне поля, а также селекты к доставкам

    Причём второй плагин можно в теории заменить вот этим, если способов доставки не много: https://shopplugins.com/plugins/advanced-checkout-fields-woocommerce/ - там вроде можно логику работы полей задавать
     
  11. M0HAX

    M0HAX

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Zoten Спасибо. Но загружать лишний раз плагинами тоже не айс... Вопрос то уперся всего лишь в строки вида:
    $fields['billing']['billing_state_name']['required'] = false;
    вот что там не так то?
     
  12. M0HAX

    M0HAX

    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Как оказалось - именно так!
    Хак от yaspis абсолютно рабочий! Деактивация WooChekcout все расставило на свои места!
    Но хочется все-таки еще "допилить" код для functions.php ... Чтобы исполнение хака отмены обязательных полей происходило только при выборе Самовывоз (local_pickup) ....