2021-10-25 16:20:36 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Model\Entity;
|
|
|
|
|
|
|
|
use App\Model\Entity\AppModel;
|
|
|
|
|
|
|
|
class MailingList extends AppModel
|
|
|
|
{
|
|
|
|
protected $_accessible = [
|
|
|
|
'*' => true,
|
|
|
|
'id' => false,
|
|
|
|
'uuid' => false,
|
|
|
|
'user_id' => false,
|
|
|
|
];
|
|
|
|
|
|
|
|
protected $_accessibleOnNew = [
|
|
|
|
'uuid' => true,
|
|
|
|
'user_id' => true,
|
|
|
|
];
|
2021-10-28 09:00:20 +02:00
|
|
|
|
|
|
|
private $metaFieldsByParentId = [];
|
|
|
|
|
|
|
|
public function injectRegisteredEmailsIntoIndividuals()
|
|
|
|
{
|
|
|
|
if (empty($this->individuals)) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (!empty($this->meta_fields)) {
|
|
|
|
foreach ($this->meta_fields as $meta_field) {
|
|
|
|
$this->metaFieldsByParentId[$meta_field->parent_id][] = $meta_field;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
foreach ($this->individuals as $i => $individual) {
|
|
|
|
$this->individuals[$i]->mailinglist_emails = $this->collectEmailsForMailingList($individual);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function collectEmailsForMailingList($individual)
|
|
|
|
{
|
|
|
|
$emails = [];
|
|
|
|
if (!empty($individual['_joinData']) && !empty($individual['_joinData']['include_primary_email'])) {
|
|
|
|
$emails[] = $individual->email;
|
|
|
|
}
|
|
|
|
if (!empty($this->metaFieldsByParentId[$individual->id])) {
|
|
|
|
foreach ($this->metaFieldsByParentId[$individual->id] as $metaField) {
|
|
|
|
$emails[] = $metaField->value;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $emails;
|
|
|
|
}
|
2021-10-25 16:20:36 +02:00
|
|
|
}
|