Merge pull request #1355 from mailpoet/subscriber-source
Subscriber source [MAILPOET-1377]
This commit is contained in:
@ -6,9 +6,12 @@ use MailPoet\Mailer\MailerLog;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\Segment;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\StatisticsForms;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Segments\WP;
|
||||
use MailPoet\Models\Setting;
|
||||
use MailPoet\Settings\Pages;
|
||||
use MailPoet\Subscribers\Source;
|
||||
use MailPoet\Util\Helpers;
|
||||
|
||||
if(!defined('ABSPATH')) exit;
|
||||
@ -65,6 +68,7 @@ class Populator {
|
||||
$this->createDefaultSegments();
|
||||
$this->createDefaultSettings();
|
||||
$this->createMailPoetPage();
|
||||
$this->createSourceForSubscribers();
|
||||
}
|
||||
|
||||
private function createMailPoetPage() {
|
||||
@ -333,4 +337,19 @@ class Populator {
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
private function createSourceForSubscribers() {
|
||||
Subscriber::rawExecute(
|
||||
' UPDATE LOW_PRIORITY `' . Subscriber::$_table . '` subscriber ' .
|
||||
' JOIN `' . StatisticsForms::$_table . '` stats ON stats.subscriber_id=subscriber.id ' .
|
||||
' SET `source` = "' . Source::FORM . '"' .
|
||||
' WHERE `source` = "' . Source::UNKNOWN . '"'
|
||||
);
|
||||
Subscriber::rawExecute(
|
||||
'UPDATE LOW_PRIORITY `' . Subscriber::$_table . '`' .
|
||||
' SET `source` = "' . Source::WORDPRESS_USER . '"' .
|
||||
' WHERE `source` = "' . Source::UNKNOWN . '"' .
|
||||
' AND `wp_user_id` IS NOT NULL'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Subscribers\ImportExport\PersonalDataExporters;
|
||||
|
||||
use MailPoet\Models\CustomField;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Subscribers\Source;
|
||||
|
||||
class SubscriberExporter {
|
||||
|
||||
@ -70,6 +71,12 @@ class SubscriberExporter {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$result[] = array(
|
||||
'name' => __("Subscriber's subscription source", 'mailpoet'),
|
||||
'value' => $this->formatSource($subscriber->source),
|
||||
);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
@ -82,4 +89,21 @@ class SubscriberExporter {
|
||||
return $result;
|
||||
}
|
||||
|
||||
private function formatSource($source) {
|
||||
switch ($source) {
|
||||
case Source::WORDPRESS_USER:
|
||||
return __('Subscriber information synchronized via WP user sync', 'mailpoet');
|
||||
case Source::FORM:
|
||||
return __('Subscription via a MailPoet subscription form', 'mailpoet');
|
||||
case Source::API:
|
||||
return __('Added by a 3rd party via MailPoet 3 API', 'mailpoet');
|
||||
case Source::ADMINISTRATOR:
|
||||
return __('Created by the administrator', 'mailpoet');
|
||||
case Source::IMPORTED:
|
||||
return __('Imported by the administrator', 'mailpoet');
|
||||
default:
|
||||
return __('Unknown', 'mailpoet');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -48,10 +48,27 @@ class SubscriberExporterTest extends \MailPoetTest {
|
||||
array('name' => 'Email', 'value' => 'email.that@has.no.custom.fields'),
|
||||
array('name' => 'Status', 'value' => 'unconfirmed'),
|
||||
array('name' => 'Created at', 'value' => '2018-05-03 10:30:08'),
|
||||
array('name' => "Subscriber's subscription source", 'value' => 'Unknown'),
|
||||
);
|
||||
expect($result['data'][0]['data'])->equals($expected);
|
||||
}
|
||||
|
||||
function testExportSubscriberWithSource() {
|
||||
Subscriber::createOrUpdate(array(
|
||||
'email' => 'email.with@source.com',
|
||||
'first_name' => 'John',
|
||||
'last_name' => 'Doe',
|
||||
'status' => 'unconfirmed',
|
||||
'created_at' => '2018-05-03 10:30:08',
|
||||
'source' => 'form',
|
||||
));
|
||||
$result = $this->exporter->export('email.with@source.com');
|
||||
expect($result['data'][0]['data'])->contains(array(
|
||||
'name' => "Subscriber's subscription source",
|
||||
'value' => 'Subscription via a MailPoet subscription form'
|
||||
));
|
||||
}
|
||||
|
||||
function testExportSubscriberWithIPs() {
|
||||
Subscriber::createOrUpdate(array(
|
||||
'email' => 'email.that@has.ip.addresses',
|
||||
@ -67,6 +84,7 @@ class SubscriberExporterTest extends \MailPoetTest {
|
||||
expect($result['data'][0]['data'])->contains(array('name' => 'Confirmed IP', 'value' => 'IP2'));
|
||||
}
|
||||
|
||||
|
||||
function testExportSubscriberWithCustomField() {
|
||||
$subscriber = Subscriber::createOrUpdate(array(
|
||||
'email' => 'email.that@has.custom.fields',
|
||||
|
Reference in New Issue
Block a user