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

[Решено] Оповещение о новом отзыве на e-mail

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

Здравствуйте! Подскажите пожалуйста, где дописать строчку кода, чтобы на e-mail приходил url с названием модели или просто хотябы просто с названием модели...

Сейчас на e-mail приходит письмо такого типа:
==============
Добавлен новый отзыв
Автор: "Тут имя автора"
Отзыв: "Тут текст отзыва"
Рейтинг: "Тут рейтинг"
==============

 

Весь код в спойлере

 

<?php
class ModelCatalogReview extends Model {       
    public function 
addReview($product_id$data) {
        
$this->db->query("INSERT INTO " DB_PREFIX "review SET author = '" $this->db->escape($data['name']) . "', customer_id = '" . (int)$this->customer->getId() . "', product_id = '" . (int)$product_id "', text = '" $this->db->escape($data['text']) . "', rating = '" . (int)$data['rating'] . "', date_added = NOW()");
                
                
        
// Admin Alert Mail
        
if ($this->config->get('config_alert_mail')) {
            
$subject $this->config->get('config_name') . ' - Новый отзыв';
                
            
// Text
            
$text  "Добавлен новый отзыв\n\n";
            
$text .= 'Автор: ' $data['name'] . "\n";
            
$text .= 'Отзыв: ' $data['text'] . "\n";
            
$text .= 'Рейтинг: ' . (int)$data['rating'] . "\n\n";
           
            
$mail = new Mail();
            
$mail->protocol $this->config->get('config_mail_protocol');
            
$mail->parameter $this->config->get('config_mail_parameter');
            
$mail->hostname $this->config->get('config_smtp_host');
            
$mail->username $this->config->get('config_smtp_username');
            
$mail->password $this->config->get('config_smtp_password');
            
$mail->port $this->config->get('config_smtp_port');
            
$mail->timeout $this->config->get('config_smtp_timeout');
            
$mail->setTo($this->config->get('config_email'));
            
$mail->setFrom($this->config->get('config_email'));
            
$mail->setSender($this->config->get('config_name'));
            
$mail->setSubject(html_entity_decode($subjectENT_QUOTES'UTF-8'));
            
$mail->setText(html_entity_decode($textENT_QUOTES'UTF-8'));
            
$mail->send();
                
            
// Send to additional alert emails
            
$emails explode(','$this->config->get('config_alert_emails'));
                
            foreach (
$emails as $email) {
                            if (
$email && preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i'$email)) {
                                
$mail->setTo($email);
                
$mail->send();
                            }
            }               
        }       

                        
                        
    }
        
    public function 
getReviewsByProductId($product_id$start 0$limit 20) {
        if (
$start 0) {
            
$start 0;
        }
        
        if (
$limit 1) {
            
$limit 20;
        }       
        
        
$query $this->db->query("SELECT r.review_id, r.author, r.rating, r.text, p.product_id, pd.name, p.price, p.image, r.date_added FROM " DB_PREFIX "review r LEFT JOIN " DB_PREFIX "product p ON (r.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id "' AND p.date_available <= NOW() AND p.status = '1' AND r.status = '1' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY r.date_added DESC LIMIT " . (int)$start "," . (int)$limit);
        
        return 
$query->rows;
    }
    
    public function 
getAverageRating($product_id) {
        
$query $this->db->query("SELECT AVG(rating) AS total FROM " DB_PREFIX "review WHERE status = '1' AND product_id = '" . (int)$product_id "' GROUP BY product_id");
        
        if (isset(
$query->row['total'])) {
            return (int)
$query->row['total'];
        } else {
            return 
0;
        }
    }   
    
    public function 
getTotalReviews() {
        
$query $this->db->query("SELECT COUNT(*) AS total FROM " DB_PREFIX "review r LEFT JOIN " DB_PREFIX "product p ON (r.product_id = p.product_id) WHERE p.date_available <= NOW() AND p.status = '1' AND r.status = '1'");
        
        return 
$query->row['total'];
    }

    public function 
getTotalReviewsByProductId($product_id) {
        
$query $this->db->query("SELECT COUNT(*) AS total FROM " DB_PREFIX "review r LEFT JOIN " DB_PREFIX "product p ON (r.product_id = p.product_id) LEFT JOIN " DB_PREFIX "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id "' AND p.date_available <= NOW() AND p.status = '1' AND r.status = '1' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
        
        return 
$query->row['total'];
    }
}

?>

 

Нужно чтобы на e-mail письмо об отзыве хотябы приходило так:
==============
Добавлен новый отзыв
Автор: "Тут имя автора"
Отзыв: "Тут текст отзыва"
Рейтинг: "Тут рейтинг"
Модель: "Тут название модели"
==============

Заранее благодарен за любую оказанную помощь.
 
 

 

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


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

перед отправкой письма надо получить данные о товаре

$this->load->model('catalog/product');
$product_info = $this->model_catalog_product->getProduct($product_id);

и добавить в письмо модель товара

$text .= 'Модель: ' . $product_info['model'] . "\n\n";
  • +1 2

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


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

Премного благодарен, решил вопрос по вашей инструкции.

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


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

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

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

×

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

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