Лучший Ответ 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
Перейти к сообщению













