Лучший Ответ mr.varhola , 18 June 2018 - 17:53
В общем все получилось как было задумано, вдруг кому-то пригодится:
Задача была сделать 5 разных способов оплаты, 2 из которых должны давать скидку, один 3% а второй 70%, пример на сайте: http://joxi.ru/Vm64OejCD4wRPA(на скрине 3 способа, но основную суть они передают, ещё два выводятся для другого способа доставки.)
CB9TOIIIA натолкнул на мысль использовать промокоды, так как мне потребовалось использование по сути трех разных скидок отлично подошел элемент: Разные промо-коды для скидки в одном поле
В админке он выглядит так: http://joxi.ru/8AnbJD1ijz5NDA
После того как нужные промокоды были созданны идем в файл \media\zoo\applications\jbuniversal\templates\uikit\renderer\basket\index.php
там скрываем вывод способов оплаты и выводим их муляжи, у меня это выглядит так:
<div class="cp-payment"> <div class="cpp-variant1 cpp-variant"> 100% Предоплата на сайте онлайн (скидка 3%) </div> <div class="cpp-variant2 cpp-variant"> 30% Предоплата на сайте онлайн </div> <div class="cpp-variant3 cpp-variant"> Оплата по выставленному банковскому счету </div> <div class="cpp-variant4 cpp-variant"> Наличными курьеру, после примерки </div> <div class="cpp-variant5 cpp-variant"> Банковской картой курьеру, после примерки </div> </div> <div class="cp-paymentReal" style="display: none;"> <?php echo $this->partial('basket', 'payment'); ?> </div>
Далее в конце этого-же файла немного js:
function promo(value1, value2, value3){ var promocode = value1; var curbtn = value2; var curship = value3; jQuery('.cp-payment >div').removeClass('active'); jQuery(value2).addClass('active'); jQuery(value3).click(); /*--//--*/ jQuery('input[name*="01bef2fa-8aae-4431-8231-c530c6f68a3a"]').val(promocode); setTimeout(function() { jQuery('div[class*="01bef2fa-8aae-4431-8231-c530c6f68a3a"] .jsSendCode').click(); }, 100); } jQuery( document ).ready(function() { promo('OPLATA3','.cpp-variant1','#jbcart-baf428c6-e3d8-4f07-a82a-a47d381ab320'); }); jQuery('.cpp-variant1').click(function(){ promo('OPLATA3','.cpp-variant1','#jbcart-baf428c6-e3d8-4f07-a82a-a47d381ab320'); }); jQuery('.cpp-variant2').click(function(){ promo('OPLATA30','.cpp-variant2','#jbcart-3dc9c688-8d99-426b-aafb-4d973fff0c94'); }); jQuery('.cpp-variant3').click(function(){ promo('OPLATA0','.cpp-variant3','#jbcart-52916eee-501c-4469-bf48-f913136ea1b2'); }); jQuery('.cpp-variant4').click(function(){ promo('OPLATA0','.cpp-variant4','#jbcart-7537ebee-217f-4e60-a564-3f62533546c0'); }); jQuery('.cpp-variant5').click(function(){ promo('OPLATA0','.cpp-variant5','#jbcart-d1836587-8d21-478b-87a7-821b3efe15b9'); });
В функцию promo() мы передаем нужный промокод и применяем его, передаем класс нажатой кнопки(муляжа) и делаем её активной, передаем id нужного способа оплаты и выбераем его, айдишку можно посмотреть так: http://joxi.ru/brRK1OqtJ7g3Pm
Далее уже просто css
Перейти к сообщению