Use getCurrentWPUser from SubscribersRepository

[MAILPOET-3268]
This commit is contained in:
Jan Lysý
2021-03-10 08:34:28 +01:00
committed by Veljko V
parent 97dd881e8d
commit dffaab10a2
6 changed files with 68 additions and 22 deletions

View File

@@ -5,16 +5,19 @@ namespace MailPoet\AdminPages\Pages;
use MailPoet\AdminPages\PageRenderer;
use MailPoet\Config\Menu;
use MailPoet\Config\ServicesChecker;
use MailPoet\Models\Subscriber;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\Newsletter\Shortcodes\ShortcodesHelper;
use MailPoet\Services\Bridge;
use MailPoet\Settings\SettingsController;
use MailPoet\Settings\UserFlagsController;
use MailPoet\Subscribers\SubscribersRepository;
use MailPoet\WooCommerce\Helper as WooCommerceHelper;
use MailPoet\WooCommerce\TransactionalEmails;
use MailPoet\WP\Functions as WPFunctions;
class NewsletterEditor {
private const DATE_FORMAT = 'Y-m-d H:i:s';
/** @var PageRenderer */
private $pageRenderer;
@@ -39,6 +42,9 @@ class NewsletterEditor {
/** @var ShortcodesHelper */
private $shortcodesHelper;
/** @var SubscribersRepository */
private $subscribersRepository;
public function __construct(
PageRenderer $pageRenderer,
SettingsController $settings,
@@ -47,7 +53,8 @@ class NewsletterEditor {
WPFunctions $wp,
TransactionalEmails $wcTransactionalEmails,
ShortcodesHelper $shortcodesHelper,
ServicesChecker $servicesChecker
ServicesChecker $servicesChecker,
SubscribersRepository $subscribersRepository
) {
$this->pageRenderer = $pageRenderer;
$this->settings = $settings;
@@ -57,6 +64,7 @@ class NewsletterEditor {
$this->wcTransactionalEmails = $wcTransactionalEmails;
$this->servicesChecker = $servicesChecker;
$this->shortcodesHelper = $shortcodesHelper;
$this->subscribersRepository = $subscribersRepository;
}
public function render() {
@@ -76,8 +84,8 @@ class NewsletterEditor {
exit;
}
$subscriber = Subscriber::getCurrentWPUser();
$subscriberData = $subscriber ? $subscriber->asArray() : [];
$subscriber = $this->subscribersRepository->getCurrentWPUser();
$subscriberData = $subscriber ? $this->formatSubscriber($subscriber) : [];
$woocommerceData = [];
if ($this->woocommerceHelper->isWooCommerceActive()) {
$wcEmailSettings = $this->wcTransactionalEmails->getWCEmailSettings();
@@ -106,4 +114,28 @@ class NewsletterEditor {
$this->pageRenderer->displayPage('newsletter/editor.html', $data);
}
private function formatSubscriber(SubscriberEntity $subscriber): array {
return [
'id' => $subscriber->getId(),
'wp_user_id' => $subscriber->getWpUserId(),
'is_woocommerce_user' => (string)$subscriber->isWPUser(), // BC compatibility
'first_name' => $subscriber->getFirstName(),
'last_name' => $subscriber->getLastName(),
'email' => $subscriber->getEmail(),
'status' => $subscriber->getStatus(),
'subscribed_ip' => $subscriber->getSubscribedIp(),
'confirmed_ip' => $subscriber->getConfirmedIp(),
'confirmed_at' => ($confirmedAt = $subscriber->getConfirmedAt()) ? $confirmedAt->format(self::DATE_FORMAT) : null,
'last_subscribed_at' => ($lastSubscribedAt = $subscriber->getLastSubscribedAt()) ? $lastSubscribedAt->format(self::DATE_FORMAT) : null,
'created_at' => $subscriber->getCreatedAt()->format(self::DATE_FORMAT),
'updated_at' => $subscriber->getUpdatedAt()->format(self::DATE_FORMAT),
'deleted_at' => ($deletedAt = $subscriber->getDeletedAt()) ? $deletedAt->format(self::DATE_FORMAT) : null,
'unconfirmed_data' => $subscriber->getUnconfirmedData(),
'source' => $subscriber->getSource(),
'count_confirmation' => $subscriber->getConfirmationsCount(),
'unsubscribe_token' => $subscriber->getUnsubscribeToken(),
'link_token' => $subscriber->getLinkToken(),
];
}
}