10 / 10 / 2
Регистрация: 29.05.2011
Сообщений: 533
1

Способ оплаты в оформлении заказа

24.10.2019, 14:00. Показов 1597. Ответов 4
Метки нет (Все метки)

Доброго времени суток!
При оформлении заказа существует 2 типа оплаты: "Наличные курьеру", "Оплата с помощью банковской карты" (скрин "Способ оплаты").
В шаблоне данный код отвечает за вывод тип оплат:
PHP
1
2
3
4
5
6
7
8
9
10
<? $frst = true; ?>
<? foreach ($arResult["ORDER"]["PAYSYSTEMS"] as $arPaysystem): ?>
<? if ($frst)                       
?>
<label class="payType">
 <input class="paySelect" type="radio" name="PAY_TYPE" value="<?= $arPaysystem["ID"] ?>" <? if ($frst) { ?> checked <? } ?>>
<?= $arPaysystem["NAME"] ?>
</label>
<? $frst = false; ?>
<? endforeach; ?>
В публичной части если выбрать оплату "Оплата с помощью банковской карты", то при оформленном заказе на странице отображается способ оплаты "Наличные курьеру" (скрин "Заказ"), т.е. в данном случае передается только один тип оплаты.
На странице оформления заказа при переключении типов оплат происходит следующее:
1) изначально выбран "Оплата с помощью банковской карты"
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<td>
<label class="payType">
<input class="paySelect" type="radio" name="PAY_TYPE" value="11" checked="">
Наличные курьеру </label>
<label class="payType">
<input class="paySelect" type="radio" name="PAY_TYPE" value="10" checked="">
Оплата с помощью банковской карты </label>
                                                                            
<div class="payFromBudget hidden">
<input type="checkbox" value="Y" id="payFromBudget_3" name="payFromBudget" class="budgetSwitch" data-account-balance="1.0000">
<label for="payFromBudget_3">Оплатить с личного счета: (Баланс: 1 руб.                                            )</label></div>
<ul class="userProp">
</ul>
</td>
2) после того, как изменить тип оплаты к каждому input добавляется option, где у "Наличные курьеру" стоит selected="selected"
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<td>
<label class="payType">
<input class="paySelect" type="radio" name="PAY_TYPE" value="11" checked="">
Наличные курьеру</label>
<label class="payType">
<input class="paySelect" type="radio" name="PAY_TYPE" value="10" checked="">
Оплата с помощью банковской карты</label>                           
                                                                        
<div class="payFromBudget hidden">
<input type="checkbox" value="Y" id="payFromBudget_3" name="payFromBudget" class="budgetSwitch" data-account-balance="1.0000">
<label for="payFromBudget_3">Оплатить с личного счета: (Баланс: 1 руб. )</label>
</div>
<ul class="userProp">
 </ul>
</td>
Скорее всего именно из-за этого происходит постоянная отправка одного и того же типа оплаты.
Только не совсем понятно по какой причине к каждому input добавляется два типа

Подскажите, пожалуйста , каким образом возможно отследить input на признак выбора?
В коде у input всегда стоит признак checked, вне зависимости от того выбрана оплата или нет

Добавлено через 7 минут
2) после того, как изменить тип оплаты к каждому input добавляется option, где у "Наличные курьеру" стоит selected="selected"
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<td>
<label class="payType">
<input class="paySelect" type="radio" name="PAY_TYPE" value="11" checked="">
<option value="10">Оплата с помощью банковской карты</option>
<option value="11" selected="selected">Наличные курьеру</option>
Наличные курьеру</label>
<label class="payType">
<input class="paySelect" type="radio" name="PAY_TYPE" value="10" checked="">
<option value="10">Оплата с помощью банковской карты</option>
<option value="11" selected="selected">Наличные курьеру</option>
Оплата с помощью банковской карты</label>                           
                                                                        
<div class="payFromBudget hidden">
<input type="checkbox" value="Y" id="payFromBudget_3" name="payFromBudget" class="budgetSwitch" data-account-balance="1.0000">
<label for="payFromBudget_3">Оплатить с личного счета: (Баланс: 1 руб. )</label>
</div>
<ul class="userProp">
 </ul>
