REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 3.19 KB
Close
/home/nshryvcy/himaltourism.com/wp-content/plugins/mailpoet/lib/Statistics/StatisticsClicksRepository.php
Text
Base64
<?php declare(strict_types = 1); namespace MailPoet\Statistics; if (!defined('ABSPATH')) exit; use MailPoet\Doctrine\Repository; use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\NewsletterLinkEntity; use MailPoet\Entities\SendingQueueEntity; use MailPoet\Entities\StatisticsClickEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\UserAgentEntity; use MailPoetVendor\Doctrine\ORM\QueryBuilder; /** * @extends Repository<StatisticsClickEntity> */ class StatisticsClicksRepository extends Repository { protected function getEntityClassName(): string { return StatisticsClickEntity::class; } public function createOrUpdateClickCount( NewsletterLinkEntity $link, SubscriberEntity $subscriber, NewsletterEntity $newsletter, SendingQueueEntity $queue, ?UserAgentEntity $userAgent ): StatisticsClickEntity { $statistics = $this->findOneBy([ 'link' => $link, 'newsletter' => $newsletter, 'subscriber' => $subscriber, 'queue' => $queue, ]); if (!$statistics instanceof StatisticsClickEntity) { $statistics = new StatisticsClickEntity($newsletter, $queue, $subscriber, $link, 1); if ($userAgent) { $statistics->setUserAgent($userAgent); $statistics->setUserAgentType($userAgent->getUserAgentType()); } $this->persist($statistics); } else { $statistics->setCount($statistics->getCount() + 1); } return $statistics; } public function getAllForSubscriber(SubscriberEntity $subscriber): QueryBuilder { return $this->entityManager->createQueryBuilder() ->select('clicks.id id, queue.newsletterRenderedSubject, clicks.createdAt, link.url, userAgent.userAgent') ->from(StatisticsClickEntity::class, 'clicks') ->join('clicks.queue', 'queue') ->join('clicks.link', 'link') ->leftJoin('clicks.userAgent', 'userAgent') ->where('clicks.subscriber = :subscriber') ->orderBy('link.url') ->setParameter('subscriber', $subscriber->getId()); } /** * @param SubscriberEntity $subscriber * @param \DateTimeInterface $from * @param \DateTimeInterface $to * @return StatisticsClickEntity[] */ public function findLatestPerNewsletterBySubscriber(SubscriberEntity $subscriber, \DateTimeInterface $from, \DateTimeInterface $to): array { // subquery to find latest click IDs for each newsletter $latestClickIdsPerNewsletterQuery = $this->entityManager->createQueryBuilder() ->select('MAX(clicks.id)') ->from(StatisticsClickEntity::class, 'clicks') ->where('clicks.subscriber = :subscriber') ->andWhere('clicks.updatedAt > :from') ->andWhere('clicks.updatedAt < :to') ->groupBy('clicks.newsletter'); $expr = $this->entityManager->getExpressionBuilder(); return $this->entityManager->createQueryBuilder() ->select('c') ->from(StatisticsClickEntity::class, 'c') ->where( $expr->in( 'c.id', $latestClickIdsPerNewsletterQuery->getDQL() ) ) ->setParameter('subscriber', $subscriber) ->setParameter('from', $from->format('Y-m-d H:i:s')) ->setParameter('to', $to->format('Y-m-d H:i:s')) ->getQuery() ->getResult(); } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 9
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Track
DIR
-
drwxr-xr-x
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
GATracking.php
3.26 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.php
0 B
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
StatisticsBouncesRepository.php
390 B
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
StatisticsClicksRepository.php
3.19 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
StatisticsFormsRepository.php
1.16 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
StatisticsOpensRepository.php
3.95 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
StatisticsUnsubscribesRepository.php
1.37 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
StatisticsWooCommercePurchasesRepository.php
3.40 KB
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
UserAgentsRepository.php
701 B
lrw-r--r--
2023-04-04 05:35:40
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).