diff --git a/lib/Config/Shortcodes.php b/lib/Config/Shortcodes.php index 3299b29270..fa099552ac 100644 --- a/lib/Config/Shortcodes.php +++ b/lib/Config/Shortcodes.php @@ -36,6 +36,7 @@ class Shortcodes { // initialize subscription management shortcodes $subscription_page = new Pages(); + $subscription_page->initShortcodes(); } function formWidget($params = array()) { diff --git a/lib/Router/Endpoints/Subscription.php b/lib/Router/Endpoints/Subscription.php index 1ffe7f0121..59688b2bc8 100644 --- a/lib/Router/Endpoints/Subscription.php +++ b/lib/Router/Endpoints/Subscription.php @@ -27,16 +27,20 @@ class Subscription { } function confirm() { - $subscription = new UserSubscription\Pages('confirm', $this->data, true); + $subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_CONFIRM); $subscription->confirm(); } function manage() { - $subscription = new UserSubscription\Pages('manage', $this->data, true); + $subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_MANAGE); } function unsubscribe() { - $subscription = new UserSubscription\Pages('unsubscribe', $this->data, true); + $subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_UNSUBSCRIBE); $subscription->unsubscribe(); } + + private function initSubscriptionPage($action) { + return new UserSubscription\Pages($action, $this->data, true, true); + } } \ No newline at end of file diff --git a/lib/Subscription/Pages.php b/lib/Subscription/Pages.php index 865f3591c1..91b8926d47 100644 --- a/lib/Subscription/Pages.php +++ b/lib/Subscription/Pages.php @@ -23,28 +23,30 @@ class Pages { private $data; private $subscriber; - function __construct($action = false, $data = array(), $init_page_filters = false) { + function __construct($action = false, $data = array(), $init_shortcodes = false, $init_page_filters = false) { $this->action = $action; $this->data = $data; $this->subscriber = $this->getSubscriber(); - - // handle subscription pages title & content - if($init_page_filters) { - add_filter('wp_title', array($this,'setWindowTitle'), 10, 3); - add_filter('document_title_parts', array($this,'setWindowTitleParts'), 10, 1); - add_filter('the_title', array($this,'setPageTitle'), 10, 1); - add_filter('the_content', array($this,'setPageContent'), 10, 1); - } - - // manage subscription link shortcodes - add_shortcode('mailpoet_manage', array($this, 'getManageLink')); - add_shortcode('mailpoet_manage_subscription', array($this, 'getManageContent')); + if($init_page_filters) $this->initPageFilters(); + if($init_shortcodes) $this->initShortcodes(); } private function isPreview() { return (array_key_exists('preview', $_GET) || array_key_exists('preview', $this->data)); } + function initPageFilters() { + add_filter('wp_title', array($this,'setWindowTitle'), 10, 3); + add_filter('document_title_parts', array($this,'setWindowTitleParts'), 10, 1); + add_filter('the_title', array($this,'setPageTitle'), 10, 1); + add_filter('the_content', array($this,'setPageContent'), 10, 1); + } + + function initShortcodes() { + add_shortcode('mailpoet_manage', array($this, 'getManageLink')); + add_shortcode('mailpoet_manage_subscription', array($this, 'getManageContent')); + } + function getSubscriber() { $token = (isset($this->data['token'])) ? $this->data['token'] : null; $email = (isset($this->data['email'])) ? $this->data['email'] : null;