Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Не считает доставку #17

Open
mikekosulin opened this issue Nov 1, 2016 · 23 comments
Open

Не считает доставку #17

mikekosulin opened this issue Nov 1, 2016 · 23 comments

Comments

@mikekosulin
Copy link

Не считает доставку, после первого ввода города.
Требуется повторный ввод.

Иногда выдает ошибку. что необходим "Платежный город"

@not4u
Copy link

not4u commented Nov 4, 2016

  1. Поставьте Стандартное местоположение клиента - Город магазина
  2. Поставтье Saphali russian wocommerce и в его настройках отключите обязательное заполнения поля адрес

@kalbac
Copy link
Owner

kalbac commented Nov 4, 2016

Скорей всего у @mikekosulin как раз и установлен плагин Saphali, который перезаписывает поля формы оформления заказа. С "чистым" wooсommerce такой проблемы нету.

@mikekosulin
Copy link
Author

mikekosulin commented Nov 4, 2016

WP 4.6.1
WC 2.6.7

Autoptimize от Frank Goossens (futtta) – 2.1.0
Nginx Helper от rtCamp – 1.9.8
Redis Object Cache от Till Krüss – 1.3.4
eDostavka Shipping Method от Мартиросов Максим – 1.3.7
WooCommerce Checkout Manager от Visser Labs – 4.0.9
WooCommerce Order Status & Actions Manager от Actuality Extensions – 2.0.9

Никакого Saphali нет у меня.

UPD:
отключил стандартное местоположение.
не помогло, теперь не определяется страна сама даже.

при чекауте ввожу город, уходит запрос через jsonp.php и прилетает ответ.
Проблема в том, что калькуляция не отображается.
при повторном вводе и выборе города всё уже отлично работает.

с отключенным WooCommerce Checkout Manager от Visser Labs – 4.0.9 тоже пробовал
кеширование на странице чекаута отключено, склейка js с другими и минификация плагина edostavka не производится.

@not4u
Copy link

not4u commented Nov 7, 2016

Я победил этот глюк установкой SAPHALI WOOCOMMERCE RUSSIAN.
Через него создал дубль поля адрес. Стандартный адрес убрал и отключил обязательность его заполнения.

Проблема необновления условий доставки случается из за того что выбираете ПВЗ. Модуль скрывает поле адрес. А обновление произойдет только когда введете что то в поле адрес. Соответсвенно модуль данные получает а сам вукоммерц их не спрашивает у wc_edostavka так как ждет ввода адреса в соответсвующее поле

@mikekosulin
Copy link
Author

нужен просто класс update_totals_on_change
но почему-то работает через раз

@me-2-you
Copy link

me-2-you commented Nov 10, 2016

@not4u при таком варианте - Карта ПВЗ обновляется? Можете дать ссылку на живой пример?
У меня после ввода нового города нужно переключать способы доставки, чтобы карта обновилась...

@mikekosulin
Copy link
Author

Добавляю через js класс update_totals_on_change , не помогает, всё равно расчет не происходит часто. Все плагины чекаута отключены
Поле адрес не скрыто(кст скрытие населенного пункта не работает)

@kalbac
Copy link
Owner

kalbac commented Nov 11, 2016

@mikekosulin Если поле "населённый пункт" не скрывается, это уже свидетельствует о том, что где то в коде (в плагинах или теме) идёт перезапись полей woocommerce_checkout_fields

@me-2-you
Copy link

me-2-you commented Nov 11, 2016

@kalbac, я не понимаю как плагин должен работать... Имеем чистый wp + woocommerce + wp-edostavka

Настройка WooCommerce

Основные настройки

  • Базовое местоположение - Россия
  • Продавать в определённые страны - Россия
  • Доставлять в определённые страны - Россия
    Стандартное местоположение клиента - Адрес Магазина (Кстати он где-то указывается?)

Доставка - Зона - Россия - Методы доставки - Самовывоз, Бесплатная доставка, eДоставка
Самовывоз по умолчанию.

Параметры доставки

Расчеты - выключены
Назначение доставки - Принудительная доставка по платёжному адресу клиента

