Unify ProcessedAt timezone

Fix a problem in the codebase where we create, schedule and update newsletters in the user time zone, but we set the ProcessedAt with another timezone

Also, `Carbon::createFromTimestamp($this->wp->currentTime('mysql'))` is not a valid date.
It would return date: '1970-01-01 00:35:29.000000'

MAILPOET-5795
This commit is contained in:
Oluwaseun Olorunsola
2023-12-21 13:28:31 +01:00
committed by Aschepikov
parent 832ffc1568
commit 639d779088
3 changed files with 4 additions and 3 deletions

View File

@@ -182,7 +182,7 @@ class Worker {
private function markTaskAsFinished(ScheduledTaskEntity $task) {
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
$task->setProcessedAt(new Carbon);
$task->setProcessedAt(Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp')));
$task->setScheduledAt(null);
$this->entityManager->flush();
}

View File

@@ -7,6 +7,7 @@ use MailPoet\Entities\ScheduledTaskEntity;
use MailPoet\Entities\ScheduledTaskSubscriberEntity;
use MailPoet\Entities\SubscriberEntity;
use MailPoet\InvalidStateException;
use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon;
use MailPoetVendor\Doctrine\DBAL\Connection;
use MailPoetVendor\Doctrine\ORM\QueryBuilder;
@@ -186,7 +187,7 @@ class ScheduledTaskSubscribersRepository extends Repository {
$count = $this->countUnprocessed($task);
if ($count === 0) {
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
$task->setProcessedAt(new Carbon());
$task->setProcessedAt(Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp')));
$this->entityManager->flush();
}
}

View File

@@ -138,7 +138,7 @@ class SendingQueuesRepository extends Repository {
if (!$task instanceof ScheduledTaskEntity) return;
if ($queue->getCountProcessed() === $queue->getCountTotal()) {
$processedAt = Carbon::createFromTimestamp($this->wp->currentTime('mysql'));
$processedAt = Carbon::createFromTimestamp($this->wp->currentTime('timestamp'));
$task->setProcessedAt($processedAt);
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
// Update also status of newsletter if necessary