Imports all new subscribers with subscribed status as default

This commit is contained in:
Vlad
2018-02-16 08:49:46 -05:00
committed by pavel-mailpoet
parent e87134eca4
commit 3c43c04586
3 changed files with 26 additions and 2 deletions

View File

@@ -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';
} }
} }
} }

View File

@@ -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(

View File

@@ -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);