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

Добавление полей в почтовую запись при создании аккау


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

Доброго времени суток формумчанам!

Работаю с коммерческой версией VamShop. Необходимо поменять шаблон писем при регистрации заказов, что бы добавлялись данные клиента в отсылаемом письме.

Сделал такие вставки в файл create_account.php:

$vamTemplate->assign('FIRSTNAME', $firstname);
$vamTemplate->assign('SECONDNAME', $lastname);[/code] И соответственно им сделал вставки в HTML файл шаблона сообщения, все работает. Проблема возникает при работе с дополнительными полями, например конструкция:
[code]$vamTemplate->assign('THRIDNAME', $extra_fields[0]);

не работает. Что можно сделать в этом случае?

С уважением, Максим.

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

Так а Вы не смотрели как сделан вывод доп. полей в письмо с регитсрацией?!

Уже ведь есть вывод доп. полей в письмо о регистрации.

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

Только что прочесал поиском crate_account.php на предмет $vamTemplate, дополнительных полей не нашел... Версия магазина 1.4. Запрос к базе данных вижу:

    	  while($extra_fields = vam_db_fetch_array($extra_fields_query))
{
  if(isset($_POST['fields_' . $extra_fields['fields_id']])){
            $sql_data_array = array('customers_id' => (int)$customers_id,
                              'fields_id' => $extra_fields['fields_id'],
                              'value' => $_POST['fields_' . $extra_fields['fields_id']]);
      }
      else
{
  $sql_data_array = array('customers_id' => (int)$customers_id,
                              'fields_id' => $extra_fields['fields_id'],
                              'value' => '');
$is_add = false;
for($i = 1; $i <= $_POST['fields_' . $extra_fields['fields_id'] . '_total']; $i++)
{
if(isset($_POST['fields_' . $extra_fields['fields_id'] . '_' . $i]))
{
  if($is_add)
  {
                  $sql_data_array['value'] .= "\n";
}
else
{
                  $is_add = true;
}
              $sql_data_array['value'] .= $_POST['fields_' . $extra_fields['fields_id'] . '_' . $i];
}
}
}

vam_db_perform(TABLE_CUSTOMERS_TO_EXTRA_FIELDS, $sql_data_array);
      }
[/code]

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

Дело в том, что мне нужно обращение именно по индексам, для создания удобочитаемой структуры, foreach тут не подходит. При запросе на создание аккаунта я смог это реализовать, а тут что то не получается :-(

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

А, я чуть спутал, доп. поля выводятся в шаблон письма о заказе.

/templates/шаблон/mail/russian/order_mail.txt

Выводятся кодом:


{if $customer_extra_fields}{$customer_extra_fields}{/if}
[/code]

А эта метка определяется в файле /send_order.php

Можно просто глянуть как создаются эти метки и просто перенести php код с create_account.php и в шаблон письма create_account_mail.txt

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

Там идет выборка из базы по уже известному id клиента:

	$semextrfields = vamDBquery("select * from " . TABLE_EXTRA_FIELDS . " where fields_required_email = '1'");
while($dataexfes = vam_db_fetch_array($semextrfields,true)) {
$cusextrfields = vamDBquery("select * from " . TABLE_CUSTOMERS_TO_EXTRA_FIELDS . " where customers_id = '" . (int)$_SESSION['customer_id'] . "' and fields_id = '" . $dataexfes['fields_id'] . "'");
$rescusextrfields = vam_db_fetch_array($cusextrfields,true);

$extrfieldsinf = vamDBquery("select fields_name from " . TABLE_EXTRA_FIELDS_INFO . " where fields_id = '" . $dataexfes['fields_id'] . "' and languages_id = '" . $_SESSION['languages_id'] . "'");

Так сделать можно, но совсем некошерно, зачем два раза за одну сессию к базе лезть - только лишняя нагрузка, вот как бы это все из страницы выдернуть?...
$extrfieldsres = vam_db_fetch_array($extrfieldsinf,true);
$extra_fields .= $extrfieldsres['fields_name'] . ' : ' .
$rescusextrfields['value'] . "\n";
$vamTemplate->assign('customer_extra_fields', $extra_fields);
  }
[/code]

Так сделать можно, но совсем некошерно, зачем два раза за одну сессию к базе лезть - только лишняя нагрузка, вот как бы это все из страницы выдернуть?...

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

Так в create_account.php тоже ведь письмо отправляется как-то и там есть переменная для id клиента, я просто никогда не делал то, о чём Вы пишите и конкретным кодом вряд ли помогую

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