Перейти к содержанию
Форум поддержки пользователей VamShop

Как сделать что б на checkout.php был уже выделен определённый модуль доставки?


Рекомендуемые сообщения

Работает ли в текущих версиях http://vamshop.ru/forum/topic/8413-как-сделать-что-б-на-странице-выбора-способа-дос/?p=69695 ?

 

checkout_shipping.php, пишем:
 

$_SESSION['shipping']['id'] = flat_flat;

$radio_buttons = 0;

Не реагирует и выделение не появляется, да и вообще похоже изменение

$radio_buttons = 1;

//$radio_buttons = 0;

Ни коим образом не влияет на "крыжик"  у модулей доставки на чекауте.

Не выделяются по умолчанию никак.

Помогите, как его выделить по умолчанию

Ссылка на сообщение
Поделиться на другие сайты

По идее, должно работать, ничего не менялось.

Разве что если речь про быстрое оформление, то нужно будет править файл /checkout.php

 

P.S. В FAQ не надо задавать вопросы, faq - это готовые ответы, без обсуждения.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, не допер сам.

Нужно в FAQ  добавить волшебную фразу

Если  быстрое оформление, то нужно будет править файл /checkout.php

 

Все заработало.

Ссылка на сообщение
Поделиться на другие сайты

Нет все таки в checkout.php это все или вообще не работает или практически не работает.

Если модуль оплаты выбранным делать по этой рекомендации http://vamshop.ru/forum/topic/8414-как-сделать-что-б-на-странице-выбора-способа-опл/?p=69696 , тоже нужно поправить ФАК, то в синтаксисе

if( $payment == '') $payment = schet_schet;

Не работает ни в каких вариантах синаксиса.

Никакой реакции - модуль оплаты будет выбран (что уже хорошо) , но первый в сортировке , заданный в админке.

Если, по условиям доставка-оплата первый не показывается, то будет выделен второй в сортировке и т.д.

И это логика, и она понятна в использовании.

 

Никакого аналогично здравого поведения нет для модулей доставки!

 

1.Если в  checkout.php, пишем:
 

$_SESSION['shipping']['id'] = flat_flat;
$radio_buttons = 0;

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

2. Если же не пишем, то вообще никакой модуль не выделен.

Ни от какой сортировке ничего не зависит

 

Вопросы:

1. Как заставить модули оплаты выделятся по умолчанию аналогично модулям оплаты при использовании checkout.php?

 

2. Или хотя бы принудительно назначить, но чтобы можно было выбрать и другой.

Ссылка на сообщение
Поделиться на другие сайты

А почему Вы в кавычки текстовое значение не берёте?!

 

'schet' - для модулей оплаты просто пишет название класса.

 

Это для доставки flat_flat

 

Тоже в кавычки надо брать.

 

Да и можно просто условие у Вас неправильно, Вы вообще смотрите, чему у Вас равно $_SESSION['shipping']['id'] 

Ссылка на сообщение
Поделиться на другие сайты

Ну здесь http://vamshop.ru/forum/topic/8413-%D0%BA%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D1%87%D1%82%D0%BE-%D0%B1-%D0%BD%D0%B0-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B5-%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%B0-%D0%B4%D0%BE%D1%81/?p=69695%20? без ковычек и нет никакого основания не доверять Вам :)

C оплатой - текущая логика выделения первого модуля автоматом - разумна и устраивает - приведена именно в качестве такового примера.

С ковычками в доставке попробую (но кажется уже пробовал , точно не помню)

Но хорошо бы унифицировать логику:

1. Как заставить модули оплаты выделятся по умолчанию аналогично модулям оплаты при использовании checkout.php?

 

Ссылка на сообщение
Поделиться на другие сайты
$_SESSION['shipping']['id'] = 'flat_flat';
$radio_buttons = 0;

Ну что же не так делаю?

Выделяется, но пытаюсь поставить "крыжик" на другой модуль доставки - вздрагивает и возвращается на flat

Ссылка на сообщение
Поделиться на другие сайты

Я так думаю, что дело в ajax, при нажатии на крыжик идёт ведь ajax запрос.

 

Наверное нужно добавить условие, что-то типа:

if (isset($_SESSION['shipping']['id'])) {
$_SESSION['shipping']['id'] = 'flat_flat';
}

т.е. если не выбрано ничего, выбираем нужный модул, если выбран, пусть работает по умолчанию.

Ссылка на сообщение
Поделиться на другие сайты

Может как-то так:

if (isset($_SESSION['shipping']['id'] != 'flat_flat')) {
$_SESSION['shipping']['id'] = 'flat_flat';
}

А может условие не в то место вставляете, в общем, нужно экспериментировать и пробовать.

Ссылка на сообщение
Поделиться на другие сайты

Да куда я его только не вставлял...Даже говорить неудобно...:)

Везде приводит к блокировке выбора других вариантов доставки.

На Демо , кстати тоже ни один модуль доставки не выбран по умолчанию, а модули оплаты - да, как я и описывал.

Может покажете где не прав?

Ссылка на сообщение
Поделиться на другие сайты

С быстрым оформление наверное этот совет из faq не будет работать.

 

Там же сделаны ajax запросы при клике на модуля доставке, поэтому и не выбран ни одни модуль, что б нажали на нём и через ajax обновились данные.

Ссылка на сообщение
Поделиться на другие сайты

А как с модулями оплаты - хоть какой то но выделенный на всякий случай нельзя?

Чтобы  на 150% без выбора доставки не оформили. И чтобы не зависело от работы проверки полей, прочих возможных случайностей.

Все таки с модулями оплаты - грамотно системно сделано, логично.

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

Последствия не выбора уж очень неприятны.

В нынешнем варианте редактирования заказа (добавления доставки в данном случае) не пресчитывается в столбик общая сумма, с учетом довесков типа наценки на способ оплаты и. т. д.

Здесь нужен четкий механизм защиты.

Заказ в Норильск, оплаченный онлайн без доставки ( то ли забыл, то ли специально проигнорировано) - офигенная проблема.

Ссылка на сообщение
Поделиться на другие сайты

Обычно пишет, но после неких "творческих" действий, не отрабатывается скрипт проверки "ниже" блока адресной информации на чекауте. И в этом случает вполне приемлемым решением было бы отметить какой нить модуль доставки - а никак.

Ссылка на сообщение
Поделиться на другие сайты

У меня нет кода для этой правки на данный момент, пробуйте править код в /checkout.php на основе совета из faq.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...