eДоставка, настройки по умолчанию
Методы доставки - Посылка склад-склад, inpost склад-склад

Форма оформления и заказа

Для сравнения

Стандартная форма woocommerce

Имя, Фамилия
Название компании
Email, Телефон
Страна
Адрес, два поля:

  • Улица,
  • Подъезд, этаж
    Населенный пункт
    Область/Регион, Почтовый индекс

Форма явно не логична к заполнению..

При активации eДоставка

Поля в форме оформления, следующие.. и их расположение мягко говоря тоже вносит какую-то суматоху для заказчика...

Имя, Фамилия
Название компании
Email, Телефон
Страна
Подъезд, этаж (без лейбла вверху, что это адрес) - ???
Населенный пункт
Область/Регион, Почтовый индекс
Адрес - Улица, и.т..д..

Форма по умолчанию

Ок, плагин активировался, но форма сразу вводит в ступор.. по моему логичнее она должна выглядеть так по умолчанию.

Хорошая форма

Имя, Фамилия
Название компании (можно скрыть, не особо нужно)
Email, Телефон
Страна (можно скрыть, если в одной стране торговля)
Область/Регион (во всю ширину)
Населенный пункт, Почтовый индекс
Адрес, два поля:

  • Улица,
  • Подъезд, этаж

Форма должна выглядеть так

Собственно это более логичный вариант, по сравнению со стандартной формой, так как заказчик не начинает тупить.. Все заполняется логично...

Имя, Фамилия
Email, Телефон
Область/Регион
Населенный пункт - заполняется автоматически после выбора Область/Регион


Пока я писал, про форму, плагин взял и заработал... Но про форму реально актуально... Есть какие варианты причесать форму к такому виду?

@kalbac
Copy link
Owner

kalbac commented Nov 11, 2016

@me-2-you Варианты есть. Либо через плагин WC Saphali Light (не рекомендуется), либо если есть познания в программирование то кастомизируйте вывод полей checkout через фильтр woocommerce_checkout_fields Customizing checkout fields using actions and filters

@me-2-you
Copy link

@kalbac да, я так пробовал, но ломаю что-то... и поле Населенный пункт перестает заполнятся.. Кстати это же поле при отключении в админке на чистом wp + wc не исчезает.. Попробую позже еще...

Собственно, методом тыка, нашлось как срабатывает обновление ПВЗ =))

Не работает

По умолчанию доставка - Самовывоз

Заполняем поля, выбираем город в поле Область, Населенный пункт заполняется автоматом. Все, приехали =) Ничего не меняется...

Возможно может и появится - Доставка до ПВЗ, но не уверен (не помню).. Но в таком случае при появлении данного пункта, выборе метода с ПВЗ, но при не заполненном поле Адрес... смена города ПВЗ не будет обновлять данные и карту автоматически. Смена будет только при переключении методов доставки.

Работает

По умолчанию доставка - Самовывоз

Заполняем поля, как выше. Далее копируем город в поле Адрес и вуаля появляется Доставка до ПВЗ с ценой. При выборе Доставка до ПВЗ смена города работает на ура с обновлением карты и данных =) Ура, ура!

В модуле есть такой пункт, который и должен решать видимо эту проблему

  • Адрес не обязательный +- Нет

Но его смена ничего не меняет, поле остается в любом случае обязательным.

Решение

line 306 - wc_edostavka.php (address_1)

'required' => ( ! empty( $settings['disable_required_address'] ) && $settings['disable_required_address'] === 'yes' && self::is_stock_tariff() ) ? false : true,

заменить на

'required' => false

@kalbac
Copy link
Owner

kalbac commented Nov 11, 2016

@me-2-you > 'required' => false - костыльный способ. Теперь у вас поле "Адрес" будет всегда не обязательным. К примеру пользователь выберет метод доставки до двери, и не введёт свой адрес, скрипт посчитает пустое поле валидным и пропустит пользователя на следующий этап.
Нужно понять почему $settings['disable_required_address'] не возвращает значение 'yes'.
Как минимум нужно оставить так 'required' => self::is_stock_tariff() === false

@me-2-you
Copy link

me-2-you commented Nov 11, 2016

@kalbac, да так работает, спасибо.

