add subscriber

This commit is contained in:
2016-05-27 21:00:23 +02:00
parent fcb00823da
commit afa58973ae
10 changed files with 208 additions and 75 deletions

View File

@@ -13,6 +13,7 @@ use common\components\Helper;
use common\models\Newsletter;
use common\models\Log;
use yii\helpers\Html;
use common\models\Subscriber;
class TicketController extends Controller {
public function actionIndex() {
@@ -110,6 +111,12 @@ class TicketController extends Controller {
->setTo ( $recepientEmail )
->setSubject ( "Értesítés - " . Helper::getCompanyName()." - Bérleted ".$dayCount." nap múlva lejár" )
->send ();
Log::logC([
'type' => Log::$TYPE_TICKET_EXPIRE_SENT,
'message' => "Bérlet lejár üzenet: " . $recepient['customer_name']." [id_customer=". $recepient['customer_id_customer'] ."]",
'id_customer' => $recepient['customer_id_customer']
]);
}
}
}
@@ -129,6 +136,12 @@ class TicketController extends Controller {
public function actionNewsletter(){
set_time_limit(0);
if ( \Yii::$app->params['newsletter_enabled'] != true ){
return;
}
$q1 = Newsletter::find();
$q1->andWhere(['sent' => Newsletter::$SENT_NOT]);
$q1->andWhere(['status' => Newsletter::$STATUS_ACTIVE]);
@@ -139,38 +152,32 @@ class TicketController extends Controller {
\Yii::info("Nincs elküldendő hírlevél");
}
$q2 = new Query();
$q2->distinct();
$q2->select(['customer.email as customer_email','customer.name as customer_name'
,'customer.id_customer as customer_id_customer'
,'customer.newsletter_token as customer_newsletter_token'
]);
$q2->from("customer");
$q2->innerJoin("ticket","ticket.id_card = customer.id_customer_card");
// $q2->andWhere(['status' => Customer::STATUS_ACTIVE ]);
$q2->andWhere(['newsletter' => Customer::$ENABLED ]);
$q2->andWhere(['>=' ,'ticket.end',new Expression('DATE( DATE_ADD(NOW(),INTERVAL -3 MONTH) )')]);
$subscribers = Subscriber::find()->andWhere(['status' => 1])->all();
$customers = $q2->all();
\Yii::info("Hírlevél küldése " .count($customers) . " vendégnek!" );
\Yii::info("Hírlevél küldése " .count($subscribers) . " előfizetőnek!" );
$i = 0;
foreach ($newsletters as $newsletter ){
$i = 0;
foreach ($customers as $customer ){
Log::logC([
'type' => Log::$TYPE_NEWSLETTER_SEND_START,
'message' => "Hírlevél küldés indítása[id_newsletter=" . $newsletter->id_newsletter ."]"
]);
foreach ($subscribers as $subscriber ){
try{
$log = "Sending Newsletter";
$log .="[id_newsletter=".$newsletter->id_newsletter ."]";
$log .="[customer_email=" . $customer['customer_email'] . "]";
$log .="[subscriber_email=" . $subscriber->email . "]";
$log .="[subscriber_id=" . $subscriber->id_subscriber . "]";
\Yii::info($log);
$message = \Yii::$app->mailer->compose ( );
$replacePairs = [
'{vendeg_neve}' => $customer['customer_name']
'{vendeg_neve}' => $subscriber->name
];
$mailBody = $newsletter->body;
@@ -178,7 +185,7 @@ class TicketController extends Controller {
$mailBody .="<hr>";
$mailBody .="Leiratkozás hírlevélről:";
$mailBody .= Html::a("Leiratkozom",Helper::getWebUrl() ."/frontend/web/index.php?r=site/newsletter-unsubscribe&id=".$customer['customer_id_customer']."&token=".$customer['customer_newsletter_token']);
$mailBody .= Html::a("Leiratkozom",Helper::getWebUrl() ."/frontend/web/index.php?r=site/newsletter-unsubscribe&id=".$subscriber->id_subscriber."&token=". $subscriber->token );
$mailSubject = $newsletter->subject;
$mailSubject = strtr($mailSubject, $replacePairs );
@@ -186,14 +193,19 @@ class TicketController extends Controller {
$message
->setFrom ( [ \Yii::$app->params['newsletter_from'] => Helper::getCompanyName() ])
->setTo ( [
$customer['customer_email']
$subscriber->email => $subscriber->name
])
->setHtmlBody( $mailBody )
->setSubject ( $mailSubject )
->send ();
Log::logC([
'type' => Log::$TYPE_NEWSLETTER_SENT,
'message' => "Hírlevél küldés[id_newsletter=" . $newsletter->id_newsletter ."][id_subscriber=" . $subscriber->id_subscriber ."]"
]);
}catch (\Exception $ex){
\Yii::error("Nem sikerült hírlevelet kikülden: Hírlevél azonosító=" .$newsletter->id_newsletter. ";Vendég azonosító ". $customer['customer_name'] ) ;
\Yii::error("Nem sikerült hírlevelet kikülden: Hírlevél azonosító=" .$newsletter->id_newsletter. ";Előfizető azonosító ". $subscriber->id_subscriber ) ;
}
$i++;
@@ -202,6 +214,11 @@ class TicketController extends Controller {
$newsletter->sent_at = Helper::getDateTimeString();
$newsletter->save(false);
Log::logC([
'type' => Log::$TYPE_NEWSLETTER_SEND_END,
'message' => "Hírlevél küldés befejezése[id_newsletter=" . $newsletter->id_newsletter ."]"
]);
// Log::log([
// 'type' =>Log::$TYPE_LOGIN,
// 'message' => $message