diff --git a/assets/js/src/form_editor/components/form_settings/basic_settings_panel.jsx b/assets/js/src/form_editor/components/form_settings/basic_settings_panel.jsx index 5fa083a5be..2d6e361937 100644 --- a/assets/js/src/form_editor/components/form_settings/basic_settings_panel.jsx +++ b/assets/js/src/form_editor/components/form_settings/basic_settings_panel.jsx @@ -108,7 +108,7 @@ const BasicSettingsPanel = ({ onToggle, isOpened }) => { values: segments, multiple: true, placeholder: MailPoet.I18n.t('settingsPleaseSelectList'), - getLabel: (seg) => (`${seg.name} (${parseInt(seg.subscribers, 10).toLocaleString()})`), + getLabel: (seg) => (`${seg.name} (~${parseInt(seg.subscribers, 10).toLocaleString()})`), filter: (seg) => (!!(!seg.deleted_at && seg.type === 'default')), }} /> diff --git a/assets/js/src/newsletters/send/notification.jsx b/assets/js/src/newsletters/send/notification.jsx index d8483bb80f..87cfb837c7 100644 --- a/assets/js/src/newsletters/send/notification.jsx +++ b/assets/js/src/newsletters/send/notification.jsx @@ -60,7 +60,7 @@ let fields = [ return segment.name; }, getCount: function getCount(segment) { - return parseInt(segment.subscribers, 10).toLocaleString(); + return `~${parseInt(segment.subscribers, 10).toLocaleString()}`; }, transformChangedValue: function transformChangedValue(segmentIds) { const allSegments = this.getItems(); diff --git a/assets/js/src/newsletters/send/standard.jsx b/assets/js/src/newsletters/send/standard.jsx index 7476c8d4cc..557caf062d 100644 --- a/assets/js/src/newsletters/send/standard.jsx +++ b/assets/js/src/newsletters/send/standard.jsx @@ -160,7 +160,7 @@ let fields = [ return segment.name; }, getCount: function getCount(segment) { - return parseInt(segment.subscribers, 10).toLocaleString(); + return `~${parseInt(segment.subscribers, 10).toLocaleString()}`; }, transformChangedValue: function transformChangedValue(segmentIds) { const allSegments = this.getItems(); diff --git a/assets/js/src/newsletters/types/welcome/scheduling.jsx b/assets/js/src/newsletters/types/welcome/scheduling.jsx index 146d047236..9f40b710b0 100644 --- a/assets/js/src/newsletters/types/welcome/scheduling.jsx +++ b/assets/js/src/newsletters/types/welcome/scheduling.jsx @@ -27,7 +27,7 @@ const segmentField = { placeholder: MailPoet.I18n.t('selectSegmentPlaceholder'), forceSelect2: true, values: availableSegments, - getCount: (segment) => parseInt(segment.subscribers, 10).toLocaleString(), + getCount: (segment) => `~${parseInt(segment.subscribers, 10).toLocaleString()}`, getLabel: (segment) => segment.name, getValue: (segment) => segment.id, }; diff --git a/assets/js/src/settings/components/segments_select.tsx b/assets/js/src/settings/components/segments_select.tsx index 33853ad67f..7594527a66 100644 --- a/assets/js/src/settings/components/segments_select.tsx +++ b/assets/js/src/settings/components/segments_select.tsx @@ -16,7 +16,7 @@ export default (props: Props) => { const segments = useSelector(selector)().map((segment) => ({ value: segment.id, label: segment.name, - count: segment.subscribers, + count: `~${segment.subscribers}`, })); const defaultValue = segments.filter((segment) => props.value.includes(segment.value)); diff --git a/lib/Models/Subscriber.php b/lib/Models/Subscriber.php index 05a9955ac7..888c8f022a 100644 --- a/lib/Models/Subscriber.php +++ b/lib/Models/Subscriber.php @@ -168,7 +168,7 @@ class Subscriber extends Model { ->whereNull('deleted_at') ->count(); $subscribersWithoutSegmentLabel = sprintf( - WPFunctions::get()->__('Subscribers without a list (%s)', 'mailpoet'), + WPFunctions::get()->__('Subscribers without a list (~%s)', 'mailpoet'), number_format($subscribersWithoutSegment) ); @@ -186,7 +186,7 @@ class Subscriber extends Model { } $label = sprintf( - '%s (%s)', + '%s (~%s)', $segment->name, number_format($subscribersCount) ); diff --git a/lib/Subscribers/SubscriberListingRepository.php b/lib/Subscribers/SubscriberListingRepository.php index 5a6d3a981c..005e798349 100644 --- a/lib/Subscribers/SubscriberListingRepository.php +++ b/lib/Subscribers/SubscriberListingRepository.php @@ -234,7 +234,7 @@ class SubscriberListingRepository extends ListingRepository { $subscribersWithoutSegment = $subscribersWithoutSegmentQuery->getQuery()->getSingleScalarResult(); $subscribersWithoutSegmentLabel = sprintf( - WPFunctions::get()->__('Subscribers without a list (%s)', 'mailpoet'), + WPFunctions::get()->__('Subscribers without a list (~%s)', 'mailpoet'), number_format((float)$subscribersWithoutSegment) ); @@ -261,7 +261,7 @@ class SubscriberListingRepository extends ListingRepository { $segmentList = []; foreach ($queryBuilder->getQuery()->getResult() as $item) { $segmentList[] = [ - 'label' => sprintf('%s (%s)', $item['name'], number_format((float)$item['subscribersCount'])), + 'label' => sprintf('%s (~%s)', $item['name'], number_format((float)$item['subscribersCount'])), 'value' => $item['id'], ]; } @@ -281,7 +281,7 @@ class SubscriberListingRepository extends ListingRepository { continue; } $segmentList[] = [ - 'label' => sprintf('%s (%s)', $segment->getName(), number_format((float)$count)), + 'label' => sprintf('%s (~%s)', $segment->getName(), number_format((float)$count)), 'value' => $segment->getId(), ]; } diff --git a/tests/integration/API/JSON/v1/SubscribersTest.php b/tests/integration/API/JSON/v1/SubscribersTest.php index fc7097921f..03a25db11c 100644 --- a/tests/integration/API/JSON/v1/SubscribersTest.php +++ b/tests/integration/API/JSON/v1/SubscribersTest.php @@ -364,7 +364,7 @@ class SubscribersTest extends \MailPoetTest { 'segment' => $dynamicSegment->getId(), ], ]); - expect($response->meta['filters']['segment'])->contains(['value' => $dynamicSegment->getId(), 'label' => 'Dynamic (1)']); + expect($response->meta['filters']['segment'])->contains(['value' => $dynamicSegment->getId(), 'label' => 'Dynamic (~1)']); $this->tester->deleteWordPressUser($wpUserEmail); } diff --git a/tests/integration/Subscribers/SubscriberListingRepositoryTest.php b/tests/integration/Subscribers/SubscriberListingRepositoryTest.php index 5c5f41f22d..8424acd9e4 100644 --- a/tests/integration/Subscribers/SubscriberListingRepositoryTest.php +++ b/tests/integration/Subscribers/SubscriberListingRepositoryTest.php @@ -69,8 +69,8 @@ class SubscriberListingRepositoryTest extends \MailPoetTest { $filters = $this->repository->getFilters($this->getListingDefinition()); expect($filters['segment'])->count(3); expect($filters['segment'][0]['label'])->equals('All Lists'); - expect($filters['segment'][1]['label'])->equals('Subscribers without a list (3)'); - expect($filters['segment'][2]['label'])->endsWith('(2)'); + expect($filters['segment'][1]['label'])->equals('Subscribers without a list (~3)'); + expect($filters['segment'][2]['label'])->endsWith('(~2)'); } public function testItBuildsGroups() {