Как мне постоянно выполнять мой скрипт для отправки почты? - PullRequest
3 голосов
/ 10 мая 2019

Я хочу, чтобы моя часть кода Magento постоянно выполнялась.Например: если я хочу отправить письмо тем клиентам, которые не заказывали ни одного продукта за последние 3 месяца.Поэтому в этом случае мне нужно найти для них время запуска почты.

Рассмотрим, что клиент не заказал, и его 3 месяца были завершены в определенный день утром, а клиент B не заказал, а его 3 месяца завершен в тот же день.(как клиент) вечером

Как я могу поступить в таких условиях?

Я ожидаю выхода для почты клиента, отправленной утром, и для почты клиента Б, отправленной вечером

1 Ответ

1 голос
/ 10 мая 2019

Вам понадобится Cron Job, чтобы периодически отправлять электронные письма

Вы должны написать Crontab в вашем config.xml

     <crontab>
        <jobs>
          <custom_cron_task>
            <schedule>
              <cron_expr>0 0 0 ? 1/3 * *</cron_expr>
            </schedule>
            <run>
              <model>cron/cron::crontask</model>
            </run>
          </custom_cron_task>
        </jobs>
      </crontab>
  <global>
    <models>
      <cron>
       <class>Your_Model</class>
      </cron>
    </models>
  </global>
Элемент

под элементом определяет интервал, с которым задание будет выполняться регулярно. В приведенном выше случае задание cron будет запускаться каждые 3 месяца.

и создайте свой cron.php в вашей модели

<?php

class Namespace_Mymodule_Model_Cron
{
 public function customtask()
 {
   // send email
   $mail = Mage::getModel('core/email')
    ->setToEmail('user@email.com')
    ->setBody('Body of the Automated Cron Email Goes Here')
    ->setSubject('Subject: Cron Task (every 3 months) '.date("Y-m-d H:i:s"))
    ->setFromEmail('admin@example.com')
    ->setFromName('Your Store Name')
    ->setType('html');
   $mail->send();
 }
}

Надеюсь, это сработает для вас. Спасибо

...