Вот эти пару опций которые не работают, уже пару раз ставил с нуля, результат тот же.

  • Адрес не обязательный
  • Скрыть стандартное поле ввода "Населенный пункт"

Может кто еще проверит...

Ну и плюс пробовал отсортировать поля по этому мануалу, поля сортируются, но перестает работать подсчет цены и пвз.. делает вид что считает, но ничего не происходит...

@mikekosulin
Copy link
Author

Так как решили проблему автозаполнения Населенного пункта?
У меня не заполняется само и не скрывается из настроек(но при этом скрывать хуком можно, но это не то, что хотелось бы).
Подсчет так и не работает пока не введен Населенный пункт и Область/Регион(либо 2-3 раза Область/Регион)

@me-2-you
Copy link

@mikekosulin, у меня заполнял Населенный пункт изначально, но не показывал eДоставку пока не заполнишь поле - Адрес.

А опции: Адрес не обязательный, Скрыть стандартное поле ввода "Населенный пункт", как я и писал ранее, не работают... Нужно ждать пока @kalbac посмотрит.

@me-2-you
Copy link

@kalbac, проверил, в базу настройки вносятся в разделе woocommerce_edostavka_4_settings, значения меняются yes / no для этих параметров...

Нубский вопрос... php7, 5.5 никак не связано с не взятием значений из базы? У меня php7 на хосте.

@mikekosulin
Copy link
Author

У меня тоже php7, с профайла и сессии city цепляет, а со state со второго раза обычно, если пусто было.

@kalbac
Copy link
Owner

kalbac commented Nov 14, 2016

Проблему со значением state_id которое цепляется только со второго раз, решил. В следующем релизе этот баг будет устранён, что касается woocommerce_edostavka_X_settings то версия php тут ни как не влияет. X - это айдишник экземпляра вызываемого класса доставки. В вашем @me-2-you случае 4 означает что у вас как минимум 4 экземпляра класса edostavka. Тоже можно отнести к багу, в следующем обновлении исправлю.

@mikekosulin
Copy link
Author

Кст фичреквест: возможность переименовывать способы доставки СДЭК отдельно
Потому что сейчас они отображаются либо как одинаковые(иногда даже суммы(что не круто), либо стандартными названиями сдэка что непонятно.

@kalbac
Copy link
Owner

kalbac commented Nov 14, 2016

@mikekosulin Не совсем понял. Вы хотите что бы я добавил возможность переименовывать название каждого тарифа в отдельности или что?

@mikekosulin
Copy link
Author

@kalbac да, и возможность скрывать тарифы при одинаковых сроках доставки.(посылка и экспресс , например)

@me-2-you
Copy link

@kalbac

что касается woocommerce_edostavka_X_settings ... X - это айдишник экземпляра вызываемого класса доставки. В вашем @me-2-you случае 4 означает что у вас как минимум 4 экземпляра класса edostavka.

Может так и должно быть, может просто id проставляется, потому что ранее идут тоже _settings с ид 1,2,3

(648, 'woocommerce_local_pickup_1_settings', 'a:3:{s:5:\"title\";s:18:\"Самовывоз\";s:10:\"tax_status\";s:4:\"none\";s:4:\"cost\";s:0:\"\";}', 'yes'), (649, 'woocommerce_free_shipping_2_settings', 'a:3:{s:5:\"title\";s:37:\"Бесплатная доставка\";s:8:\"requires\";s:10:\"min_amount\";s:10:\"min_amount\";s:4:\"1000\";}', 'yes'), (650, 'woocommerce_flat_rate_3_settings', 'a:3:{s:5:\"title\";s:25:\"Единая ставка\";s:10:\"tax_status\";s:4:\"none\";s:4:\"cost\";s:3:\"500\";}', 'yes'), (651, 'woocommerce_edostavka_4_settings', ......

@experk
Copy link

experk commented Dec 3, 2016

Доброго времени суток!
Подскажите, пожалуйста, есть ли какой-то воркэраунд к проблеме со State_id до выхода новой версии? Полдня бьюсь (очень я слабенький в программировании) чтобы хоть костыль какой поставить, но без толку

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants