Перейти к содержанию
Форум поддержки пользователей VamShop

Радио-кнопки в способах доставки/оплаты


Рекомендуемые сообщения

Попросили сделать, чтобы радио-кнопка не исчезала, когда присутствует только один способ доставки или оплаты.

Когда их несколько, то да, радио-кнопки есть и их можно нажимать. А когда только один способ в наличии, то вместо радио-кнопки выводится "пустота". Заказчик хочет, чтобы всё-равно был этот кружочек с точкой, будь он не ладен.

Я уже всё облазил - не могу найти это место.

Могу конечно гвоздями в шаблон прибить, но это на крайний случай уже.

Ссылка на сообщение
Поделиться на другие сайты

Первый способ, с правкой php:

В checkout_shipping.php вместо строки (её можно просто закомментировать):

$quotes[$i]['methods'][$j]['price'] = $vamPrice->Format(vam_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true).vam_draw_hidden_field('shipping', $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id']);
пишем:
$quotes[$i]['methods'][$j]['price'] = $vamPrice->Format(vam_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax']), true, 0, true);
$quotes[$i]['methods'][$j]['radio_field'] = vam_draw_radio_field('shipping', $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'], 'checked','id="'.$quotes[$i]['methods'][$j]['id'].'"');
$quotes[$i]['methods'][$j]['id'] = $quotes[$i]['methods'][$j]['id'];[/code] если не находим, то ищем условие [b]if (($n > 1) || ($n2 > 1))[/b] и в нём меняем а в checkout_payment.php вместо:
[code]$selection[$i]['selection'] = vam_draw_hidden_field('payment', $selection[$i]['id']);[/code]
пишем:
[code]$selection[$i]['selection'] = vam_draw_radio_field('payment', $selection[$i]['id'], ($selection[$i]['id'] == $selection[0]['id']), 'id="'.$selection[$i]['id'].'"');[/code]
если не находим, то ищем условие [b]if (sizeof($selection) > 1)[/b] и в нём меняем [b]Второй способ, правка только в шаблоне:[/b] В файле шаблон\module\checkout_shipping_block.html ищем:
[code]{$method_data.radio_field}[/code]
и заменяем на условие:
[code]{if $smarty.foreach.aussen.total==1}<input type="radio" checked="checked" />{else}{$method_data.radio_field}{/if}[/code]
В файле шаблон\checkout_payment_block.html ищем:
[code]{$module_data.selection}[/code]
и заменяем на условие:
[CODE]{if $smarty.foreach.aussen.total==1}<input type="radio" checked="checked" />{else}{$module_data.selection}{/if}[/code]

В условиях просто проверяется кол-во способов оплаты/доставки - если способ всего один, то заменяем стандартную обработку и радио-кнопка не убирается.

Второй вариант предпочтительнее, т.к. изменяется только шаблон и всегда можно откатить назад.

Изменено пользователем [:|||||||:]
Добавлен второй способ
Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...