unsubscribe changes
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
/************************************************************************
|
||||
* This file is part of EspoCRM.
|
||||
*
|
||||
* EspoCRM - Open Source CRM application.
|
||||
* Copyright (C) 2014-2015 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko
|
||||
* Website: http://www.espocrm.com
|
||||
*
|
||||
* EspoCRM is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* EspoCRM is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with EspoCRM. If not, see http://www.gnu.org/licenses/.phpppph
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of this program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU General Public License version 3.
|
||||
*
|
||||
* In accordance with Section 7(b) of the GNU General Public License version 3,
|
||||
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
|
||||
************************************************************************/
|
||||
|
||||
namespace Espo\Modules\Crm\EntryPoints;
|
||||
|
||||
use \Espo\Core\Utils\Util;
|
||||
|
||||
use \Espo\Core\Exceptions\NotFound;
|
||||
use \Espo\Core\Exceptions\Forbidden;
|
||||
use \Espo\Core\Exceptions\BadRequest;
|
||||
use \Espo\Core\Exceptions\Error;
|
||||
|
||||
class SubscribeAgain extends \Espo\Core\EntryPoints\Base
|
||||
{
|
||||
public static $authRequired = false;
|
||||
|
||||
public function run()
|
||||
{
|
||||
if (empty($_GET['id'])) {
|
||||
throw new BadRequest();
|
||||
}
|
||||
$queueItemId = $_GET['id'];
|
||||
|
||||
$queueItem = $this->getEntityManager()->getEntity('EmailQueueItem', $queueItemId);
|
||||
|
||||
if (!$queueItem) {
|
||||
throw new NotFound();
|
||||
}
|
||||
|
||||
$campaign = null;
|
||||
$target = null;
|
||||
|
||||
$massEmailId = $queueItem->get('massEmailId');
|
||||
if ($massEmailId) {
|
||||
$massEmail = $this->getEntityManager()->getEntity('MassEmail', $massEmailId);
|
||||
if ($massEmail) {
|
||||
$campaignId = $massEmail->get('campaignId');
|
||||
if ($campaignId) {
|
||||
$campaign = $this->getEntityManager()->getEntity('Campaign', $campaignId);
|
||||
}
|
||||
|
||||
$targetType = $queueItem->get('targetType');
|
||||
$targetId = $queueItem->get('targetId');
|
||||
|
||||
if ($targetType && $targetId) {
|
||||
$target = $this->getEntityManager()->getEntity($targetType, $targetId);
|
||||
|
||||
if ($massEmail->get('optOutEntirely')) {
|
||||
$emailAddress = $target->get('emailAddress');
|
||||
if ($emailAddress) {
|
||||
$ea = $this->getEntityManager()->getRepository('EmailAddress')->getByAddress($emailAddress);
|
||||
if ($ea) {
|
||||
$ea->set('optOut', false);
|
||||
$this->getEntityManager()->saveEntity($ea);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$link = null;
|
||||
$m = array(
|
||||
'Account' => 'accounts',
|
||||
'Contact' => 'contacts',
|
||||
'Lead' => 'leads',
|
||||
'User' => 'users'
|
||||
);
|
||||
if (!empty($m[$target->getEntityType()])) {
|
||||
$link = $m[$target->getEntityType()];
|
||||
}
|
||||
if ($link) {
|
||||
$targetListList = $massEmail->get('targetLists');
|
||||
|
||||
foreach ($targetListList as $targetList) {
|
||||
$this->getEntityManager()->getRepository('TargetList')->updateRelation($targetList, $link, $target->id, array(
|
||||
'optedOut' => false
|
||||
));
|
||||
}
|
||||
echo $this->getLanguage()->translate('subscribedAgain', 'messages', 'Campaign');
|
||||
echo '<br><br>';
|
||||
echo '<a href="?entiyPoint=unbscribe&id='.$queueItemId.'">' . $this->getLanguage()->translate('Unsubscribe again', 'labels', 'Campaign') . '</a>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,6 +101,8 @@ class Unsubscribe extends \Espo\Core\EntryPoints\Base
|
||||
));
|
||||
}
|
||||
echo $this->getLanguage()->translate('unsubscribed', 'messages', 'Campaign');
|
||||
echo '<br><br>';
|
||||
echo '<a href="?entiyPoint=subscribeAgain&id='.$queueItemId.'">' . $this->getLanguage()->translate('Subscribe again', 'labels', 'Campaign') . '</a>';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -110,7 +112,6 @@ class Unsubscribe extends \Espo\Core\EntryPoints\Base
|
||||
$campaignService = $this->getServiceFactory()->create('Campaign');
|
||||
$campaignService->logOptedOut($campaignId, $queueItemId, $target, $queueItem->get('emailAddress'), null, $queueItem->get('isTest'));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -56,13 +56,16 @@
|
||||
"soft": "soft",
|
||||
"Unsubscribe": "Unsubscribe",
|
||||
"Mass Emails": "Mass Emails",
|
||||
"Email Templates": "Email Templates"
|
||||
"Email Templates": "Email Templates",
|
||||
"Unsubscribe again": "Unsubscribe again",
|
||||
"Subscribe again": "Subscribe again"
|
||||
},
|
||||
"presetFilters": {
|
||||
"active": "Active"
|
||||
},
|
||||
"messages": {
|
||||
"unsubscribed": "You have been unsubscribed from our mailing list."
|
||||
"unsubscribed": "You have been unsubscribed from our mailing list.",
|
||||
"subscribedAgain": "You are subscribed again."
|
||||
},
|
||||
"tooltips": {
|
||||
"targetLists": "Targets that should receive messages.",
|
||||
|
||||
Reference in New Issue
Block a user