Разные варианты оплаты в зависимости от выбранной доставки simpla

Разные варианты оплаты в зависимости от выбранной доставки simpla

Как и обещал - выкладываю решение для вариантов оплаты, в зависимости от выбранного способа доставки. Дело в том, что если мы выберем способ доставки - Почта России, то врядли будет доступен способ оплаты - Наличными курьеру. Из такого принципа и исходил.

Внимание! Решение является нативным, поэтому рассказывать и описывать особо не буду. Кому непонятно - в комментарии.

В конец файла cart.tpl добавляем скрипт:

<script>
  $(function() {
  $('.deliver li').click(function(){
if ($(this).is(":nth-child(2)")) {
   	$('.costs li:first-child').slideUp("slow");
	$('#payment_11').attr('checked', false);
        $('#payment_8').attr('checked', true);
   }
else {
   	$('.costs li:first-child').slideDown("slow");
	$('#payment_8').attr('checked', false);
    $('#payment_11').attr('checked', true);
}
})
});
 </script>

При этом способ оплаты и выбор доставки у меня реализуется следующим кодом:

{* Доставка *}
{if $deliveries}
<h2>Выберите способ доставки:</h2>
<ul id="deliveries" class="deliver">
	{foreach $deliveries as $delivery}
	<li>
		<div class="checkbox">
			<input type="radio" onclick="select_delivery_method(
{$delivery->id});" name="delivery_id" value="{$delivery->id}" 
{if $delivery_id==$delivery->id}checked{elseif $delivery@first}checked{/if} id="deliveries_{$delivery->id}">
		</div>
 
			<h3>
			<label for="deliveries_{$delivery->id}">
			{$delivery->name}
			{if $cart->total_price < $delivery->free_from && $delivery->price>0}
				(<span id="delivery_price_{$delivery->id}">{$delivery->price}</span>&nbsp;{$currency->sign})
			{elseif $cart->total_price >= $delivery->free_from}
				(бесплатно)
			{/if}
			</label>
                         </h3><span class="more">(подробнее)</span>
			<div class="description">
			{$delivery->description}
			</div>
	</li>
	{/foreach}
</ul>
{/if}
    <div class="total-price">
    <span id="sub_price" style="display: none;">{$cart->total_price}</span>
		Итого, с учетом доставки: <span id="subtotal_price"></span>&nbsp;{$currency->sign}.
 </div>
 
 
{* Выбор способа оплаты *}
{if $payment_methods && !$payment_method}
<h2>Выберите способ оплаты:</h2>
<ul id="deliveries" class="costs">
    {foreach $payment_methods as $payment_method}
        <li>
            <div class="checkbox">
                <input type=radio name=payment_method_id value='{$payment_method->id}' {if $payment_method@first}checked{/if} id=payment_{$payment_method->id}>
            </div>            
            <h3><label for=payment_{$payment_method->id}>    {$payment_method->name}{*, к оплате {$cart->total_price|convert:$payment_method->currency_id}&nbsp;{$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
            <div class="description">
            {$payment_method->description}
            </div>
        </li>
    {/foreach}
</ul>
{/if}

Для тех кто не понял - я рассчитал, что если выбирается второй способ доставки, то первый вариант оплаты скрывается. В противном случае - отображается. При этом необходимо переопределить чекнутый радиобокс. Вот и все.

27.03.17
Для просмотра сайта обновите браузер.