Перейти к содержанию
Официальный форум поддержки Simpla

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

Подскажите как добавить поле, допустим "Индекс", в корзине при оформлении заказа?

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

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

Начиная с пятого поста в вышеприведённой теме по образу и подобию.
Логика такая. что данные с вашего поля, должны записываться в БД. Для этого эти данные должны обрабатываться в Api/ View/ и возможно Simpla/ (если данные должны обрабатываться в админке) в соответствующих файлах. Ну и вызываться в шаблонах (что Вы уже сделали).

Ссылка на сообщение
Поделиться на другие сайты
  • 10 месяцев спустя...

можек кому и пригодится!
дополнительное поле почтовый индекс




в папке simpla - OrderAdmin.php
после
$order->address = $this->request->post('address');
вставить
$order->inaddress = $this->request->post('inaddress');

папка view - CartView.php
после

// Если нажали оформить заказ
if(isset($_POST['checkout']))
{

    $order->delivery_id = $this->request->post('delivery_id', 'integer');
    $order->name = $this->request->post('name');
    $order->email = $this->request->post('email');
вставить
$order->address = $this->request->post('address');

 

после

 

// Данные пользователя
        if($this->user)
        {
            $last_order = reset($this->orders->get_orders(array('user_id'=>$this->user->id, 'limit'=>1)));
            if($last_order)
            {
                $this->design->assign('name', $last_order->name);
                $this->design->assign('email', $last_order->email);
                $this->design->assign('phone', $last_order->phone);

вставить

$this->design->assign('address', $last_order->address);

 

в шаблоне design/ваш шаблон/html - order.tpl

 

после

 

{if $order->address}
    <tr>
        <td>
            Адрес доставки
        </td>
        <td>
            {$order->address|escape}
        </td>
    </tr>
    {/if}

 

вставить

 

{if $order->inaddress}
    <tr>
        <td>
            Почтовый индекс
        </td>
        <td>
            {$order->inaddress|escape}
        </td>
    </tr>
    {/if}

В Базе данных

добавляете в s_orders новое поле  "inaddress"

 

все!!!!

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

в шаблоне design/ваш шаблон/html - cart.tpl

после

 

<label>Адрес доставки</label>
    <input name="address" type="text" value="{$address|escape}"/>

вставить

 

<label>Почтовый индекс</label>
    <input name="inaddress" type="text" value="{$inaddress|escape}" />

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

не удалось отыскать файл, ответственный за письмо клиенту с заказом чтобы добавить туда новые поля. Можете подсказать?

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

А еще надо подправить файл api\Orders.php и в выборку 

$query = $this->db->placehold("SELECT id, delivery_id, delivery_price, separate_delivery, payment_method_id, paid, payment_date, closed, discount, date,
									user_id, name, inaddress, address, phone, email, comment, status, url, total_price, note
									FROM __orders AS o 
									WHERE 1
									$id_filter $status_filter $user_filter $keyword_filter $modified_from_filter ORDER BY status, id DESC $sql_limit", "%Y-%m-%d");

вставить название своего поля которое вы создавали, если как делал автор то это поле inaddress

Ссылка на сообщение
Поделиться на другие сайты
  • 8 месяцев спустя...

Подскажите, поля при создании заказа появились и запись в базу осуществляется а в деталях заказа и в уведомлениях по почте не показывает индекс хотя добавлял код в соответствующие файлы.

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

Всех с наступающим !

 

 

В Базе данных

добавляете в s_orders новое поле  "inaddress"

 

Ребят как сделать правильный запрос в БД ? 


 

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

Kors, спасибо !

Дополнительные поля еще нужно добавить в simpla/design/html в order.
У автора ошибка в 
вставить

$order->address = $this->request->post('address');
address  заменить на inaddress

 

папка view - CartView.php
после

// Если нажали оформить заказ
if(isset($_POST['checkout']))
{

    $order->delivery_id = $this->request->post('delivery_id', 'integer');
    $order->name = $this->request->post('name');
    $order->email = $this->request->post('email');
вставить
$order->address = $this->request->post('address');

 

после

 

// Данные пользователя
        if($this->user)
        {
            $last_order = reset($this->orders->get_orders(array('user_id'=>$this->user->id, 'limit'=>1)));
            if($last_order)
            {
                $this->design->assign('name', $last_order->name);
                $this->design->assign('email', $last_order->email);
                $this->design->assign('phone', $last_order->phone);

вставить

$this->design->assign('address', $last_order->address);

 


Что бы не делал не выходит  :( 
Видимо в базу данные не передаются 
Изменено пользователем m-31
Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...
  • 1 год спустя...

а в админке и на почте не отображается это поле, как это исправить?

для отображения на почте дополни файл: design\имя_шаблона\html\email_order.tpl

для админки: simpla\design\html\order.tpl

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

помогите добавить дополнительное поле, например, индекс при выборе конкретного вида доставки, например почты россии?

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...