Aucune description

StatisticsFormsRepository.php 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace MailPoet\Statistics;
  3. if (!defined('ABSPATH')) exit;
  4. use MailPoet\Doctrine\Repository;
  5. use MailPoet\Entities\FormEntity;
  6. use MailPoet\Entities\StatisticsFormEntity;
  7. use MailPoet\Entities\SubscriberEntity;
  8. /**
  9. * @extends Repository<StatisticsFormEntity>
  10. */
  11. class StatisticsFormsRepository extends Repository {
  12. protected function getEntityClassName() {
  13. return StatisticsFormEntity::class;
  14. }
  15. public function getTotalSignups(int $formId): int {
  16. return $this->countBy(['form' => $formId]);
  17. }
  18. public function record(FormEntity $form, SubscriberEntity $subscriber): ?StatisticsFormEntity {
  19. if ($form->getId() > 0 && $subscriber->getId() > 0) {
  20. // check if we already have a record for today
  21. $statisticsForm = $this->findOneBy(['form' => $form, 'subscriber' => $subscriber]);
  22. if (!$statisticsForm) {
  23. // create a new entry
  24. $statisticsForm = new StatisticsFormEntity($form, $subscriber);
  25. $this->persist($statisticsForm);
  26. $this->flush();
  27. }
  28. return $statisticsForm;
  29. }
  30. return null;
  31. }
  32. }