avatar

Переносим выбор варианта оплаты на первую страницу оформления заказа

Опубликовал в блог Дополнения и модули для Simpla CMS
0


В Simpla CMS довольно интересная логика по поводу оформления заказа. На первом этапе посетителю предлагается информация о заказе, выбор способа доставки и ввод данных о покупателе. После этого оформление переходит на шаг 2, но пишет, что Ваш заказ принят. И он действительно принят, только вот вариант оплаты и возможность оплаты (если это например электронные деньги) появляется только на шаге 2. А многие посетители вообще уходят с шага 2 не выполнив его, считая, что уже все заказано.

Поэтому сейчас мы перенесем выбор способа оплаты на первую страницу. Поехали.

открываем view/CartView.php и после
if(isset($_POST['checkout']))
    {
    	$order->delivery_id = $this->request->post('delivery_id', 'integer');

добавляем
$order->payment_method_id = $this->request->post('payment_method_id', 'integer');

в конце, после
function fetch()
	{  
		// Способы доставки
		$deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
		$this->design->assign('deliveries', $deliveries);

добавляем
// Варианты оплаты
        $payment_methods = $this->payment->get_payment_methods(array('enabled'=>1));
        $this->design->assign('payment_methods', $payment_methods);

далее в design/ваш_шаблон/cart.tpl в нужное место (например после выбора варианта доставки) вставляем
{* Выбор способа оплаты *}
{if $payment_methods && !$payment_method}
<h2>Выберите способ оплаты</h2>
<ul id="deliveries">
    {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} {$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
            <div class="description">
            {$payment_method->description}
            </div>
        </li>
    {/foreach}
</ul>
{/if}

Вот и все.
0 комментариев RSS
Нет комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.