JezK
Edit File: DynamicsController.php
<?php namespace AcyMailing\Controllers; use AcyMailing\Classes\UserClass; use AcyMailing\Helpers\PluginHelper; use AcyMailing\Core\AcymController; class DynamicsController extends AcymController { public function replaceDummy(): void { wp_verify_nonce(acym_getVar('cmd', '_wpnonce'), 'acymnonce') || die('Invalid Token'); $mailId = acym_getVar('int', 'mailId', 0); $code = acym_getVar('string', 'code', '', '', ACYM_ALLOWRAW); $previewBody = base64_decode(acym_getVar('string', 'previewBody', '', '', ACYM_ALLOWRAW)); $pluginHelper = new PluginHelper(); $email = $pluginHelper->createDummyEmailObject($mailId, $code, $previewBody); @acym_trigger('replaceContent', [&$email, false]); $userClass = new UserClass(); $userEmail = acym_currentUserEmail(); $user = $userClass->getOneByEmail($userEmail); if (empty($user)) { $user = new \stdClass(); $user->email = $userEmail; $user->name = acym_currentUserName(); $user->cms_id = acym_currentUserId(); $user->confirmed = 0; $user->source = acym_isAdmin() ? 'Back-end' : 'Front-end'; $userClass->checkVisitor = false; $user->id = $userClass->save($user); } @acym_trigger('replaceUserInformation', [&$email, &$user, false]); acym_sendAjaxResponse( '', [ 'content' => $email->body, 'custom_view' => !empty($email->custom_view), ] ); } public function trigger(): void { wp_verify_nonce(acym_getVar('cmd', '_wpnonce'), 'acymnonce') || die('Invalid Token'); $plugin = acym_getVar('cmd', 'plugin', ''); $trigger = acym_getVar('cmd', 'trigger', ''); if (empty($plugin) || empty($trigger)) exit; $triggerParams = $this->getTriggerParams($plugin, $trigger); acym_trigger($trigger, $triggerParams, $plugin); exit; } private function getTriggerParams(string $plugin, string $trigger): array { $shortcode = acym_getVar('string', 'shortcode', ''); $shortcode = trim($shortcode, '{}'); $separatorPosition = strpos($shortcode, ':'); if (false !== $separatorPosition) { $pluginSubType = substr($shortcode, 0, $separatorPosition); $shortcode = substr($shortcode, $separatorPosition + 1); $pluginHelper = new PluginHelper(); $defaultValues = $pluginHelper->extractTag($shortcode); $defaultValues->defaultPluginTab = $pluginSubType; return [$defaultValues]; } if ($trigger === 'insertionOptions') { $rawDefaultValues = $this->config->get('dcontent_default_'.$plugin); if (!empty($rawDefaultValues)) { $defaultValues = is_string($rawDefaultValues) ? json_decode($rawDefaultValues, true) : $rawDefaultValues; unset($defaultValues['id']); unset($defaultValues['from']); unset($defaultValues['to']); $defaultValues = (object)$defaultValues; return [$defaultValues]; } } return []; } }