diff --git a/mailpoet/lib/Form/FormsRepository.php b/mailpoet/lib/Form/FormsRepository.php index 181a4f5608..f0e5eebd18 100644 --- a/mailpoet/lib/Form/FormsRepository.php +++ b/mailpoet/lib/Form/FormsRepository.php @@ -69,12 +69,19 @@ class FormsRepository extends Repository { return 0; } - return $this->entityManager->createQueryBuilder() + $result = $this->entityManager->createQueryBuilder() ->update(FormEntity::class, 'f') ->set('f.deletedAt', 'CURRENT_TIMESTAMP()') ->where('f.id IN (:ids)') ->setParameter('ids', $ids) ->getQuery()->execute(); + + // update was done via DQL, make sure the entities are also refreshed in the entity manager + $this->refreshAll(function (FormEntity $entity) use ($ids) { + return in_array($entity->getId(), $ids, true); + }); + + return $result; } public function bulkRestore(array $ids): int { @@ -82,13 +89,20 @@ class FormsRepository extends Repository { return 0; } - return $this->entityManager->createQueryBuilder() + $result = $this->entityManager->createQueryBuilder() ->update(FormEntity::class, 'f') ->set('f.deletedAt', ':deletedAt') ->where('f.id IN (:ids)') ->setParameter('deletedAt', null) ->setParameter('ids', $ids) ->getQuery()->execute(); + + // update was done via DQL, make sure the entities are also refreshed in the entity manager + $this->refreshAll(function (FormEntity $entity) use ($ids) { + return in_array($entity->getId(), $ids, true); + }); + + return $result; } public function bulkDelete(array $ids): int { diff --git a/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php b/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php index 3d8fe6387f..74b4ec1eb3 100644 --- a/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php +++ b/mailpoet/lib/Newsletter/Sending/ScheduledTaskSubscribersRepository.php @@ -94,6 +94,11 @@ class ScheduledTaskSubscribersRepository extends Repository { ->setParameter('task', $task) ->getQuery() ->execute(); + + // update was done via DQL, make sure the entities are also refreshed in the entity manager + $this->refreshAll(function (ScheduledTaskSubscriberEntity $entity) use ($task, $subscriberIds) { + return $entity->getTask() === $task && in_array($entity->getSubscriberId(), $subscriberIds, true); + }); } $this->checkCompleted($task); diff --git a/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php b/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php index 6b0096e6f5..bab5f0eb05 100644 --- a/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php +++ b/mailpoet/lib/Newsletter/Sending/ScheduledTasksRepository.php @@ -308,6 +308,11 @@ class ScheduledTasksRepository extends Repository { ->setParameter('ids', $ids, Connection::PARAM_INT_ARRAY) ->getQuery() ->execute(); + + // update was done via DQL, make sure the entities are also refreshed in the entity manager + $this->refreshAll(function (ScheduledTaskEntity $entity) use ($ids) { + return in_array($entity->getId(), $ids, true); + }); } /**