Allow WooCommerce and WP segments in shortcodes settings
[MAILPOET-3419]
This commit is contained in:
committed by
Veljko V
parent
cd776fe0cf
commit
ab5720b4ca
@@ -8,10 +8,12 @@ type Props = {
|
|||||||
value: string[];
|
value: string[];
|
||||||
placeholder?: string;
|
placeholder?: string;
|
||||||
setValue: (x: string[]) => void;
|
setValue: (x: string[]) => void;
|
||||||
|
segmentsSelector?: 'getDefaultSegments' | 'getSegments';
|
||||||
}
|
}
|
||||||
|
|
||||||
export default (props: Props) => {
|
export default (props: Props) => {
|
||||||
const segments = useSelector('getSegments')().map((segment) => ({
|
const selector = props.segmentsSelector ? props.segmentsSelector : 'getDefaultSegments';
|
||||||
|
const segments = useSelector(selector)().map((segment) => ({
|
||||||
value: segment.id,
|
value: segment.id,
|
||||||
label: segment.name,
|
label: segment.name,
|
||||||
count: segment.subscribers,
|
count: segment.subscribers,
|
||||||
|
@@ -38,6 +38,7 @@ export default function Shortcode({ name, title, description }: Props) {
|
|||||||
setValue={setSegments}
|
setValue={setSegments}
|
||||||
id={`${name}-shortcode-segments`}
|
id={`${name}-shortcode-segments`}
|
||||||
placeholder={t('leaveEmptyToDisplayAll')}
|
placeholder={t('leaveEmptyToDisplayAll')}
|
||||||
|
segmentsSelector="getSegments"
|
||||||
/>
|
/>
|
||||||
</Inputs>
|
</Inputs>
|
||||||
</>
|
</>
|
||||||
|
@@ -51,6 +51,10 @@ export function getSegments(state: State) {
|
|||||||
return state.segments;
|
return state.segments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getDefaultSegments(state: State) {
|
||||||
|
return state.segments.filter((seg) => seg.type === 'default');
|
||||||
|
}
|
||||||
|
|
||||||
export function getPages(state: State) {
|
export function getPages(state: State) {
|
||||||
return state.pages;
|
return state.pages;
|
||||||
}
|
}
|
||||||
|
@@ -139,6 +139,7 @@ type Segment = {
|
|||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
subscribers: string;
|
subscribers: string;
|
||||||
|
type: 'default' | 'wp_users' | 'woocommerce_users' | 'dynamic';
|
||||||
}
|
}
|
||||||
type Page = {
|
type Page = {
|
||||||
id: number;
|
id: number;
|
||||||
|
@@ -5,7 +5,6 @@ namespace MailPoet\AdminPages\Pages;
|
|||||||
use MailPoet\AdminPages\PageRenderer;
|
use MailPoet\AdminPages\PageRenderer;
|
||||||
use MailPoet\Config\Installer;
|
use MailPoet\Config\Installer;
|
||||||
use MailPoet\Config\ServicesChecker;
|
use MailPoet\Config\ServicesChecker;
|
||||||
use MailPoet\Entities\SegmentEntity;
|
|
||||||
use MailPoet\Segments\SegmentsSimpleListRepository;
|
use MailPoet\Segments\SegmentsSimpleListRepository;
|
||||||
use MailPoet\Settings\Hosts;
|
use MailPoet\Settings\Hosts;
|
||||||
use MailPoet\Settings\Pages;
|
use MailPoet\Settings\Pages;
|
||||||
@@ -72,7 +71,7 @@ class Settings {
|
|||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'settings' => $settings,
|
'settings' => $settings,
|
||||||
'segments' => $this->segmentsListRepository->getListWithSubscribedSubscribersCounts([SegmentEntity::TYPE_DEFAULT]),
|
'segments' => $this->segmentsListRepository->getListWithSubscribedSubscribersCounts(),
|
||||||
'premium_key_valid' => !empty($premiumKeyValid),
|
'premium_key_valid' => !empty($premiumKeyValid),
|
||||||
'mss_key_valid' => !empty($mpApiKeyValid),
|
'mss_key_valid' => !empty($mpApiKeyValid),
|
||||||
'pages' => Pages::getAll(),
|
'pages' => Pages::getAll(),
|
||||||
|
Reference in New Issue
Block a user