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 'subscribers/subscribers.jsx'; // side effect - renders ReactDOM to document
|
||||||
import 'newsletters/newsletters.jsx'; // side effect - renders ReactDOM to window
|
import 'newsletters/newsletters.jsx'; // side effect - renders ReactDOM to window
|
||||||
import 'segments/segments.jsx'; // side effect - renders ReactDOM to document
|
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 'old_settings/settings.jsx'; // side effect - renders ReactDOM to document
|
||||||
import 'forms/forms.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
|
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;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
use MailPoet\AdminPages\Pages\DynamicSegments;
|
|
||||||
use MailPoet\AdminPages\Pages\ExperimentalFeatures;
|
use MailPoet\AdminPages\Pages\ExperimentalFeatures;
|
||||||
use MailPoet\AdminPages\Pages\FormEditor;
|
use MailPoet\AdminPages\Pages\FormEditor;
|
||||||
use MailPoet\AdminPages\Pages\Forms;
|
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
|
// Settings page
|
||||||
$this->wp->addSubmenuPage(
|
$this->wp->addSubmenuPage(
|
||||||
self::MAIN_PAGE_SLUG,
|
self::MAIN_PAGE_SLUG,
|
||||||
@ -467,10 +445,6 @@ class Menu {
|
|||||||
$this->container->get(Segments::class)->render();
|
$this->container->get(Segments::class)->render();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dynamicSegments() {
|
|
||||||
$this->container->get(DynamicSegments::class)->render();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function forms() {
|
public function forms() {
|
||||||
$this->container->get(Forms::class)->render();
|
$this->container->get(Forms::class)->render();
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,6 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
]);
|
]);
|
||||||
// AdminPages
|
// AdminPages
|
||||||
$container->autowire(\MailPoet\AdminPages\PageRenderer::class)->setPublic(true);
|
$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\ExperimentalFeatures::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\FormEditor::class)->setPublic(true);
|
$container->autowire(\MailPoet\AdminPages\Pages\FormEditor::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\AdminPages\Pages\Forms::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