diff --git a/assets/js/src/dynamic_segments/dynamic_segments.jsx b/assets/js/src/dynamic_segments/dynamic_segments.jsx deleted file mode 100644 index 1d142d7db0..0000000000 --- a/assets/js/src/dynamic_segments/dynamic_segments.jsx +++ /dev/null @@ -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 = () => ( - - - - - - -); - -const container = document.getElementById('dynamic_segments_container'); - -if (container) { - ReactDOM.render(, container); -} diff --git a/assets/js/src/webpack_admin_index.jsx b/assets/js/src/webpack_admin_index.jsx index 00b4931462..84db496f4c 100644 --- a/assets/js/src/webpack_admin_index.jsx +++ b/assets/js/src/webpack_admin_index.jsx @@ -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 diff --git a/lib/AdminPages/Pages/DynamicSegments.php b/lib/AdminPages/Pages/DynamicSegments.php deleted file mode 100644 index e70059432a..0000000000 --- a/lib/AdminPages/Pages/DynamicSegments.php +++ /dev/null @@ -1,75 +0,0 @@ -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); - } -} diff --git a/lib/Config/Menu.php b/lib/Config/Menu.php index 7ea71b2a6d..8f15710bc5 100644 --- a/lib/Config/Menu.php +++ b/lib/Config/Menu.php @@ -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(); } diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index 2d1f160e31..421e9b7b85 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -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); diff --git a/views/dynamicSegments.html b/views/dynamicSegments.html deleted file mode 100644 index cc71a70a26..0000000000 --- a/views/dynamicSegments.html +++ /dev/null @@ -1,88 +0,0 @@ -<% extends 'layout.html' %> - -<% block content %> -
- - -<% 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 %>