forked from MichaelYick/mailpoet
Create a proxy method to get the processed date from within NewsletterEntity
[MAILPOET-3629]
This commit is contained in:
parent
2e354173db
commit
ffa91da869
@ -3,7 +3,6 @@
|
||||
namespace MailPoet\Config;
|
||||
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Entities\ScheduledTaskEntity;
|
||||
use MailPoet\Entities\SendingQueueEntity;
|
||||
use MailPoet\Entities\SubscriberEntity;
|
||||
use MailPoet\Form\Widget;
|
||||
@ -158,15 +157,9 @@ class Shortcodes {
|
||||
foreach ($newsletters as $newsletter) {
|
||||
$queue = $newsletter->getLatestQueue();
|
||||
|
||||
if ($queue instanceof SendingQueueEntity) {
|
||||
$task = $queue->getTask();
|
||||
} else {
|
||||
$task = null;
|
||||
}
|
||||
|
||||
$html .= '<li>' .
|
||||
'<span class="mailpoet_archive_date">' .
|
||||
$this->wp->applyFilters('mailpoet_archive_email_processed_date', $task) .
|
||||
$this->wp->applyFilters('mailpoet_archive_email_processed_date', $newsletter) .
|
||||
'</span>
|
||||
<span class="mailpoet_archive_subject">' .
|
||||
$this->wp->applyFilters('mailpoet_archive_email_subject', $newsletter, $subscriber, $queue) .
|
||||
@ -178,14 +171,12 @@ class Shortcodes {
|
||||
return $html;
|
||||
}
|
||||
|
||||
public function renderArchiveDate($task) {
|
||||
public function renderArchiveDate(NewsletterEntity $newsletter) {
|
||||
$timestamp = null;
|
||||
$processedAt = $newsletter->getProcessedAt();
|
||||
|
||||
if ($task instanceof ScheduledTaskEntity) {
|
||||
$processedAt = $task->getProcessedAt();
|
||||
if (!is_null($processedAt)) {
|
||||
$timestamp = $processedAt->getTimestamp();
|
||||
}
|
||||
if (!is_null($processedAt)) {
|
||||
$timestamp = $processedAt->getTimestamp();
|
||||
}
|
||||
|
||||
return $this->wp->dateI18n(
|
||||
|
@ -470,4 +470,19 @@ class NewsletterEntity {
|
||||
}
|
||||
return $body['globalStyles'][$category][$style] ?? null;
|
||||
}
|
||||
|
||||
public function getProcessedAt(): ?DateTimeInterface {
|
||||
$processedAt = null;
|
||||
$queue = $this->getLatestQueue();
|
||||
|
||||
if ($queue instanceof SendingQueueEntity) {
|
||||
$task = $queue->getTask();
|
||||
|
||||
if ($task instanceof ScheduledTaskEntity) {
|
||||
$processedAt = $task->getProcessedAt();
|
||||
}
|
||||
}
|
||||
|
||||
return $processedAt;
|
||||
}
|
||||
}
|
||||
|
@ -158,6 +158,29 @@ class NewsletterEntityTest extends \MailPoetTest {
|
||||
expect($task->getStatus())->equals(ScheduledTaskEntity::STATUS_PAUSED);
|
||||
}
|
||||
|
||||
public function testItGetProcessedAtReturnsNullIfEmailHasNotBeingQueuedYet() {
|
||||
$newsletter = $this->createNewsletter();
|
||||
$this->assertNull($newsletter->getProcessedAt());
|
||||
}
|
||||
|
||||
public function testItGetProcessedReturnsValue() {
|
||||
$processedAt = new \DateTimeImmutable('2012-01-02 12:32:34');
|
||||
$newsletter = $this->createNewsletter();
|
||||
$task = new ScheduledTaskEntity();
|
||||
$task->setProcessedAt($processedAt);
|
||||
$this->entityManager->persist($task);
|
||||
|
||||
$queue = new SendingQueueEntity();
|
||||
$queue->setNewsletter($newsletter);
|
||||
$queue->setTask($task);
|
||||
$this->entityManager->persist($queue);
|
||||
|
||||
$newsletter->getQueues()->add($queue);
|
||||
$this->entityManager->flush();
|
||||
|
||||
$this->assertSame($processedAt, $newsletter->getProcessedAt());
|
||||
}
|
||||
|
||||
public function _after() {
|
||||
$this->cleanup();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user