Imports all new subscribers with subscribed status as default
This commit is contained in:
@@ -701,8 +701,6 @@ define(
|
|||||||
columnId = 'first_name';
|
columnId = 'first_name';
|
||||||
} else if (/last|last name/i.test(headerName)) {
|
} else if (/last|last name/i.test(headerName)) {
|
||||||
columnId = 'last_name';
|
columnId = 'last_name';
|
||||||
} else if (/status/i.test(headerName)) {
|
|
||||||
columnId = 'status';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -106,6 +106,7 @@ class Import {
|
|||||||
if($new_subscribers['data']) {
|
if($new_subscribers['data']) {
|
||||||
// add, if required, missing required fields to new subscribers
|
// add, if required, missing required fields to new subscribers
|
||||||
$new_subscribers = $this->addMissingRequiredFields($new_subscribers);
|
$new_subscribers = $this->addMissingRequiredFields($new_subscribers);
|
||||||
|
$new_subscribers = $this->setSubscriptionStatusToSubscribed($new_subscribers);
|
||||||
$created_subscribers =
|
$created_subscribers =
|
||||||
$this->createOrUpdateSubscribers(
|
$this->createOrUpdateSubscribers(
|
||||||
'create',
|
'create',
|
||||||
@@ -275,6 +276,14 @@ class Import {
|
|||||||
return $subscribers;
|
return $subscribers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function setSubscriptionStatusToSubscribed($subscribers_data) {
|
||||||
|
if(!in_array('status', $subscribers_data['fields'])) return $subscribers_data;
|
||||||
|
$subscribers_data['data']['status'] = array_map(function() {
|
||||||
|
return Subscriber::STATUS_SUBSCRIBED;
|
||||||
|
}, $subscribers_data['data']['status']);
|
||||||
|
return $subscribers_data;
|
||||||
|
}
|
||||||
|
|
||||||
function getSubscribersFields($subscribers_fields) {
|
function getSubscribersFields($subscribers_fields) {
|
||||||
return array_values(
|
return array_values(
|
||||||
array_filter(
|
array_filter(
|
||||||
|
@@ -437,6 +437,23 @@ class ImportTest extends \MailPoetTest {
|
|||||||
expect($updated_subscriber->status)->equals('unsubscribed');
|
expect($updated_subscriber->status)->equals('unsubscribed');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testItImportsNewsSubscribersWithSubscribedStatus() {
|
||||||
|
$data = $this->data;
|
||||||
|
$data['columns']['status'] = array('index' => 4);
|
||||||
|
$data['subscribers'][0][] = 'unsubscribed';
|
||||||
|
$data['subscribers'][1][] = 'unsubscribed';
|
||||||
|
$import = new Import($data);
|
||||||
|
$result = $import->process();
|
||||||
|
$new_subscribers = Subscriber::whereAnyIs(array(
|
||||||
|
array('email' => $data['subscribers'][0][2]),
|
||||||
|
array('email' => $data['subscribers'][1][2])
|
||||||
|
)
|
||||||
|
)->findMany();
|
||||||
|
expect($new_subscribers)->count(2);
|
||||||
|
expect($new_subscribers[0]->status)->equals('subscribed');
|
||||||
|
expect($new_subscribers[1]->status)->equals('subscribed');
|
||||||
|
}
|
||||||
|
|
||||||
function testItRunsImport() {
|
function testItRunsImport() {
|
||||||
$result = $this->import->process();
|
$result = $this->import->process();
|
||||||
expect($result['created'])->equals(2);
|
expect($result['created'])->equals(2);
|
||||||
|
Reference in New Issue
Block a user