Remove dynamic segments code
[MAILPOET-2480]
This commit is contained in:
@ -1,21 +0,0 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { HashRouter, Switch, Route } from 'react-router-dom';
|
||||
|
||||
import { GlobalContext, useGlobalContextValue } from 'context/index.jsx';
|
||||
import Notices from 'notices/notices.jsx';
|
||||
|
||||
const App = () => (
|
||||
<GlobalContext.Provider value={useGlobalContextValue(window)}>
|
||||
<HashRouter>
|
||||
<Notices />
|
||||
<Switch />
|
||||
</HashRouter>
|
||||
</GlobalContext.Provider>
|
||||
);
|
||||
|
||||
const container = document.getElementById('dynamic_segments_container');
|
||||
|
||||
if (container) {
|
||||
ReactDOM.render(<App />, container);
|
||||
}
|
@ -8,7 +8,6 @@ import 'newsletters/automatic_emails.jsx'; // side effect - sets up automatic em
|
||||
import 'subscribers/subscribers.jsx'; // side effect - renders ReactDOM to document
|
||||
import 'newsletters/newsletters.jsx'; // side effect - renders ReactDOM to window
|
||||
import 'segments/segments.jsx'; // side effect - renders ReactDOM to document
|
||||
import 'dynamic_segments/dynamic_segments.jsx'; // side effect - renders ReactDOM to document
|
||||
import 'old_settings/settings.jsx'; // side effect - renders ReactDOM to document
|
||||
import 'forms/forms.jsx'; // side effect - renders ReactDOM to document
|
||||
import 'old_settings/tabs.js'; // side effect - assigns to MailPoet.Router, executes code on doc ready
|
||||
|
@ -1,75 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace MailPoet\AdminPages\Pages;
|
||||
|
||||
use MailPoet\AdminPages\PageRenderer;
|
||||
use MailPoet\Listing\PageLimit;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\WooCommerce\Helper as WooCommerceHelper;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
|
||||
class DynamicSegments {
|
||||
/** @var PageRenderer */
|
||||
private $pageRenderer;
|
||||
|
||||
/** @var PageLimit */
|
||||
private $listingPageLimit;
|
||||
|
||||
/** @var WPFunctions */
|
||||
private $wp;
|
||||
|
||||
/** @var WooCommerceHelper */
|
||||
private $woocommerceHelper;
|
||||
|
||||
public function __construct(
|
||||
PageRenderer $pageRenderer,
|
||||
PageLimit $listingPageLimit,
|
||||
WPFunctions $wp,
|
||||
WooCommerceHelper $woocommerceHelper
|
||||
) {
|
||||
$this->pageRenderer = $pageRenderer;
|
||||
$this->listingPageLimit = $listingPageLimit;
|
||||
$this->wp = $wp;
|
||||
$this->woocommerceHelper = $woocommerceHelper;
|
||||
}
|
||||
|
||||
public function render() {
|
||||
$data = [];
|
||||
$data['items_per_page'] = $this->listingPageLimit->getLimitPerPage('dynamic_segments');
|
||||
|
||||
$wpRoles = $this->wp->getEditableRoles();
|
||||
$data['wordpress_editable_roles_list'] = array_map(function($roleId, $role) {
|
||||
return [
|
||||
'role_id' => $roleId,
|
||||
'role_name' => $role['name'],
|
||||
];
|
||||
}, array_keys($wpRoles), $wpRoles);
|
||||
|
||||
$data['newsletters_list'] = Newsletter::select(['id', 'subject', 'sent_at'])
|
||||
->whereNull('deleted_at')
|
||||
->where('type', Newsletter::TYPE_STANDARD)
|
||||
->orderByExpr('ISNULL(sent_at) DESC, sent_at DESC')->findArray();
|
||||
|
||||
$data['product_categories'] = $this->wp->getCategories(['taxonomy' => 'product_cat']);
|
||||
|
||||
usort($data['product_categories'], function ($a, $b) {
|
||||
return strcmp($a->catName, $b->catName);
|
||||
});
|
||||
|
||||
$data['products'] = $this->getProducts();
|
||||
$data['is_woocommerce_active'] = $this->woocommerceHelper->isWooCommerceActive();
|
||||
|
||||
$this->pageRenderer->displayPage('dynamicSegments.html', $data);
|
||||
}
|
||||
|
||||
private function getProducts() {
|
||||
$args = ['post_type' => 'product', 'orderby' => 'title', 'order' => 'ASC', 'numberposts' => -1];
|
||||
$products = $this->wp->getPosts($args);
|
||||
return array_map(function ($product) {
|
||||
return [
|
||||
'title' => $product->post_title, // phpcs:ignore Squiz.NamingConventions.ValidVariableName.NotCamelCaps
|
||||
'ID' => $product->ID,
|
||||
];
|
||||
}, $products);
|
||||
}
|
||||
}
|
@ -2,7 +2,6 @@
|
||||
|
||||
namespace MailPoet\Config;
|
||||
|
||||
use MailPoet\AdminPages\Pages\DynamicSegments;
|
||||
use MailPoet\AdminPages\Pages\ExperimentalFeatures;
|
||||
use MailPoet\AdminPages\Pages\FormEditor;
|
||||
use MailPoet\AdminPages\Pages\Forms;
|
||||
@ -267,27 +266,6 @@ class Menu {
|
||||
]);
|
||||
});
|
||||
|
||||
// Dynamic segments page
|
||||
$dynamicSegmentsPage = $this->wp->addSubmenuPage(
|
||||
self::MAIN_PAGE_SLUG,
|
||||
$this->setPageTitle(__('Segments', 'mailpoet')),
|
||||
$this->wp->__('Segments', 'mailpoet'),
|
||||
AccessControl::PERMISSION_MANAGE_SEGMENTS,
|
||||
'mailpoet-dynamic-segments',
|
||||
[
|
||||
$this,
|
||||
'dynamicSegments',
|
||||
]
|
||||
);
|
||||
|
||||
// add limit per page to screen options
|
||||
$this->wp->addAction('load-' . $dynamicSegmentsPage, function() {
|
||||
$this->wp->addScreenOption('per_page', [
|
||||
'label' => WPFunctions::get()->_x('Number of segments per page', 'segments per page (screen options)', 'mailpoet'),
|
||||
'option' => 'mailpoet_dynamic_segments_per_page',
|
||||
]);
|
||||
});
|
||||
|
||||
// Settings page
|
||||
$this->wp->addSubmenuPage(
|
||||
self::MAIN_PAGE_SLUG,
|
||||
@ -467,10 +445,6 @@ class Menu {
|
||||
$this->container->get(Segments::class)->render();
|
||||
}
|
||||
|
||||
public function dynamicSegments() {
|
||||
$this->container->get(DynamicSegments::class)->render();
|
||||
}
|
||||
|
||||
public function forms() {
|
||||
$this->container->get(Forms::class)->render();
|
||||
}
|
||||
|
@ -34,7 +34,6 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
]);
|
||||
// AdminPages
|
||||
$container->autowire(\MailPoet\AdminPages\PageRenderer::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\AdminPages\Pages\DynamicSegments::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\AdminPages\Pages\ExperimentalFeatures::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\AdminPages\Pages\FormEditor::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\AdminPages\Pages\Forms::class)->setPublic(true);
|
||||
|
@ -1,88 +0,0 @@
|
||||
<% extends 'layout.html' %>
|
||||
|
||||
<% block content %>
|
||||
<div id="dynamic_segments_container"></div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var mailpoet_listing_per_page = <%= items_per_page %>;
|
||||
var wordpress_editable_roles_list = <%= json_encode(wordpress_editable_roles_list) %>;
|
||||
var mailpoet_newsletters_list = <%= json_encode(newsletters_list) %>;
|
||||
var mailpoet_product_categories = <%= json_encode(product_categories) %>;
|
||||
mailpoet_product_categories = mailpoet_product_categories.map(function(category) {
|
||||
category.id = category.cat_ID;
|
||||
return category;
|
||||
});
|
||||
var mailpoet_products = <%= json_encode(products) %>;
|
||||
mailpoet_products = mailpoet_products.map(function(product) {
|
||||
product.id = product.ID;
|
||||
return product;
|
||||
});
|
||||
var is_woocommerce_active = <%= json_encode(is_woocommerce_active) %>;
|
||||
var mailpoet_beacon_articles = ['5a574bd92c7d3a194368233e'];
|
||||
</script>
|
||||
<% endblock %>
|
||||
|
||||
<% block translations %>
|
||||
<%= localize({
|
||||
'pageTitle': __('Segments'),
|
||||
'formPageTitle': __('Segment'),
|
||||
'formSegmentTitle': __('Segment'),
|
||||
'new': __('Add New'),
|
||||
'backToList': __('Back'),
|
||||
'name': __('Name'),
|
||||
'description': __('Description'),
|
||||
'descriptionTip': __('This text box is for your own use and is never shown to your subscribers.'),
|
||||
'segmentUpdated': __('Segment successfully updated!'),
|
||||
'segmentAdded': __('Segment successfully added!'),
|
||||
'save': __('Save'),
|
||||
'segmentType': __('Type'),
|
||||
'wpUserRole': __('WordPress user roles'),
|
||||
'email': __('Email'),
|
||||
'nameColumn': __('Name'),
|
||||
'subscribersCountColumn': __('Number of subscribers'),
|
||||
'updatedAtColumn': __('Modified on'),
|
||||
'loadingDynamicSegmentItems': __('Loading data…'),
|
||||
'noDynamicSegmentItemsFound': __('No segments found'),
|
||||
'numberOfItemsSingular': __('1 item'),
|
||||
'numberOfItemsMultiple': __('%$1d items'),
|
||||
'previousPage': __('Previous page'),
|
||||
'firstPage': __('First page'),
|
||||
'nextPage': __('Next page'),
|
||||
'lastPage': __('Last page'),
|
||||
'currentPage': __('Current page'),
|
||||
'pageOutOf': _x('of', 'Page X of Y'),
|
||||
'edit': __('Edit'),
|
||||
'viewSubscribers': __('View Subscribers'),
|
||||
'notSentYet': __('Not sent yet'),
|
||||
'selectLinkPlaceholder': __('Select link'),
|
||||
'selectNewsletterPlaceholder': __('Select email'),
|
||||
'selectActionPlaceholder': __('Select action'),
|
||||
'selectUserRolePlaceholder': __('Select user role'),
|
||||
'emailActionOpened': _x('opened', 'Dynamic segment creation: when newsletter was opened'),
|
||||
'emailActionNotOpened': _x('not opened', 'Dynamic segment creation: when newsletter was not opened'),
|
||||
'emailActionClicked': _x('clicked', 'Dynamic segment creation: when a newsletter link was clicked'),
|
||||
'emailActionNotClicked': _x('not clicked', 'Dynamic segment creation: when a newsletter link was not clicked'),
|
||||
'searchLabel': __('Search'),
|
||||
'segmentsTip': _x('Tip', 'A note about dynamic segments usage'),
|
||||
'segmentsTipText': __('segments allow you to group your subscribers by other criteria, such as events and actions.'),
|
||||
'segmentsTipLink': __('Read more.'),
|
||||
|
||||
'oneSegmentTrashed': __('1 segment was moved to the trash.'),
|
||||
'multipleSegmentsTrashed': __('%$1d segments were moved to the trash.'),
|
||||
'oneSegmentRestored': __('1 segment has been restored from the Trash.'),
|
||||
'multipleSegmentsRestored': __('%$1d segments have been restored from the Trash.'),
|
||||
'trash': __('Trash'),
|
||||
'moveToTrash': __('Move to trash'),
|
||||
'emptyTrash': __('Empty Trash'),
|
||||
'restore': __('Restore'),
|
||||
'deletePermanently': __('Delete permanently'),
|
||||
'oneSegmentDeleted': __('1 segment was permanently deleted.'),
|
||||
'multipleSegmentsDeleted': __('%$1d segments were permanently deleted.'),
|
||||
'permanentlyDeleted': __('%d segments were permanently deleted.'),
|
||||
'wooPurchasedCategory': __('Customers who have purchased in this category…'),
|
||||
'wooPurchasedProduct': __('Customers who have purchased this product…'),
|
||||
'selectWooPurchasedCategory': __('Search category'),
|
||||
'selectWooPurchasedProduct': __('Search products'),
|
||||
'woocommerce': _x('WooCommerce', 'Dynamic segment creation: User selects this to use any woocommerce filters'),
|
||||
}) %>
|
||||
<% endblock %>
|
Reference in New Issue
Block a user