2015-05-11 3 views
1

Я использую opencart версию 1.5.6.4, до сих пор работала нормально. Я хотел отправить предупреждающую почту владельцу магазина при регистрации нового клиента, поэтому я включил предупреждающую почту как «да».Отправка предупреждающего сообщения владельцу магазина в opencart не работает

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

$subject = sprintf($this->language->get('text_subject'), $this->config->get('config_name')); 

    $message1 = sprintf($this->language->get('text_welcome'), $this->config->get('config_name')) . "\n\n"; 

    if (!$customer_group_info['approval']) { 
     $message1 .= $this->language->get('text_login') . "\n"; 
    } else { 
     $message1 .= $this->language->get('text_approval') . "\n"; 
    } 

    $message1 .= $this->url->link('account/login', '', 'SSL') . "\n\n"; 
    $message1 .= $this->language->get('text_services') . "\n\n"; 
    $message1 .= $this->language->get('text_thanks') . "\n"; 
    $message1 .= $this->config->get('config_name'); 
    $message1 .='<body>'; 
    $message1 .='<tr>'; 
    $message1 .='<td align="center" valign="top" width="100%" style="background-color: #f7f7f7; height: 100px;">'; 
    $message1 .='<center>'; 
    $message1 .='<table cellspacing="0" cellpadding="0" width="600" class="w320">'; 
    $message1 .='<tr>'; 
    $message1 .='<td style="padding: 25px 0 25px;text-align:center">'; 
    $message1 .='<strong style="text-align:center;">BOOK MY MAGAZINE</strong><br />'; 
    $message1 .='© 2015 Bookmymagazine.com. <br />'; 
    $message1 .='All Rights Reserved<br /><br />'; 
    $message1 .='</td>'; 
    $message1 .='</tr>'; 
    $message1 .='</table>'; 
    $message1 .='</center>'; 
    $message1 .='</td>'; 
    $message1 .='</tr>'; 

    $message1 .='</body>'; 


    $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($data['email']); 
    $mail->setFrom($this->config->get('config_email')); 
    $mail->setSender($this->config->get('config_name')); 
    $mail->setSubject(html_entity_decode($subject, ENT_QUOTES, 'UTF-8')); 
    $mail->setHtml(html_entity_decode($message1, ENT_QUOTES, 'UTF-8')); 
    $mail->send(); 

    // 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') . ' ' . $this->config->get('config_name') . "\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"; 

     if ($data['company']) { 
      $message .= $this->language->get('text_company') . ' ' . $data['company'] . "\n"; 
     } 

     $message .= $this->language->get('text_email') . ' ' . $data['email'] . "\n"; 
     $message .= $this->language->get('text_telephone') . ' ' . $data['telephone'] . "\n"; 

     $mail->setTo($this->config->get('config_email')); 
     $mail->setSubject($this->language->get('text_new_customer')); 
     $mail->setText($message); 
     $mail->send(); 

     // Send to additional alert emails if new account email is enabled 
     $emails = explode(',', $this->config->get('config_alert_emails')); 

     foreach ($emails as $email) { 
      if (strlen($email) > 0 && preg_match('/^[^\@][email protected]*\.[a-z]{2,6}$/i', $email)) { 
       $mail->setTo($email); 
       $mail->send(); 
      } 
     } 
    } 
} 

ответ

0

Кажется, проблема с переменной $ message. Может быть, вы не применили к нему комментарий, не уверен. Определите $ message, где начинается дизайн почты администратора. Я предлагаю сделать следующее $message=''; после того, как if ($this->config->get('config_account_mail')) { может решить вашу проблему.

+0

Я пробовал, но он не работал еще –

+0

Вы пытались распечатать то, что содержит сообщение $. Попробуйте 'print_r ($ message); exit; 'и затем выполнить новую регистрацию. Что может помочь понять более ясно. –

+0

Когда я делаю print_r ($ message); exit(); я получаю правильную почту, которую должен получить администратор, но как только я прокомментирую ее снова, я получаю ту же почту, которую клиент получает. Является ли их альтернативой для отправки html-почты, кроме как setHtml, потому что всякий раз, когда я его устанавливаю, эта проблема возникает –

Смежные вопросы