subscribersRepository = $subscribersRepository; $this->subscriberCustomFieldRepository = $subscriberCustomFieldRepository; } public function process( array $shortcodeDetails, NewsletterEntity $newsletter = null, SubscriberEntity $subscriber = null, SendingQueueEntity $queue = null, string $content = '', bool $wpUserPreview = false ): ?string { if (!($subscriber instanceof SubscriberEntity)) { return $shortcodeDetails['shortcode']; } $defaultValue = ($shortcodeDetails['action_argument'] === 'default') ? $shortcodeDetails['action_argument_value'] : ''; switch ($shortcodeDetails['action']) { case 'firstname': return (!empty($subscriber->getFirstName())) ? $subscriber->getFirstName() : $defaultValue; case 'lastname': return !empty($subscriber->getLastName()) ? $subscriber->getLastName() : $defaultValue; case 'email': return $subscriber->getEmail(); case 'displayname': if ($subscriber->getWpUserId()) { $wpUser = WPFunctions::get()->getUserdata($subscriber->getWpUserId()); return $wpUser->user_login; // phpcs:ignore Squiz.NamingConventions.ValidVariableName.NotCamelCaps } return $defaultValue; case 'count': return (string)$this->subscribersRepository->getTotalSubscribers(); default: if (preg_match('/cf_(\d+)/', $shortcodeDetails['action'], $customField) && !empty($subscriber->getId()) ) { $customField = $this->subscriberCustomFieldRepository->findOneBy([ 'subscriber' => $subscriber, 'customField' => $customField[1], ]); return ($customField instanceof SubscriberCustomFieldEntity) ? $customField->getValue() : null; } return null; } } }