Conditionally initializes shortcodes/filters
This commit is contained in:
@ -36,6 +36,7 @@ class Shortcodes {
|
||||
|
||||
// initialize subscription management shortcodes
|
||||
$subscription_page = new Pages();
|
||||
$subscription_page->initShortcodes();
|
||||
}
|
||||
|
||||
function formWidget($params = array()) {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
|
Reference in New Issue
Block a user