diff --git a/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber.tsx b/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber.tsx index ac7c255895..e43135cf56 100644 --- a/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber.tsx +++ b/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber.tsx @@ -65,6 +65,18 @@ export function validateSubscriber(formItems: WordpressRoleFormItem): boolean { ) { return validateTextField(formItems); } + if ( + [ + SubscriberActionTypes.SUBSCRIBER_LAST_ENGAGEMENT_DATE, + SubscriberActionTypes.SUBSCRIBER_LAST_PURCHASE_DATE, + SubscriberActionTypes.SUBSCRIBER_LAST_OPEN_DATE, + SubscriberActionTypes.SUBSCRIBER_LAST_CLICK_DATE, + SubscriberActionTypes.SUBSCRIBER_LAST_PAGE_VIEW_DATE, + ].includes(formItems.action as SubscriberActionTypes) + ) { + return validateDateField(formItems); + } + if (formItems.action === SubscriberActionTypes.SUBSCRIBED_VIA_FORM) { return validateSubscribedViaForm(formItems); } @@ -90,6 +102,11 @@ const componentsMap = { [SubscriberActionTypes.SUBSCRIBER_LAST_NAME]: TextField, [SubscriberActionTypes.SUBSCRIBER_EMAIL]: TextField, [SubscriberActionTypes.SUBSCRIBED_VIA_FORM]: SubscribedViaForm, + [SubscriberActionTypes.SUBSCRIBER_LAST_ENGAGEMENT_DATE]: DateFields, + [SubscriberActionTypes.SUBSCRIBER_LAST_PURCHASE_DATE]: DateFields, + [SubscriberActionTypes.SUBSCRIBER_LAST_OPEN_DATE]: DateFields, + [SubscriberActionTypes.SUBSCRIBER_LAST_CLICK_DATE]: DateFields, + [SubscriberActionTypes.SUBSCRIBER_LAST_PAGE_VIEW_DATE]: DateFields, }; export function SubscriberFields({ filterIndex }: FilterProps): JSX.Element { diff --git a/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber_options.ts b/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber_options.ts index 9fed9ca20c..26a09caba0 100644 --- a/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber_options.ts +++ b/mailpoet/assets/js/src/segments/dynamic/dynamic_segments_filters/subscriber_options.ts @@ -22,6 +22,31 @@ export const SubscriberSegmentOptions = [ label: MailPoet.I18n.t('lastName').toLowerCase(), group: SegmentTypes.WordPressRole, }, + { + value: SubscriberActionTypes.SUBSCRIBER_LAST_CLICK_DATE, + label: MailPoet.I18n.t('lastClickDate').toLowerCase(), + group: SegmentTypes.WordPressRole, + }, + { + value: SubscriberActionTypes.SUBSCRIBER_LAST_ENGAGEMENT_DATE, + label: MailPoet.I18n.t('lastEngagementDate').toLowerCase(), + group: SegmentTypes.WordPressRole, + }, + { + value: SubscriberActionTypes.SUBSCRIBER_LAST_OPEN_DATE, + label: MailPoet.I18n.t('lastOpenDate').toLowerCase(), + group: SegmentTypes.WordPressRole, + }, + { + value: SubscriberActionTypes.SUBSCRIBER_LAST_PAGE_VIEW_DATE, + label: MailPoet.I18n.t('lastPageViewDate').toLowerCase(), + group: SegmentTypes.WordPressRole, + }, + { + value: SubscriberActionTypes.SUBSCRIBER_LAST_PURCHASE_DATE, + label: MailPoet.I18n.t('lastPurchaseDate').toLowerCase(), + group: SegmentTypes.WordPressRole, + }, { value: SubscriberActionTypes.MAILPOET_CUSTOM_FIELD, label: MailPoet.I18n.t('mailpoetCustomField'), diff --git a/mailpoet/assets/js/src/segments/dynamic/types.ts b/mailpoet/assets/js/src/segments/dynamic/types.ts index 8b2690a2ac..4560e799c4 100644 --- a/mailpoet/assets/js/src/segments/dynamic/types.ts +++ b/mailpoet/assets/js/src/segments/dynamic/types.ts @@ -27,6 +27,11 @@ export enum SubscriberActionTypes { SUBSCRIBER_FIRST_NAME = 'subscriberFirstName', SUBSCRIBER_LAST_NAME = 'subscriberLastName', SUBSCRIBER_EMAIL = 'subscriberEmail', + SUBSCRIBER_LAST_CLICK_DATE = 'lastClickDate', + SUBSCRIBER_LAST_ENGAGEMENT_DATE = 'lastEngagementDate', + SUBSCRIBER_LAST_PURCHASE_DATE = 'lastPurchaseDate', + SUBSCRIBER_LAST_OPEN_DATE = 'lastOpenDate', + SUBSCRIBER_LAST_PAGE_VIEW_DATE = 'lastPageViewDate', SUBSCRIBER_TAG = 'subscriberTag', SUBSCRIBED_VIA_FORM = 'subscribedViaForm', } diff --git a/mailpoet/views/segments/translations.html b/mailpoet/views/segments/translations.html index 583627d3cc..78623b5b85 100644 --- a/mailpoet/views/segments/translations.html +++ b/mailpoet/views/segments/translations.html @@ -132,6 +132,13 @@ 'lastName': __('Last name'), 'email': __('Email'), + 'lastClickDate': __('Last click date'), + 'lastEngagementDate': __('Last engagement date'), + 'lastOpenDate': __('Last open date'), + 'lastPageViewDate': __('Last page view date'), + 'lastPurchaseDate': __('Last purchase date'), + 'lastSendingDate': __('Last sending date'), + 'before': _x('before', 'Meaning: "Subscriber subscribed before April"'), 'after': _x('after', 'Meaning: "Subscriber subscribed after April'), 'onOrBefore': __('on or before'),