</td>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2019, 14:00
Ответы с готовыми решениями:

magento добавить способ оплаты (не плат системы, просто способ)
доброе утро. надо добавить при заказе выбор наличные или безнал. Искал по этому поводу, везде...

Ошибка при оформлении заказа
Здравствуйте , подскажите, что может &quot;мешать&quot; оформлению заказа с мобильного Android например , с...

Дополнительный сбор при оформлении заказа
Добрый день! Подскажите как можно реализовать: Дополнительный сбор 200р при оформлении заказа...

Стоимость сборки при оформлении заказа
Доброго времени суток! Необходимо: Добавить возможность для покупателя рассчитать и оплатить...

4
10 / 10 / 2
Регистрация: 29.05.2011
Сообщений: 533
25.10.2019, 11:46  [ТС] 2
В файле script.js найден код (1191):
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//each data
        $.each(paysystems, function (currentIndex, nextPaysystem) {
 
            //create next delivery item
            var $paysystemItem = $("<option/>").val(nextPaysystem["ID"]);
 
            //set title
            $paysystemItem.html(nextPaysystem["NAME"]);
 
            //set selected
            if (currentId == nextPaysystem["ID"]) {
                $paysystemItem.attr("selected", "selected");
            }
 
            //push
            $this.append($paysystemItem);
 
        });
Если его закомментировать, тогда к input не добавляется две записи option
0
2193 / 1126 / 227
Регистрация: 16.03.2008
Сообщений: 5,299
Записей в блоге: 2
25.10.2019, 12:07 3
Ох. Вы взялись кастомизировать, а точнее по своему переписать один из самых сложных комопнентов. Или у вас нет в редакции модуля Интернет-магазин?


А по существу в приведенном вами коде вижу теги label, option, input..... а select то где?
0
10 / 10 / 2
Регистрация: 29.05.2011
Сообщений: 533
25.10.2019, 13:12  [ТС] 4
voral, спасибо что откликнулись
Цитата Сообщение от voral Посмотреть сообщение
а точнее по своему переписать один из самых сложных комопнентов
- в таком виде досталось Ошибку ведь всё равно необходимо исправить

Цитата Сообщение от voral Посмотреть сообщение
а select то где
- в том то и дело, что не удалось обнаружить... Видимо где-то закрался в js
0
2193 / 1126 / 227
Регистрация: 16.03.2008
Сообщений: 5,299
Записей в блоге: 2
25.10.2019, 13:32 5
Ну тут надо вообще со всем этим разбираться. По сути в приведенном вам куске код $this - это должен быть select. Но не факт, может там у вас вообще так сделано что стандартные теги используются только для мебели. ИМ элемент "список выбора" создается скриптом.
У вас вообще легче все выкинуть и сделать по новой.

Вообще не понятно зачем при выборе типа оплаты еще чего то добавляется.... Там вообще творится какая то жесть.
Очевидно, что скрипт принимает
PHP/HTML
1
<input class="paySelect" type="radio" name="PAY_TYPE" value="11" checked="">
за элемент select и пробует к нему дописать option... Но зачем к выбору типа оплаты добавлять еще типы оплаты.....


В общем там вообще ВСЕ плохо....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2019, 13:32
Помогаю со студенческими работами здесь

Стоимость услуги при оформлении заказа
Всем доброго дня. Совсем недавно столкнулся с Битрикс. Помогите новичку в простом вопросе или...

Вывести телефон указанный в оформлении заказа в почтовом шаблоне
В модуле sale.order.ajax в файле component.php нужно добавить код чтобы вывести телефон указанный...

Занесение значения в свойство заказа при оформлении покупок
Есть некоторое свойство заказа, назовем его &quot;Закупочная цена&quot;. Известен его ID (40), оно...

Как свернуть способы оплаты и доставки при оформлении заказа - Joomshopping
Приветствую вас, уважаемые форумчане! Есть 2 вопроса по оформлению заказа Joomshopping. Joomla 3,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru