Conditionally initializes shortcodes/filters

This commit is contained in:
Vlad
2017-12-05 09:09:27 -05:00
parent 7864e08900
commit e731b261ab
3 changed files with 23 additions and 16 deletions

View File

@ -36,6 +36,7 @@ class Shortcodes {
// initialize subscription management shortcodes
$subscription_page = new Pages();
$subscription_page->initShortcodes();
}
function formWidget($params = array()) {

View File

@ -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);
}
}

View File

@ -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();
if($init_page_filters) $this->initPageFilters();
if($init_shortcodes) $this->initShortcodes();
}
// handle subscription pages title & content
if($init_page_filters) {
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);
}
// manage subscription link shortcodes
function initShortcodes() {
add_shortcode('mailpoet_manage', array($this, 'getManageLink'));
add_shortcode('mailpoet_manage_subscription', array($this, 'getManageContent'));
}
private function isPreview() {
return (array_key_exists('preview', $_GET) || array_key_exists('preview', $this->data));
}
function getSubscriber() {
$token = (isset($this->data['token'])) ? $this->data['token'] : null;
$email = (isset($this->data['email'])) ? $this->data['email'] : null;