properly handle custom subscriptions pages
This commit is contained in:
@@ -35,8 +35,4 @@ class SendingQueue extends Model {
|
||||
$this->save();
|
||||
return ($this->getErrors() === false && $this->id() > 0);
|
||||
}
|
||||
|
||||
function stop() {
|
||||
return $this->delete();
|
||||
}
|
||||
}
|
@@ -33,7 +33,7 @@ class Pages {
|
||||
'post_type' => 'mailpoet_page',
|
||||
'post_author' => 1,
|
||||
'post_content' => '[mailpoet_page]',
|
||||
'post_title' => __('MailPoet Page'),
|
||||
'post_title' => '[mailpoet_title]',
|
||||
'post_name' => 'subscriptions'
|
||||
));
|
||||
flush_rewrite_rules();
|
||||
@@ -66,7 +66,7 @@ class Pages {
|
||||
'id' => $page->ID,
|
||||
'title' => $page->post_title,
|
||||
'preview_url' => add_query_arg(array(
|
||||
'preview' => 1
|
||||
'mailpoet_preview' => 1
|
||||
), get_permalink($page->ID))
|
||||
);
|
||||
}
|
||||
|
@@ -17,10 +17,11 @@ class Pages {
|
||||
}
|
||||
|
||||
function init() {
|
||||
if(isset($_GET['mailpoet_page'])) {
|
||||
add_filter('wp_title', array($this,'setWindowTitle'));
|
||||
add_filter('the_title', array($this,'setPageTitle'));
|
||||
add_filter('the_content', array($this,'setPageContent'));
|
||||
$action = $this->getAction();
|
||||
if($action !== null) {
|
||||
add_filter('document_title_parts', array($this,'setWindowTitle'), 10, 1);
|
||||
add_filter('the_title', array($this,'setPageTitle'), 10, 1);
|
||||
add_filter('the_content', array($this,'setPageContent'), 10, 1);
|
||||
}
|
||||
add_action(
|
||||
'admin_post_mailpoet_subscriber_save',
|
||||
@@ -43,25 +44,35 @@ class Pages {
|
||||
$_POST,
|
||||
array_flip($reserved_keywords)
|
||||
);
|
||||
if(isset($subscriber_data['email'])) {
|
||||
if($subscriber_data['email'] !== self::DEMO_EMAIL) {
|
||||
$subscriber = Subscriber::createOrUpdate($subscriber_data);
|
||||
$errors = $subscriber->getErrors();
|
||||
|
||||
}
|
||||
}
|
||||
// TBD: success/error messages (not present in MP2)
|
||||
|
||||
Url::redirectBack();
|
||||
}
|
||||
|
||||
function isPreview() {
|
||||
return (array_key_exists('preview', $_GET));
|
||||
return (array_key_exists('mailpoet_preview', $_GET));
|
||||
}
|
||||
|
||||
function setWindowTitle() {
|
||||
// TODO
|
||||
function setWindowTitle($meta = array()) {
|
||||
$meta['title'] = $this->setPageTitle($meta['title']);
|
||||
return $meta;
|
||||
}
|
||||
|
||||
function setPageTitle($title = null) {
|
||||
function setPageTitle($page_title = '[mailpoet_title]') {
|
||||
if(
|
||||
(strpos($page_title, '[mailpoet_title]') === false)
|
||||
&&
|
||||
(strlen(trim($page_title)) > 0)
|
||||
) {
|
||||
return $page_title;
|
||||
} else {
|
||||
$subscriber = $this->getSubscriber();
|
||||
|
||||
switch($this->getAction()) {
|
||||
case 'confirm':
|
||||
return $this->getConfirmTitle($subscriber);
|
||||
@@ -81,7 +92,8 @@ class Pages {
|
||||
return $this->getUnsubscribeTitle($subscriber);
|
||||
break;
|
||||
}
|
||||
return $title;
|
||||
}
|
||||
return str_replace('[mailpoet_title]', $title, $page_title);
|
||||
}
|
||||
|
||||
function setPageContent($page_content = '[mailpoet_page]') {
|
||||
|
@@ -41,7 +41,7 @@ class Url {
|
||||
} else {
|
||||
$params = array(
|
||||
'mailpoet_action='.$action,
|
||||
'preview'
|
||||
'mailpoet_preview=1'
|
||||
);
|
||||
}
|
||||
// add parameters
|
||||
|
Reference in New Issue
Block a user