PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.34.2
MailPoet – Newsletters, Email Marketing, and Automation v5.34.2
5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / lib / Config / Changelog.php
mailpoet / lib / Config Last commit date
PopulatorData 2 months ago AccessControl.php 2 years ago Activator.php 2 months ago AssetsLoader.php 2 weeks ago Capabilities.php 2 months ago Changelog.php 2 months ago DeactivationPoll.php 3 years ago DeferredAdminNotices.php 2 months ago Env.php 6 months ago Hooks.php 4 weeks ago HooksWooCommerce.php 1 month ago Initializer.php 4 weeks ago Installer.php 10 months ago Localizer.php 3 years ago Menu.php 1 month ago PersonalDataErasers.php 1 month ago PersonalDataExporters.php 1 month ago PluginActivatedHook.php 3 years ago Populator.php 2 weeks ago PrivacyPolicy.php 1 month ago Renderer.php 1 year ago RendererFactory.php 3 years ago RequirementsChecker.php 2 months ago Router.php 2 months ago ServicesChecker.php 3 years ago Shortcodes.php 1 month ago SilentUpgraderSkin.php 3 years ago SubscriberChangesNotifier.php 2 months ago TranslationUpdater.php 3 months ago TwigEnvironment.php 1 year ago TwigFileSystemCache.php 3 years ago Updater.php 4 days ago index.php 3 years ago
Changelog.php
179 lines
1 <?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
2
3 namespace MailPoet\Config;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\Settings\SettingsController;
9 use MailPoet\Settings\TrackingConfig;
10 use MailPoet\Util\Url;
11 use MailPoet\WooCommerce\Helper;
12 use MailPoet\WP\Functions as WPFunctions;
13
14 class Changelog {
15 /** @var WPFunctions */
16 private $wp;
17
18 /** @var SettingsController */
19 private $settings;
20
21 /** @var Helper */
22 private $wooCommerceHelper;
23
24 /** @var Url */
25 private $urlHelper;
26
27 /** @var TrackingConfig */
28 private $trackingConfig;
29
30 public function __construct(
31 SettingsController $settings,
32 WPFunctions $wp,
33 Helper $wooCommerceHelper,
34 Url $urlHelper,
35 TrackingConfig $trackingConfig
36 ) {
37 $this->wooCommerceHelper = $wooCommerceHelper;
38 $this->settings = $settings;
39 $this->wp = $wp;
40 $this->urlHelper = $urlHelper;
41 $this->trackingConfig = $trackingConfig;
42 }
43
44 public function init() {
45 // don't run any check when it's an ajax request
46 if (wp_doing_ajax()) {
47 return;
48 }
49
50 // don't run any check when we're not on our pages
51 $page = $this->getPageSlug();
52 if ($page === '' || strpos($page, 'mailpoet') !== 0) {
53 return;
54 }
55
56 WPFunctions::get()->addAction(
57 'admin_init',
58 [$this, 'check']
59 );
60 }
61
62 private function getPageSlug(): string {
63 if (!isset($_GET['page']) || !is_string($_GET['page'])) {
64 return '';
65 }
66 return sanitize_text_field(wp_unslash($_GET['page']));
67 }
68
69 public function check() {
70 $version = $this->settings->get('version');
71 if ($version === null) {
72 $this->setupNewInstallation();
73 $this->maybeRedirectToLandingPage();
74 }
75 $this->checkWooCommerceListImportPage();
76 $this->checkRevenueTrackingPermissionPage();
77 }
78
79 public function shouldShowWelcomeWizard() {
80 if ($this->wp->applyFilters('mailpoet_skip_welcome_wizard', false)) {
81 return false;
82 }
83 return $this->settings->get('version') === null;
84 }
85
86 public function shouldShowLandingPage(): bool {
87 return $this->shouldShowWelcomeWizard();
88 }
89
90 public function shouldShowWooCommerceListImportPage() {
91 if ($this->wp->applyFilters('mailpoet_skip_woocommerce_import_page', false)) {
92 return false;
93 }
94 return !$this->settings->get('woocommerce_import_screen_displayed')
95 && $this->wooCommerceHelper->isWooCommerceActive()
96 && $this->wooCommerceHelper->getOrdersCountCreatedBefore($this->settings->get('installed_at')) > 0
97 && $this->wp->currentUserCan('administrator');
98 }
99
100 public function shouldShowRevenueTrackingPermissionPage() {
101 return ($this->settings->get('woocommerce.accept_cookie_revenue_tracking.set') === null)
102 && $this->trackingConfig->isEmailTrackingEnabled()
103 && $this->wooCommerceHelper->isWooCommerceActive()
104 && $this->wp->currentUserCan('administrator');
105 }
106
107 public function redirectToLandingPage() {
108 if (isset($_GET['activate-multi'])) return; // do not redirect when activated with bulk activation mode
109
110 if ($this->shouldShowLandingPage() && !$this->isLandingPage()) {
111 $this->urlHelper->redirectTo(
112 $this->wp->adminUrl('admin.php?page=mailpoet-landingpage')
113 );
114 }
115 }
116
117 public function maybeRedirectToLandingPage() {
118 if ($this->isWelcomeWizardPage()) return; // do not redirect when on welcome wizard page
119
120 if ($this->isExperimentalPage()) return; // do not redirect when on experimental page
121
122 $this->redirectToLandingPage();
123 }
124
125 private function setupNewInstallation() {
126 $this->settings->set('show_congratulate_after_first_newsletter', true);
127 }
128
129 private function isWelcomeWizardPage() {
130 return $this->getPageSlug() === Menu::WELCOME_WIZARD_PAGE_SLUG;
131 }
132
133 private function isLandingPage() {
134 return $this->getPageSlug() === Menu::LANDINGPAGE_PAGE_SLUG;
135 }
136
137 private function isExperimentalPage() {
138 return $this->getPageSlug() === Menu::EXPERIMENTS_PAGE_SLUG;
139 }
140
141 private function checkWooCommerceListImportPage() {
142 $page = $this->getPageSlug();
143 if (
144 $page === '' ||
145 !in_array(
146 $page,
147 [
148 'mailpoet-woocommerce-setup',
149 'mailpoet-welcome-wizard',
150 'mailpoet-migration',
151 'mailpoet-landingpage',
152 ]
153 )
154 && $this->shouldShowWooCommerceListImportPage()
155 ) {
156 $this->urlHelper->redirectTo($this->wp->adminUrl('admin.php?page=mailpoet-woocommerce-setup'));
157 }
158 }
159
160 private function checkRevenueTrackingPermissionPage() {
161 $page = $this->getPageSlug();
162 if (
163 $page === '' ||
164 !in_array(
165 $page,
166 [
167 'mailpoet-woocommerce-setup',
168 'mailpoet-welcome-wizard',
169 'mailpoet-migration',
170 'mailpoet-landingpage',
171 ]
172 )
173 && $this->shouldShowRevenueTrackingPermissionPage()
174 ) {
175 $this->urlHelper->redirectTo($this->wp->adminUrl('admin.php?page=mailpoet-woocommerce-setup'));
176 }
177 }
178 }
179