Move bulkSendConfirmationEmail() method out of the Subscriber model [MAILPOET-1922]
This commit is contained in:
@ -3,7 +3,6 @@ namespace MailPoet\Models;
|
||||
|
||||
use MailPoet\DI\ContainerWrapper;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
||||
use MailPoet\Util\Helpers;
|
||||
use function MailPoet\Util\array_column;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
@ -583,26 +582,6 @@ class Subscriber extends Model {
|
||||
);
|
||||
}
|
||||
|
||||
static function bulkSendConfirmationEmail($orm) {
|
||||
$subscribers = $orm
|
||||
->where('status', self::STATUS_UNCONFIRMED)
|
||||
->findMany();
|
||||
|
||||
$emails_sent = 0;
|
||||
if (!empty($subscribers)) {
|
||||
$sender = new ConfirmationEmailMailer();
|
||||
foreach ($subscribers as $subscriber) {
|
||||
if ($sender->sendConfirmationEmail($subscriber)) {
|
||||
$emails_sent++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
'count' => $emails_sent
|
||||
);
|
||||
}
|
||||
|
||||
static function getTotalSubscribers() {
|
||||
return self::whereIn('status', array(
|
||||
self::STATUS_SUBSCRIBED,
|
||||
@ -820,4 +799,13 @@ class Subscriber extends Model {
|
||||
$service = ContainerWrapper::getInstance()->get(\MailPoet\Subscribers\SubscriberActions::class);
|
||||
return $service->subscribe($subscriber_data, $segment_ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
static function bulkSendConfirmationEmail($orm) {
|
||||
trigger_error('Calling Subscriber::bulkSendConfirmationEmail() is deprecated and will be removed. Use MailPoet\API\MP\v1\API instead. ', E_USER_DEPRECATED);
|
||||
$service = ContainerWrapper::getInstance()->get(\MailPoet\Subscribers\SubscriberActions::class);
|
||||
return $service->bulkSendConfirmationEmail($orm);
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
namespace MailPoet\Subscribers;
|
||||
|
||||
use MailPoet\Listing\BulkActionFactory;
|
||||
use MailPoet\Models\Segment;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\SubscriberSegment;
|
||||
@ -20,14 +21,20 @@ class SubscriberActions {
|
||||
/** @var ConfirmationEmailMailer */
|
||||
private $confirmation_email_mailer;
|
||||
|
||||
/** @var BulkActionFactory */
|
||||
private $bulk_action_factory;
|
||||
|
||||
public function __construct(
|
||||
SettingsController $settings,
|
||||
NewSubscriberNotificationMailer $new_subscriber_notification_mailer,
|
||||
ConfirmationEmailMailer $confirmation_email_mailer
|
||||
ConfirmationEmailMailer $confirmation_email_mailer,
|
||||
BulkActionFactory $bulk_action_factory
|
||||
) {
|
||||
$this->settings = $settings;
|
||||
$this->new_subscriber_notification_mailer = $new_subscriber_notification_mailer;
|
||||
$this->confirmation_email_mailer = $confirmation_email_mailer;
|
||||
$this->bulk_action_factory = $bulk_action_factory;
|
||||
$this->bulk_action_factory->registerAction('\MailPoet\Models\Subscriber', 'bulkSendConfirmationEmail', $this);
|
||||
}
|
||||
|
||||
function subscribe($subscriber_data = array(), $segment_ids = array()) {
|
||||
@ -94,4 +101,23 @@ class SubscriberActions {
|
||||
return $subscriber;
|
||||
}
|
||||
|
||||
function bulkSendConfirmationEmail($orm) {
|
||||
$subscribers = $orm
|
||||
->where('status', Subscriber::STATUS_UNCONFIRMED)
|
||||
->findMany();
|
||||
|
||||
$emails_sent = 0;
|
||||
if (!empty($subscribers)) {
|
||||
foreach ($subscribers as $subscriber) {
|
||||
if ($this->confirmation_email_mailer->sendConfirmationEmail($subscriber)) {
|
||||
$emails_sent++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
'count' => $emails_sent
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user