Load Custom Fields for segment form
[MAILPOET-3220]
This commit is contained in:
@ -30,6 +30,15 @@ interface SegmentFormDataWindow extends Window {
|
||||
id: string;
|
||||
}[];
|
||||
|
||||
mailpoet_custom_fields: {
|
||||
created_at: string;
|
||||
id: number;
|
||||
name: string;
|
||||
type: string;
|
||||
params: Record<string, unknown>;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
mailpoet_can_use_woocommerce_subscriptions: boolean;
|
||||
mailpoet_woocommerce_currency_symbol: string;
|
||||
}
|
||||
@ -45,4 +54,5 @@ export const SegmentFormData = {
|
||||
canUseWooSubscriptions: window.mailpoet_can_use_woocommerce_subscriptions,
|
||||
wooCurrencySymbol: window.mailpoet_woocommerce_currency_symbol,
|
||||
wooCountries: window.mailpoet_woocommerce_countries,
|
||||
customFieldsList: window.mailpoet_custom_fields,
|
||||
};
|
||||
|
@ -3,7 +3,9 @@
|
||||
namespace MailPoet\AdminPages\Pages;
|
||||
|
||||
use MailPoet\AdminPages\PageRenderer;
|
||||
use MailPoet\API\JSON\ResponseBuilders\CustomFieldsResponseBuilder;
|
||||
use MailPoet\Config\ServicesChecker;
|
||||
use MailPoet\CustomFields\CustomFieldsRepository;
|
||||
use MailPoet\Entities\DynamicSegmentFilterData;
|
||||
use MailPoet\Listing\PageLimit;
|
||||
use MailPoet\Models\Newsletter;
|
||||
@ -43,6 +45,12 @@ class Segments {
|
||||
/** @var SegmentDependencyValidator */
|
||||
private $segmentDependencyValidator;
|
||||
|
||||
/** @var CustomFieldsRepository */
|
||||
private $customFieldsRepository;
|
||||
|
||||
/** @var CustomFieldsResponseBuilder */
|
||||
private $customFieldsResponseBuilder;
|
||||
|
||||
public function __construct(
|
||||
PageRenderer $pageRenderer,
|
||||
PageLimit $listingPageLimit,
|
||||
@ -52,6 +60,8 @@ class Segments {
|
||||
WPPostListLoader $wpPostListLoader,
|
||||
SubscribersFeature $subscribersFeature,
|
||||
SettingsController $settings,
|
||||
CustomFieldsRepository $customFieldsRepository,
|
||||
CustomFieldsResponseBuilder $customFieldsResponseBuilder,
|
||||
SegmentDependencyValidator $segmentDependencyValidator
|
||||
) {
|
||||
$this->pageRenderer = $pageRenderer;
|
||||
@ -63,6 +73,8 @@ class Segments {
|
||||
$this->wpPostListLoader = $wpPostListLoader;
|
||||
$this->settings = $settings;
|
||||
$this->segmentDependencyValidator = $segmentDependencyValidator;
|
||||
$this->customFieldsRepository = $customFieldsRepository;
|
||||
$this->customFieldsResponseBuilder = $customFieldsResponseBuilder;
|
||||
}
|
||||
|
||||
public function render() {
|
||||
@ -77,6 +89,8 @@ class Segments {
|
||||
$data['subscriber_count'] = $this->subscribersFeature->getSubscribersCount();
|
||||
$data['has_premium_support'] = $this->subscribersFeature->hasPremiumSupport();
|
||||
$data['mss_key_invalid'] = ($this->servicesChecker->isMailPoetAPIKeyValid() === false);
|
||||
$customFields = $this->customFieldsRepository->findAll();
|
||||
$data['custom_fields'] = $this->customFieldsResponseBuilder->buildBatch($customFields);
|
||||
|
||||
$wpRoles = $this->wp->getEditableRoles();
|
||||
$data['wordpress_editable_roles_list'] = array_map(function($roleId, $role) {
|
||||
|
@ -21,6 +21,7 @@
|
||||
var mailpoet_has_valid_api_key = <%= has_valid_api_key ? 'true' : 'false' %>;
|
||||
var mailpoet_mss_key_invalid = <%= mss_key_invalid ? 'true' : 'false' %>;
|
||||
var mailpoet_subscribers_count = <%= subscriber_count %>;
|
||||
var mailpoet_custom_fields = <%= json_encode(custom_fields) %>;
|
||||
var mailpoet_has_premium_support = <%= has_premium_support ? 'true' : 'false' %>;
|
||||
var wordpress_editable_roles_list = <%= json_encode(wordpress_editable_roles_list) %>;
|
||||
var mailpoet_newsletters_list = <%= json_encode(newsletters_list) %>;
|
||||
|
Reference in New Issue
Block a user