OpenCart — точки самовывоза. Часть 2

Добрый день, уважаемые читатели!

Сегодня мы продолжим писать модуль для OpenCart — точки самовывоза, но теперь уже пользовательскую часть.

На моем магазине стоит модуль Simple (Упрощенная регистрация и заказ), поэтому мы будем редактировать файл

/catalog/view/theme/ВАША_ТЕМА /template/checkout/ simplecheckout_shipping.tpl

Итак, ищем:


<?php if (empty($shipping_method['error'])) { ?>
 <?php foreach ($shipping_method['quote'] as $quote) { ?>
 <tr>
 <td class="code">
 <input type="radio" name="shipping_method" value="<?php echo $quote['code']; ?>" id="<?php echo $quote['code']; ?>" <?php if ($quote['code'] == $code) { ?>checked="checked"<?php } ?> onchange="simplecheckout_reload('shipping_changed');" />
 </td>
 <td class="title" valign="middle">
 <label for="<?php echo $quote['code']; ?>">
 <?php echo $quote['title']; ?>
 </label>
 <?php if (!empty($quote['img'])) { ?>
 <label for="<?php echo $quote['code']; ?>">
 <img src="<?php echo $quote['img']; ?>" width="60" height="32" border="0" style="display:block;margin:3px;">
 </label>
 <?php } ?>
 </td>
 <td class="quote">
 <label for="<?php echo $quote['code']; ?>"><?php echo $quote['text']; ?></label>
 </td>
 </tr>
 <?php if (!empty($quote['description'])) { ?>
 <tr>
 <td class="code">
 </td>
 <td class="title">
 <label for="<?php echo $quote['code']; ?>"><?php echo $quote['description']; ?></label>
 </td>
 <td class="quote">
 </td>
 </tr>
 <?php } ?>

и после вставляем:

<?php if($quote['code'] == 'pickup_point.pickup_point') { ?>
 <tr id="tr_shops" style="display: none;">
 <td class="code">

</td>
 <td class="title" valign="middle">
 <label for="<?php echo $quote['code']; ?>"></label>
 <select name="shop_id" id="shop_id" onchange="$.post('/shop/index.php?route=checkout/simplecheckout', function(){ $('#shop_id').parents('tr').prev().find('input[type=radio]').attr('checked','checked');if (typeof simplecheckout_reload == 'function') { simplecheckout_reload('pickup_point'); }})">
 <?php foreach($this->config->get('pickup_point_shops') as $shop) { ?>
 <option value="<?php echo $shop['shop_number']; ?>"<?php if($shop['shop_number'] == $shop_id) { ?>selected="selected"<?php } ?>><?php echo $shop['shop_address'] ?></option>
 <?php } ?>
 </select>
 <input type="hidden" id="#ShopAddress" value="" />
 </td>
 <td class="quote">

</td>
 </tr>

<?php } ?>

и в самый конец файла вставляем jQuery скриптик:

<script type="text/javascript">
if($('#pickup_point\\.pickup_point').prop('checked')){
 $('#tr_shops').show('slow');
} else {
 $('#tr_shops').hide('slow');
 }
 });
</script>

Итак, на этом оформление пользовательской части заканчивается. В следующей части разберем уже серверную часть и передачу данных в БД и вывод данных в админскую часть в заказе!

5 комментариев

  1. Не появляется, потому-что яваскрипт код неправильный. не срабатывает. надо добавить событие .change по которому будет срабатывать код проверки, указанный автором
    вот так работает

    $(‘input[name=shipping_method]’).change(function() {
    if($(‘#pickup_point\\.pickup_point’).prop(‘checked’)){
    $(‘#tr_shops’).show(‘slow’);
    } else {
    $(‘#tr_shops’).hide(‘slow’);
    }
    });

Leave a Reply