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[];
|
||||
placeholder?: string;
|
||||
setValue: (x: string[]) => void;
|
||||
segmentsSelector?: 'getDefaultSegments' | 'getSegments';
|
||||
}
|
||||
|
||||
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,
|
||||
label: segment.name,
|
||||
count: segment.subscribers,
|
||||
|
@@ -38,6 +38,7 @@ export default function Shortcode({ name, title, description }: Props) {
|
||||
setValue={setSegments}
|
||||
id={`${name}-shortcode-segments`}
|
||||
placeholder={t('leaveEmptyToDisplayAll')}
|
||||
segmentsSelector="getSegments"
|
||||
/>
|
||||
</Inputs>
|
||||
</>
|
||||
|
@@ -51,6 +51,10 @@ export function getSegments(state: State) {
|
||||
return state.segments;
|
||||
}
|
||||
|
||||
export function getDefaultSegments(state: State) {
|
||||
return state.segments.filter((seg) => seg.type === 'default');
|
||||
}
|
||||
|
||||
export function getPages(state: State) {
|
||||
return state.pages;
|
||||
}
|
||||
|
@@ -139,6 +139,7 @@ type Segment = {
|
||||
id: string;
|
||||
name: string;
|
||||
subscribers: string;
|
||||
type: 'default' | 'wp_users' | 'woocommerce_users' | 'dynamic';
|
||||
}
|
||||
type Page = {
|
||||
id: number;
|
||||
|
@@ -5,7 +5,6 @@ namespace MailPoet\AdminPages\Pages;
|
||||
use MailPoet\AdminPages\PageRenderer;
|
||||
use MailPoet\Config\Installer;
|
||||
use MailPoet\Config\ServicesChecker;
|
||||
use MailPoet\Entities\SegmentEntity;
|
||||
use MailPoet\Segments\SegmentsSimpleListRepository;
|
||||
use MailPoet\Settings\Hosts;
|
||||
use MailPoet\Settings\Pages;
|
||||
@@ -72,7 +71,7 @@ class Settings {
|
||||
|
||||
$data = [
|
||||
'settings' => $settings,
|
||||
'segments' => $this->segmentsListRepository->getListWithSubscribedSubscribersCounts([SegmentEntity::TYPE_DEFAULT]),
|
||||
'segments' => $this->segmentsListRepository->getListWithSubscribedSubscribersCounts(),
|
||||
'premium_key_valid' => !empty($premiumKeyValid),
|
||||
'mss_key_valid' => !empty($mpApiKeyValid),
|
||||
'pages' => Pages::getAll(),
|
||||
|
Reference in New Issue
Block a user