Prevents overwriting global subscription status

This commit is contained in:
Vlad
2018-02-15 21:02:32 -05:00
committed by pavel-mailpoet
parent 7cf63965a0
commit c8f334d782
5 changed files with 16 additions and 108 deletions

View File

@@ -106,8 +106,6 @@ class Import {
if($new_subscribers['data']) {
// add, if required, missing required fields to new subscribers
$new_subscribers = $this->addMissingRequiredFields($new_subscribers);
// filter contents of the "status" field
$new_subscribers = $this->filterSubscribersStatus($new_subscribers);
$created_subscribers =
$this->createOrUpdateSubscribers(
'create',
@@ -116,8 +114,6 @@ class Import {
);
}
if($existing_subscribers['data'] && $this->update_subscribers) {
// filter contents of the "status" field
$existing_subscribers = $this->filterSubscribersStatus($existing_subscribers);
$updated_subscribers =
$this->createOrUpdateSubscribers(
'update',
@@ -299,49 +295,6 @@ class Import {
);
}
function filterSubscribersStatus($subscribers_data) {
if(!in_array('status', $subscribers_data['fields'])) return $subscribers_data;
$statuses = array(
Subscriber::STATUS_SUBSCRIBED => array(
'subscribed',
'confirmed',
1,
'1',
'true'
),
Subscriber::STATUS_UNCONFIRMED => array(
'unconfirmed',
0,
"0"
),
Subscriber::STATUS_UNSUBSCRIBED => array(
'unsubscribed',
-1,
'-1',
'false'
),
Subscriber::STATUS_BOUNCED => array(
'bounced'
)
);
$subscribers_data['data']['status'] = array_map(function($state) use ($statuses) {
if(in_array(strtolower($state), $statuses[Subscriber::STATUS_SUBSCRIBED], true)) {
return Subscriber::STATUS_SUBSCRIBED;
}
if(in_array(strtolower($state), $statuses[Subscriber::STATUS_UNSUBSCRIBED], true)) {
return Subscriber::STATUS_UNSUBSCRIBED;
}
if(in_array(strtolower($state), $statuses[Subscriber::STATUS_UNCONFIRMED], true)) {
return Subscriber::STATUS_UNCONFIRMED;
}
if(in_array(strtolower($state), $statuses[Subscriber::STATUS_BOUNCED], true)) {
return Subscriber::STATUS_BOUNCED;
}
return Subscriber::STATUS_SUBSCRIBED;
}, $subscribers_data['data']['status']);
return $subscribers_data;
}
function createOrUpdateSubscribers(
$action,
$subscribers_data,