Код региона при оформлении заказа

В форме заказа пишется код региона. Это здорово, но хочется еще и видеть название.

Языковая переменная - PHPSHOP_ORDER_PRINT_STATE, лежит в administrator/components/com_virtuemart/languages/common/russian.php

Править нужно следующие файлы:

  • administrator/components/com_virtuemart/html/order.order_printdetails.php - форма печати заказа (открывается в отдельном окне)
  • administrator/components/com_virtuemart/html/order.order_print.php - форма отображения заказа (Администрирование-Заказы-Список заказов)
  • components/com_virtuemart/themes/default/templates/order_emails/confirmation_email.tpl.php - письмо-уведомление о заказе
  • components/com_virtuemart/themes/default/templates/pages/account.order_details.tpl.php - просмотр заказа через личный кабинет пользователя

После кода (там два одинаковых кусочка, нужно вставить в каждый из них)

                       <td><?php
                                switch($field->name) {
                                case 'country':
                                        require_once(CLASSPATH.'ps_country.php');
                                        $country = new ps_country();
                                        $dbc = $country->get_country_by_code($dbbt->f($field->name));
                                        if( $dbc !== false ) echo $dbc->f('country_name');
                                        break;

нужно добавить

                                // state from code
                                case 'state':
                                        $number_state = $dbbt->f($field->name);
                                        $q_state = "SELECT state_name FROM #__{vm}_state";
                                        $q_state .= " WHERE country_id=176"; // Россия
                                        $q_state .= " AND state_2_code=" . $number_state;
                                        $dbstate = new ps_DB;
                                        $dbstate->query($q_state);
                                        $dbstate->next_record();
                                        $number_state = $dbstate->f('state_name') . " (" . $number_state . ")";
                                        echo $number_state;
                                        break;

Внимание: В файле order.order_print.php нужно вместо

$number_state = $dbbt->f($field->name);

написать

$number_state = $dbt->f($field->name);
  • software/virtuemart/hacks/region_code.txt
  • Последнее изменение: 2017/05/09 18:34
  • 127.0.0.1