Fixing Shortcodes issue
This commit is contained in:
@ -4,6 +4,7 @@ use MailPoet\Models\Newsletter;
|
|||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
use MailPoet\Models\SubscriberSegment;
|
use MailPoet\Models\SubscriberSegment;
|
||||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||||
|
use MailPoet\WP\Hooks;
|
||||||
|
|
||||||
class Shortcodes {
|
class Shortcodes {
|
||||||
function __construct() {
|
function __construct() {
|
||||||
@ -26,10 +27,10 @@ class Shortcodes {
|
|||||||
$this, 'getArchive'
|
$this, 'getArchive'
|
||||||
));
|
));
|
||||||
|
|
||||||
add_filter('mailpoet_archive_date', array(
|
Hooks::addFilter('mailpoet_archive_date', array(
|
||||||
$this, 'renderArchiveDate'
|
$this, 'renderArchiveDate'
|
||||||
), 2);
|
), 2);
|
||||||
add_filter('mailpoet_archive_subject', array(
|
Hooks::addFilter('mailpoet_archive_subject', array(
|
||||||
$this, 'renderArchiveSubject'
|
$this, 'renderArchiveSubject'
|
||||||
), 2, 3);
|
), 2, 3);
|
||||||
}
|
}
|
||||||
@ -79,12 +80,12 @@ class Shortcodes {
|
|||||||
$subscriber = Subscriber::getCurrentWPUser();
|
$subscriber = Subscriber::getCurrentWPUser();
|
||||||
|
|
||||||
if(empty($newsletters)) {
|
if(empty($newsletters)) {
|
||||||
return apply_filters(
|
return Hooks::applyFilters(
|
||||||
'mailpoet_archive_no_newsletters',
|
'mailpoet_archive_no_newsletters',
|
||||||
__('Oops! There are no newsletters to display.', 'mailpoet')
|
__('Oops! There are no newsletters to display.', 'mailpoet')
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$title = apply_filters('mailpoet_archive_title', '');
|
$title = Hooks::applyFilters('mailpoet_archive_title', '');
|
||||||
if(!empty($title)) {
|
if(!empty($title)) {
|
||||||
$html .= '<h3 class="mailpoet_archive_title">'.$title.'</h3>';
|
$html .= '<h3 class="mailpoet_archive_title">'.$title.'</h3>';
|
||||||
}
|
}
|
||||||
@ -93,10 +94,10 @@ class Shortcodes {
|
|||||||
$queue = $newsletter->queue()->findOne();
|
$queue = $newsletter->queue()->findOne();
|
||||||
$html .= '<li>'.
|
$html .= '<li>'.
|
||||||
'<span class="mailpoet_archive_date">'.
|
'<span class="mailpoet_archive_date">'.
|
||||||
apply_filters('mailpoet_archive_date', $newsletter).
|
Hooks::applyFilters('mailpoet_archive_date', $newsletter).
|
||||||
'</span>
|
'</span>
|
||||||
<span class="mailpoet_archive_subject">'.
|
<span class="mailpoet_archive_subject">'.
|
||||||
apply_filters('mailpoet_archive_subject', $newsletter, $subscriber, $queue).
|
Hooks::applyFilters('mailpoet_archive_subject', $newsletter, $subscriber, $queue).
|
||||||
'</span>
|
'</span>
|
||||||
</li>';
|
</li>';
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Test\Config;
|
namespace MailPoet\Test\Config;
|
||||||
|
|
||||||
|
use Helper\WordPress;
|
||||||
use MailPoet\Config\Shortcodes;
|
use MailPoet\Config\Shortcodes;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Models\SendingQueue;
|
use MailPoet\Models\SendingQueue;
|
||||||
@ -21,8 +22,20 @@ class ShortcodesTest extends \MailPoetTest {
|
|||||||
|
|
||||||
function testItGetsArchives() {
|
function testItGetsArchives() {
|
||||||
$shortcodes = new Shortcodes();
|
$shortcodes = new Shortcodes();
|
||||||
|
WordPress::interceptFunction('apply_filters', function() use($shortcodes) {
|
||||||
|
$args = func_get_args();
|
||||||
|
$filter_name = array_shift($args);
|
||||||
|
switch ($filter_name) {
|
||||||
|
case 'mailpoet_archive_date':
|
||||||
|
return $shortcodes->renderArchiveDate($args[0]);
|
||||||
|
case 'mailpoet_archive_subject':
|
||||||
|
return $shortcodes->renderArchiveSubject($args[0], $args[1], $args[2]);
|
||||||
|
}
|
||||||
|
return '';
|
||||||
|
});
|
||||||
// result contains a link pointing to the "view in browser" router endpoint
|
// result contains a link pointing to the "view in browser" router endpoint
|
||||||
$result = $shortcodes->getArchive($params = false);
|
$result = $shortcodes->getArchive($params = false);
|
||||||
|
WordPress::releaseFunction('apply_filters');
|
||||||
$dom = \pQuery::parseStr($result);
|
$dom = \pQuery::parseStr($result);
|
||||||
$link = $dom->query('a');
|
$link = $dom->query('a');
|
||||||
$link = $link->attr('href');
|
$link = $link->attr('href');
|
||||||
|
Reference in New Issue
Block a user