Я хочу сделать простое изменение в моем интернет-магазине OSCommerce. Чтобы снять отметку с переключателя, который теперь установлен по умолчанию. Многие клиенты не удосужились прочитать страницу и просто нажимают «Далее». Поэтому я хочу, чтобы значение по умолчанию не проверялось, поэтому клиент вынужден сделать выбор.
Поэтому я использовал FireBug, чтобы найти исходный код под кнопкой:
<td align="right"><input type="radio" name="shipping" value="flat_flat" checked="checked" /></td>
Новичку в PHP, вроде меня, кажется, я просто удаляю checked = «checked».
Однако я обнаружил, что невозможно найти, в какой файл PHP я должен внести изменения. Сама страница называется checkout_shipping.php, но после проверки php-файла ее там нет.
Поэтому я скачал полный интернет-магазин и использовал Agent Ransack для поиска каждого файла.
Ничего такого!
Может ли кто-нибудь помочь мне понять это? Буду признателен за помощь
Фактически, HTML для этого ввода динамически создается в файле checkout_shipping.php функцией tep_draw_radio_field
, Там есть блок кода, который проходит через каждый доступный модуль доставки и создает радио для каждого.
«Проверено» по умолчанию на самом деле является причиной класса доставки cheapest()
метод запускается выше в том же файле.
Вы можете прокомментировать эту строку кода, изменив ее с:
if ( !tep_session_is_registered('shipping') || ( tep_session_is_registered('shipping') && ($shipping == false) && (tep_count_shipping_modules() > 1) ) ) $shipping = $shipping_modules->cheapest();
Для того, чтобы:
//if ( !tep_session_is_registered('shipping') || ( tep_session_is_registered('shipping') && ($shipping == false) && (tep_count_shipping_modules() > 1) ) ) $shipping = $shipping_modules->cheapest();
Это должно оставить все радио без контроля при первом посещении пользователем страницы доставки. Кроме того, он оставляет нетронутым радио, выбранное по умолчанию, если пользователь возвращается на страницу доставки позже в процессе оформления заказа, чтобы изменить способ доставки.
Возможно, будет проще использовать jQuery для манипулирования элементом, когда страница полностью отобразит форму.
Некоторые образцы (любой должен работать, предоставляя альтернативы «на всякий случай»):
$('input[type="radio"][name="shipping"]').removeAttr("checked");
$('input[type="radio"][name="shipping"]').attr("checked", false);
$('input[type="radio"][name="shipping"]').prop("checked", false);
Однако я не уверен, на какой странице вы добавите этот код. Я думаю, если есть страница просмотра, которая сначала отображает содержимое, например, файл /directory/view/index.php?