Перейти к содержанию
danilkalmykov

Как добавить кастомные поля в письмо?

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

Привет всем. Возник такой вопрос. У меня стоит OpenCart 2.1.0.1

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

Нашел вот такой код который отвечает за составление письма которое отсылается админу:
 

// Send to main admin email if new account email is enabled 
if ($this->config->get('config_account_mail')) { 
$message = $this->language->get('text_signup') . "\n\n"; 
$message .= $this->language->get('text_website') . ' ' . html_entity_decode($this->config->get('config_name'), ENT_QUOTES, 'UTF-8') . "\n"; 
$message .= $this->language->get('text_firstname') . ' ' . $data['firstname'] . "\n"; 
$message .= $this->language->get('text_lastname') . ' ' . $data['lastname'] . "\n"; 
$message .= $this->language->get('text_customer_group') . ' ' . $customer_group_info['name'] . "\n"; 
$message .= $this->language->get('text_email') . ' ' . $data['email'] . "\n"; 
$message .= $this->language->get('text_telephone') . ' ' . $data['telephone'] . "\n";

Пробовал решить проблему таким способом:

Смотрел в браузере на свои поля через диспетчер (атрибут name) и дописывал в код

$message .= $data['значение_name у поля'] . "\n";

В конечном итоге получалось вот так:

$message .= $this->language->get('text_custom_field') . ' ' . $data['custom_field[account][5]'] . "\n"

Но этот вариант совсем не работает((

 

Далее пробовал следующий вариант:
 

$message .= $this->language->get('text_custom_field') . ' ' . $data['custom_field'] = '' . $this->db->escape(isset($data['custom_field']) json_encode($data['custom_field']) : '') . "\n";

Все по идее заработало, НО!! оно выводит значение поля custom_field в базе и выглядит это следующим образом, а именно:

Text_custom_field: {\"account\":{\"19\":\"Danil\\u0430\\u043f\\u0432\",\"4\":\"ddddddd\\u044b\\u0432\\u0430@mail.ru\",\"5\":\"websitename\",\"6\":\"\",\"7\":\"\",\"8\":\"",\"9\":\"",\"1\":\"\",\"2\":\"\"},\"address\":{\"11\":\"4\",\"12\":\"\",\"10\":\"\",\"14\":\"\",\"15\":\"6\",\"16\":\"9\",\"17\":\"\",\"18\":\"\"}}

Как видите мне нужно вывести под цифрой 5, а именно "websitename". Hо оно выводит полностью!(
Я уже не знаю куда копать, может кто подскажет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • собираешь массив имен и аяксом этот массив отправляешь
    data: $('form').serialize();
  •  
    в конороллере принимаешь эти параметры ГЕТ или ПОСТ, в зависимости каким методом ты аяксом данные передаешь
  •  
    Например собрал массив полей name="customer[]" value="1", value="2", value="3"
  •  
    пост запрос отправиться в таком виде
    customer[]=1&customer[]=2&customer[]=3
  •  
    контроллер принимает уже массив
    $this->request->post['customer']
  •  
    дальше полученный массив передаешь в модель или куда-то еще

Поделиться сообщением


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

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.