Conditionally initializes shortcodes/filters
This commit is contained in:
@ -36,6 +36,7 @@ class Shortcodes {
|
|||||||
|
|
||||||
// initialize subscription management shortcodes
|
// initialize subscription management shortcodes
|
||||||
$subscription_page = new Pages();
|
$subscription_page = new Pages();
|
||||||
|
$subscription_page->initShortcodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
function formWidget($params = array()) {
|
function formWidget($params = array()) {
|
||||||
|
@ -27,16 +27,20 @@ class Subscription {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function confirm() {
|
function confirm() {
|
||||||
$subscription = new UserSubscription\Pages('confirm', $this->data, true);
|
$subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_CONFIRM);
|
||||||
$subscription->confirm();
|
$subscription->confirm();
|
||||||
}
|
}
|
||||||
|
|
||||||
function manage() {
|
function manage() {
|
||||||
$subscription = new UserSubscription\Pages('manage', $this->data, true);
|
$subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_MANAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
function unsubscribe() {
|
function unsubscribe() {
|
||||||
$subscription = new UserSubscription\Pages('unsubscribe', $this->data, true);
|
$subscription = $this->initSubscriptionPage(UserSubscription\Pages::ACTION_UNSUBSCRIBE);
|
||||||
$subscription->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 $data;
|
||||||
private $subscriber;
|
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->action = $action;
|
||||||
$this->data = $data;
|
$this->data = $data;
|
||||||
$this->subscriber = $this->getSubscriber();
|
$this->subscriber = $this->getSubscriber();
|
||||||
|
if($init_page_filters) $this->initPageFilters();
|
||||||
|
if($init_shortcodes) $this->initShortcodes();
|
||||||
|
}
|
||||||
|
|
||||||
// handle subscription pages title & content
|
private function isPreview() {
|
||||||
if($init_page_filters) {
|
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('wp_title', array($this,'setWindowTitle'), 10, 3);
|
||||||
add_filter('document_title_parts', array($this,'setWindowTitleParts'), 10, 1);
|
add_filter('document_title_parts', array($this,'setWindowTitleParts'), 10, 1);
|
||||||
add_filter('the_title', array($this,'setPageTitle'), 10, 1);
|
add_filter('the_title', array($this,'setPageTitle'), 10, 1);
|
||||||
add_filter('the_content', array($this,'setPageContent'), 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', array($this, 'getManageLink'));
|
||||||
add_shortcode('mailpoet_manage_subscription', array($this, 'getManageContent'));
|
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() {
|
function getSubscriber() {
|
||||||
$token = (isset($this->data['token'])) ? $this->data['token'] : null;
|
$token = (isset($this->data['token'])) ? $this->data['token'] : null;
|
||||||
$email = (isset($this->data['email'])) ? $this->data['email'] : null;
|
$email = (isset($this->data['email'])) ? $this->data['email'] : null;
|
||||||
|
Reference in New Issue
Block a user