add subscriber
This commit is contained in:
@@ -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
|
||||
|
||||
43
console/migrations/m160527_054414_add_table__subscriber.php
Normal file
43
console/migrations/m160527_054414_add_table__subscriber.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
use yii\db\Schema;
|
||||
use yii\db\Migration;
|
||||
|
||||
class m160527_054414_add_table__subscriber extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$tableOptions = null;
|
||||
if ($this->db->driverName === 'mysql') {
|
||||
// http://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
|
||||
$tableOptions = 'CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB';
|
||||
}
|
||||
|
||||
$this->createTable('{{%subscriber}}', [
|
||||
'id_subscriber' => $this->primaryKey(),
|
||||
'name' => $this->string(),
|
||||
'email' => $this->text(),
|
||||
'status' => $this->integer(11),
|
||||
'token' => $this->string(),
|
||||
'created_at' => $this->dateTime()->notNull(),
|
||||
'updated_at' => $this->dateTime()->notNull(),
|
||||
], $tableOptions);
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
// Use safeUp/safeDown to run migration code within a transaction
|
||||
public function safeUp()
|
||||
{
|
||||
}
|
||||
|
||||
public function safeDown()
|
||||
{
|
||||
}
|
||||
*/
|
||||
}
|
||||
Reference in New Issue
Block a user