REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 4.42 KB
Close
/home/nshryvcy/himaltourism.com/wp-content/plugins/mailpoet/lib/API/JSON/ResponseBuilders/DynamicSegmentsResponseBuilder.php
Text
Base64
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\API\JSON\ResponseBuilders; if (!defined('ABSPATH')) exit; use MailPoet\Entities\DynamicSegmentFilterData; use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SubscriberEntity; use MailPoet\Segments\SegmentDependencyValidator; use MailPoet\Segments\SegmentSubscribersRepository; use MailPoet\Subscribers\SubscribersCountsController; use MailPoet\WP\Functions; class DynamicSegmentsResponseBuilder { const DATE_FORMAT = 'Y-m-d H:i:s'; /** @var SegmentsResponseBuilder */ private $segmentsResponseBuilder; /** @var Functions */ private $wp; /** @var SegmentSubscribersRepository */ private $segmentSubscriberRepository; /** @var SegmentDependencyValidator */ private $segmentDependencyValidator; /** @var SubscribersCountsController */ private $subscribersCountsController; public function __construct( Functions $wp, SegmentSubscribersRepository $segmentSubscriberRepository, SegmentsResponseBuilder $segmentsResponseBuilder, SegmentDependencyValidator $segmentDependencyValidator, SubscribersCountsController $subscribersCountsController ) { $this->segmentsResponseBuilder = $segmentsResponseBuilder; $this->segmentSubscriberRepository = $segmentSubscriberRepository; $this->wp = $wp; $this->segmentDependencyValidator = $segmentDependencyValidator; $this->subscribersCountsController = $subscribersCountsController; } public function build(SegmentEntity $segmentEntity) { $data = $this->segmentsResponseBuilder->build($segmentEntity); $data = $this->addMissingPluginProperties($segmentEntity, $data); $dynamicFilters = $segmentEntity->getDynamicFilters(); $filters = []; foreach ($dynamicFilters as $dynamicFilter) { $filter = $dynamicFilter->getFilterData()->getData(); $filter['id'] = $dynamicFilter->getId(); $filter['segmentType'] = $dynamicFilter->getFilterData()->getFilterType(); // We need to add filterType with key segmentType due to BC $filter['action'] = $dynamicFilter->getFilterData()->getAction(); if (isset($filter['country_code']) && !is_array($filter['country_code'])) { // Convert to multiple values filter $filter['country_code'] = [$filter['country_code']]; } if (isset($filter['wordpressRole']) && !is_array($filter['wordpressRole'])) { // new filters are always array, they support multiple values, the old didn't convert old filters to new format $filter['wordpressRole'] = [$filter['wordpressRole']]; } if (($filter['segmentType'] === DynamicSegmentFilterData::TYPE_EMAIL) && isset($filter['newsletter_id'])) { $filter['newsletter_id'] = intval($filter['newsletter_id']); } $filters[] = $filter; } $data['filters'] = $filters; return $data; } public function buildForListing(array $segments): array { $data = []; foreach ($segments as $segment) { $data[] = $this->buildListingItem($segment); } return $data; } private function addMissingPluginProperties(SegmentEntity $segment, array $data): array { $missingPlugins = $this->segmentDependencyValidator->getMissingPluginsBySegment($segment); if ($missingPlugins) { $missingPlugin = reset($missingPlugins); $data['is_plugin_missing'] = true; $data['missing_plugin_message'] = $this->segmentDependencyValidator->getCustomErrorMessage($missingPlugin) ?: sprintf( // translators: %s is the name of the missing plugin. __('Activate the %s plugin to see the number of subscribers and enable the editing of this segment.', 'mailpoet'), $missingPlugin ); } else { $data['is_plugin_missing'] = false; $data['missing_plugin_message'] = null; } return $data; } private function buildListingItem(SegmentEntity $segment): array { $data = $this->segmentsResponseBuilder->build($segment); $data = $this->addMissingPluginProperties($segment, $data); $data['subscribers_url'] = $this->wp->adminUrl( 'admin.php?page=mailpoet-subscribers#/filter[segment=' . $segment->getId() . ']' ); $segmentStatisticsCount = $this->subscribersCountsController->getSegmentStatisticsCount($segment); $data['count_all'] = $segmentStatisticsCount['all']; $data['count_subscribed'] = $segmentStatisticsCount[SubscriberEntity::STATUS_SUBSCRIBED]; return $data; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 9
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
CustomFieldsResponseBuilder.php
955 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
DynamicSegmentsResponseBuilder.php
4.42 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
FormsResponseBuilder.php
1.55 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
NewslettersResponseBuilder.php
12.75 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
NewsletterTemplatesResponseBuilder.php
1.42 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
ScheduledTaskSubscriberResponseBuilder.php
1.10 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
SegmentsResponseBuilder.php
1.96 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
SubscribersResponseBuilder.php
7.80 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
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).