avatar

Показывам стоимость товара с учетом доставки

Опубликовал в блог Дополнения и модули для Simpla CMS
0
AJAX обновляемая общая сумма заказа с учетом цены выбранной доставки.

открываем файл cart.tpl вашего шаблона, ищем
{$cart->total_price|convert} {$currency->sign}

меняем на
<span id="sub_price" style="display: none;">{$cart->total_price}</span>
<span id="subtotal_price"></span> {$currency->sign}

далее в этом же файле ищем
<input type="radio" name="delivery_id" value="{$delivery->id}" {if $delivery_id==$delivery->id}checked{elseif $delivery@first}checked{/if} id="deliveries_{$delivery->id}">

меняем на
<input type="radio" name="delivery_id" onclick="select_delivery_method({$delivery->id});" value="{$delivery->id}" {if $delivery_id==$delivery->id}checked{elseif $delivery@first}checked{/if} id="deliveries_{$delivery->id}">

дальше находим
({$delivery->price|convert} {$currency->sign})

меняем на
(<span id="delivery_price_{$delivery->id}">{$delivery->price}</span> {$currency->sign})

в конце файла добавляем
{literal}
<script>
      function select_delivery_method(method_id)
      {
        radiobuttons = document.getElementsByName('delivery_id');
        for(var i=0;i<radiobuttons.length;i++)
        {
          if(radiobuttons[i].value == method_id)
          {
            radiobuttons[i].checked = 1;
          }
        }
 
      var subtotal = parseFloat(document.getElementById('sub_price').innerHTML);
      var delivery = 0;
      if(document.getElementById('delivery_price_'+method_id))
        delivery = parseFloat(document.getElementById('delivery_price_'+method_id).innerHTML);
      total = subtotal+delivery;
 
         document.getElementById('subtotal_price').innerHTML = total;                             
      }
    </script>
    <script>
      select_delivery_method(1);
    </script>
    {/literal}


ДЕМО

Добавляем товар в корзину, выбираем способ доставки и смотрим результат.
1 комментарий RSS
avatar
Если стоит бесплатная доставка при какой то сумме, и она достигается, то цена пропадает. Как это исправить?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.