[Помощь] VM 2.x Как убрать при регистрации пользователя поле Страна

Статус
В этой теме нельзя размещать новые ответы.

red_heads

Знаток
Регистрация
30 Янв 2007
Сообщения
175
Реакции
28
Как убрать при регистрации поле Страна. Чтобы только регионы России выводились. Отключила его в меню управления магазином "Поля, заполняемые пользователями". Но тогда не выбираются регионы, т.к. не указана страна по умолчанию. А настройках магазина не могу ни чего найти. Ну подскажите что делать. Другие страны мне не нужны, не вижу смысла в поле в котором выбирать один пункт. Может в самом поле как то можно сделать значение по умолчанию
 
Может в БД в таблице #__virtuemart_countries остальные страны удалить? тогда будет просто селект с одним значением
 
селект и так с одним значением "РФ", только по умолчанию идет надпись "выберите".

Нужно найти в каком файле находиться COM_VIRTUEMART_LIST_EMPTY_OPTION "-- Выберите --"
и вместо него поставить первое в списке значение из базы. Подскажите где этот файл
 
administrator/components/com_virtuemart/helpers/shopfunctions.php.
Функция: renderCountryList (строка 237).
 
site.ru/language/ru-RU/ru-RU.com_virtuemart.ini
здесь находится это значение, строка 207
 
до
Код:
$emptyOption = JHTML::_ ('select.option', '', JText::_ ('COM_VIRTUEMART_LIST_EMPTY_OPTION'), $id, $name);
            array_unshift ($countries_list, $emptyOption);
после
Код:
            array_unshift ($countries_list);

не знаю правильно или нет, теперь страна выбрана сразу РФ. Но со страницы регистрации убрать не получилось само поле, тогда не выподает список регионов.
 
до
Код:
$emptyOption = JHTML::_ ('select.option', '', JText::_ ('COM_VIRTUEMART_LIST_EMPTY_OPTION'), $id, $name);
            array_unshift ($countries_list, $emptyOption);
после
Код:
            array_unshift ($countries_list);

не знаю правильно или нет, теперь страна выбрана сразу РФ. Но со страницы регистрации убрать не получилось само поле, тогда не выподает список регионов.

red_heads, в файл components/com_virtuemart/views/user/tmpl/edit_address_userfields.php
заменяем содержимое строки 76:
PHP:
76        echo '        <tr >' . "\n";
на:
PHP:
        echo '        <tr id="row_'. $_field['name'].'">' . "\n";
И в начало данного файла добавляем следующую конструкцию:
HTML:
<style>
#row_virtuemart_country_id{display:none;}
</style>

Если нужно поменять еще где-то, действуем аналогично: ищем где создается вся таблица, строкам присваиваем отличный от других класс или id, дописываем display:none;
Тогда ваша строка существует, но просто не отображается.

P.S. Если решили добавить не id, а class, то в стилях имя начинается не с '#', а с '.'
P.P.S. Если не справитесь со скрытием в других местах - пишите где нужно еще убрать, разберем подробно.
 
Делаю сайт с VirtueMart 2.0.18a
тоже надо убрать страну или установить по умолчанию Россию и скрыть поле что бы люди не видели его
попробовал ваш способ
в файле administrator/components/com_virtuemart/helpers/shopfunctions.php
вместо этого
Код:
$emptyOption = JHTML::_ ('select.option', '', JText::_ ('COM_VIRTUEMART_LIST_EMPTY_OPTION'), $id, $name);
            array_unshift ($countries_list, $emptyOption);

оставить только
Код:
array_unshift ($countries_list);

но у меня всё равно потребовало выбрать страну :(

может мне ещё что-то надо поменять ?
подскажите как по шагам убрать страну из обязательного поля
Спасибо !
 
надо закомментировать в файле: administrator/components/com_virtuemart/classes/ps_checkout.php
4 строки:
Код:
//$q .= "INNER JOIN #__{vm}_country c ON (i.country=c.country_3_code) ";
//$q .= "LEFT JOIN #__{vm}_state s ON (i.state=s.state_2_code AND s.country_id=c.country_id) ";
И ниже:
Код:
//$q .= "INNER JOIN #__{vm}_country c ON (i.country=c.country_3_code OR i.country=c.country_2_code) ";
//$q .= "LEFT JOIN #__{vm}_state s ON (i.state=s.state_2_code AND s.country_id=c.country_id) ";
 
У себя на сайте я решил эту проблему, выставив по умолчанию Украину(именно она мне была нужна).
В файле administrator/components/com_virtuemart/helpers/shopfunctions.php в раене строки 262 перед строкой return JHTML::_('select.genericlist', $countries, $idA, $attrs, $id, $name, $countryId); я вставил код if($countryId == 0){$countryId = 221;} где 221 - id Украины. В итоге должно получится следующее
if($countryId == 0){$countryId = 221;}
//OS Ignite - If no country selected, then select US by default
return JHTML::_('select.genericlist', $countries, $idA, $attrs, $id, $name, $countryId);
Определить id вашей страны можно отсчитав по списку стран относительно Украины например. Ну я честно говоря подобрал таким образом. Надеюсь кому то мой способ поможет!
 
  • Нравится
Реакции: Magl
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху