Add link_token for new subscribers during import

[MAILPOET-2364]
This commit is contained in:
Rostislav Wolny
2019-09-17 15:17:38 +02:00
committed by Jack Kitterhing
parent 09db91bc33
commit d6d9885a1e
2 changed files with 12 additions and 3 deletions

View File

@@ -11,6 +11,7 @@ use MailPoet\Models\SubscriberSegment;
use MailPoet\Subscribers\ImportExport\ImportExportFactory;
use MailPoet\Subscribers\Source;
use MailPoet\Util\Helpers;
use MailPoet\Util\Security;
use function MailPoet\Util\array_column;
class Import {
@@ -110,7 +111,7 @@ class Import {
// add, if required, missing required fields to new subscribers
$new_subscribers = $this->addMissingRequiredFields($new_subscribers);
$new_subscribers = $this->setSubscriptionStatusToSubscribed($new_subscribers);
$new_subscribers = $this->setSource($new_subscribers);
$new_subscribers = $this->setSourceAndLinkToken($new_subscribers);
$created_subscribers =
$this->createOrUpdateSubscribers(
'create',
@@ -297,14 +298,20 @@ class Import {
return $subscribers_data;
}
function setSource($subscribers_data) {
private function setSourceAndLinkToken($subscribers_data) {
$subscribers_count = count($subscribers_data['data'][key($subscribers_data['data'])]);
$subscribers_data['fields'][] = 'source';
$subscribers_data['fields'][] = 'link_token';
$subscribers_data['data']['source'] = array_fill(
0,
$subscribers_count,
Source::IMPORTED
);
$subscribers_data['data']['link_token'] = array_map(
function () {
return Security::generateRandomString(Subscriber::LINK_TOKEN_LENGTH);
}, array_fill(0, $subscribers_count, null)
);
return $subscribers_data;
}