pluginDescription;
}
public function textPopup(): void
{
?>
getAllFieldsForUser();
$descriptions = [];
$isAutomationAdmin = acym_getVar('string', 'automation');
$mailType = acym_getVar('string', 'mail_type', MailClass::TYPE_STANDARD);
$typeNotif = acym_getVar('string', 'notification', '');
foreach ($customFields as $one) {
$descriptions[$one->namekey] = acym_translation('ACYM_CUSTOM_FIELD');
$fields[] = $one;
}
$descriptions['id'] = acym_translation('ACYM_USER_ID');
$descriptions['email'] = acym_translation('ACYM_USER_EMAIL');
$descriptions['name'] = acym_translation('ACYM_USER_NAME');
$descriptions['cms_id'] = acym_translation('ACYM_USER_CMSID');
$descriptions['source'] = acym_translation('ACYM_USER_SOURCE');
$descriptions['confirmed'] = acym_translation('ACYM_USER_CONFIRMED');
$descriptions['active'] = acym_translation('ACYM_USER_ACTIVE');
$descriptions['creation_date'] = acym_translation('ACYM_USER_CREATION_DATE');
$descriptions['open_date'] = acym_translation('ACYM_USER_OPEN_DATE');
$descriptions['date_click'] = acym_translation('ACYM_USER_CLICK_DATE');
$descriptions['send_date'] = acym_translation('ACYM_USER_SEND_DATE');
echo '
';
}
public function replaceUserInformation(object &$email, ?object &$user, bool $send = true): void
{
$extractedTags = $this->pluginHelper->extractTags($email, $this->name);
$backwardsTags = $this->pluginHelper->extractTags($email, 'subtag');
foreach ($backwardsTags as $tag => $params) {
$extractedTags[$tag] = $params;
}
if (empty($extractedTags)) return;
$fieldClass = new FieldClass();
$fields = $fieldClass->getFieldsByNameKey(array_column($extractedTags, 'id'));
$fieldsData = empty($user->id) ? [] : $fieldClass->getAllFieldsListingByUserIds([$user->id], array_keys($fields));
$fieldsNameKeyIdMap = array_combine(array_column($fields, 'namekey'), array_column($fields, 'id'));
$tags = [];
foreach ($extractedTags as $i => $oneTag) {
if (isset($tags[$i]) || (!empty($oneTag->info) && $oneTag->info === 'current')) {
continue;
}
$fieldNameKey = $oneTag->id === 'acym_language' ? 'language' : $oneTag->id;
if ($fieldNameKey === 'autologin_token' && !empty($user->id) && !empty($user->key)) {
$fieldValue = acym_generateAutologinToken(intval($user->id), $user->key);
$this->pluginHelper->formatString($fieldValue, $oneTag);
$tags[$i] = $fieldValue;
continue;
}
$fieldId = $fieldsNameKeyIdMap[$fieldNameKey] ?? 0;
$fieldValue = $user->$fieldNameKey ?? '';
if (strlen($fieldValue) === 0 && !empty($user->id) && !empty($fieldId)) {
$fieldValue = $fieldsData[$fieldId.'-'.$user->id] ?? $oneTag->default;
}
if (strlen($fieldValue) === 0) {
$fieldValue = $oneTag->default;
}
$fieldValue = acym_translation(nl2br($fieldValue));
$this->pluginHelper->formatString($fieldValue, $oneTag);
$tags[$i] = $fieldValue;
}
$this->pluginHelper->replaceTags($email, $tags);
}
}