Add placement enabled settings

[MAILPOET-3075]
This commit is contained in:
Pavel Dohnal
2020-08-10 15:58:46 +02:00
committed by Veljko V
parent f0127cd68b
commit b1e9c1a4a9
6 changed files with 78 additions and 0 deletions

View File

@ -12,6 +12,7 @@ use MailPoet\Cron\Workers\UnsubscribeTokens;
use MailPoet\Entities\UserFlagEntity; use MailPoet\Entities\UserFlagEntity;
use MailPoet\Features\FeaturesController; use MailPoet\Features\FeaturesController;
use MailPoet\Form\FormFactory; use MailPoet\Form\FormFactory;
use MailPoet\Form\FormsRepository;
use MailPoet\Mailer\MailerLog; use MailPoet\Mailer\MailerLog;
use MailPoet\Models\Form; use MailPoet\Models\Form;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
@ -33,6 +34,7 @@ use MailPoet\Subscription\Captcha;
use MailPoet\Util\Helpers; use MailPoet\Util\Helpers;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Carbon\Carbon;
use MailPoetVendor\Doctrine\ORM\EntityManager;
class Populator { class Populator {
public $prefix; public $prefix;
@ -51,6 +53,13 @@ class Populator {
private $flagsController; private $flagsController;
/** @var FormFactory */ /** @var FormFactory */
private $formFactory; private $formFactory;
/** @var FormsRepository */
private $formsRepository;
/**
* @var EntityManager
*/
private $entityManager;
public function __construct( public function __construct(
SettingsController $settings, SettingsController $settings,
@ -58,6 +67,8 @@ class Populator {
Captcha $captcha, Captcha $captcha,
ReferralDetector $referralDetector, ReferralDetector $referralDetector,
FeaturesController $flagsController, FeaturesController $flagsController,
FormsRepository $formsRepository,
EntityManager $entityManager,
FormFactory $formFactory FormFactory $formFactory
) { ) {
$this->settings = $settings; $this->settings = $settings;
@ -147,6 +158,8 @@ class Populator {
'FarmersMarket', 'FarmersMarket',
]; ];
$this->flagsController = $flagsController; $this->flagsController = $flagsController;
$this->formsRepository = $formsRepository;
$this->entityManager = $entityManager;
} }
public function up() { public function up() {
@ -174,6 +187,7 @@ class Populator {
$this->detectReferral(); $this->detectReferral();
$this->updateFormsSuccessMessages(); $this->updateFormsSuccessMessages();
$this->moveGoogleAnalyticsFromPremium(); $this->moveGoogleAnalyticsFromPremium();
$this->addPlacementStatusToForms();
} }
private function createMailPoetPage() { private function createMailPoetPage() {
@ -688,6 +702,50 @@ class Populator {
)); ));
} }
private function addPlacementStatusToForms() {
if (version_compare($this->settings->get('db_version', '3.48.1'), '3.48.1', '>')) {
return;
}
$forms = $this->formsRepository->findAll();
foreach ($forms as $form) {
$settings = $form->getSettings();
if (
(isset($settings['place_form_bellow_all_posts']) && $settings['place_form_bellow_all_posts'] === '1')
|| (isset($settings['place_form_bellow_all_pages']) && $settings['place_form_bellow_all_pages'] === '1')
) {
$settings['form_placement_bellow_posts_enabled'] = '1';
} else {
$settings['form_placement_bellow_posts_enabled'] = '';
}
if (
(isset($settings['place_popup_form_on_all_posts']) && $settings['place_popup_form_on_all_posts'] === '1')
|| (isset($settings['place_popup_form_on_all_pages']) && $settings['place_popup_form_on_all_pages'] === '1')
) {
$settings['form_placement_popup_enabled'] = '1';
} else {
$settings['form_placement_popup_enabled'] = '';
}
if (
(isset($settings['place_fixed_bar_form_on_all_posts']) && $settings['place_fixed_bar_form_on_all_posts'] === '1')
|| (isset($settings['place_fixed_bar_form_on_all_pages']) && $settings['place_fixed_bar_form_on_all_pages'] === '1')
) {
$settings['form_placement_fixed_bar_enabled'] = '1';
} else {
$settings['form_placement_fixed_bar_enabled'] = '';
}
if (
(isset($settings['place_slide_in_form_on_all_posts']) && $settings['place_slide_in_form_on_all_posts'] === '1')
|| (isset($settings['place_slide_in_form_on_all_pages']) && $settings['place_slide_in_form_on_all_pages'] === '1')
) {
$settings['form_placement_slide_in_enabled'] = '1';
} else {
$settings['form_placement_slide_in_enabled'] = '';
}
$form->setSettings($settings);
}
$this->entityManager->flush();
}
private function moveGoogleAnalyticsFromPremium() { private function moveGoogleAnalyticsFromPremium() {
global $wpdb; global $wpdb;
if (version_compare($this->settings->get('db_version', '3.38.2'), '3.38.1', '>')) { if (version_compare($this->settings->get('db_version', '3.38.2'), '3.38.1', '>')) {

View File

@ -10,11 +10,13 @@ use MailPoet\Config\Activator;
use MailPoet\Config\Populator; use MailPoet\Config\Populator;
use MailPoet\Features\FeaturesController; use MailPoet\Features\FeaturesController;
use MailPoet\Form\FormFactory; use MailPoet\Form\FormFactory;
use MailPoet\Form\FormsRepository;
use MailPoet\Referrals\ReferralDetector; use MailPoet\Referrals\ReferralDetector;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository; use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscription\Captcha; use MailPoet\Subscription\Captcha;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Doctrine\ORM\EntityManager;
class SetupTest extends \MailPoetTest { class SetupTest extends \MailPoetTest {
public function _before() { public function _before() {
@ -38,6 +40,8 @@ class SetupTest extends \MailPoetTest {
new Captcha(), new Captcha(),
$referralDetector, $referralDetector,
$featuresController, $featuresController,
$this->diContainer->get(FormsRepository::class),
$this->diContainer->get(EntityManager::class),
$this->diContainer->get(FormFactory::class) $this->diContainer->get(FormFactory::class)
); );
$router = new Setup($wp, new Activator($settings, $populator)); $router = new Setup($wp, new Activator($settings, $populator));

View File

@ -16,6 +16,7 @@ use MailPoet\DI\ContainerWrapper;
use MailPoet\Entities\NewsletterEntity; use MailPoet\Entities\NewsletterEntity;
use MailPoet\Features\FeaturesController; use MailPoet\Features\FeaturesController;
use MailPoet\Form\FormFactory; use MailPoet\Form\FormFactory;
use MailPoet\Form\FormsRepository;
use MailPoet\Logging\LoggerFactory; use MailPoet\Logging\LoggerFactory;
use MailPoet\Mailer\MailerLog; use MailPoet\Mailer\MailerLog;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
@ -42,6 +43,7 @@ use MailPoet\Subscription\SubscriptionUrlFactory;
use MailPoet\Tasks\Sending as SendingTask; use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon; use MailPoetVendor\Carbon\Carbon;
use MailPoetVendor\Doctrine\ORM\EntityManager;
use MailPoetVendor\Idiorm\ORM; use MailPoetVendor\Idiorm\ORM;
class SendingQueueTest extends \MailPoetTest { class SendingQueueTest extends \MailPoetTest {
@ -79,6 +81,8 @@ class SendingQueueTest extends \MailPoetTest {
new Captcha, new Captcha,
$referralDetector, $referralDetector,
$featuresController, $featuresController,
$this->diContainer->get(FormsRepository::class),
$this->diContainer->get(EntityManager::class),
$this->diContainer->get(FormFactory::class) $this->diContainer->get(FormFactory::class)
); );
$populator->up(); $populator->up();

View File

@ -8,6 +8,7 @@ use MailPoet\Config\Populator;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask; use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
use MailPoet\Features\FeaturesController; use MailPoet\Features\FeaturesController;
use MailPoet\Form\FormFactory; use MailPoet\Form\FormFactory;
use MailPoet\Form\FormsRepository;
use MailPoet\Mailer\Mailer; use MailPoet\Mailer\Mailer;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Referrals\ReferralDetector; use MailPoet\Referrals\ReferralDetector;
@ -15,6 +16,7 @@ use MailPoet\Settings\SettingsController;
use MailPoet\Settings\SettingsRepository; use MailPoet\Settings\SettingsRepository;
use MailPoet\Subscription\Captcha; use MailPoet\Subscription\Captcha;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Doctrine\ORM\EntityManager;
use MailPoetVendor\Idiorm\ORM; use MailPoetVendor\Idiorm\ORM;
class MailerTest extends \MailPoetTest { class MailerTest extends \MailPoetTest {
@ -37,6 +39,8 @@ class MailerTest extends \MailPoetTest {
new Captcha, new Captcha,
$referralDetector, $referralDetector,
$featuresController, $featuresController,
$this->diContainer->get(FormsRepository::class),
$this->diContainer->get(EntityManager::class),
$this->diContainer->get(FormFactory::class) $this->diContainer->get(FormFactory::class)
); );
$populator->up(); $populator->up();

View File

@ -6,6 +6,7 @@ use Codeception\Util\Stub;
use MailPoet\Config\Populator; use MailPoet\Config\Populator;
use MailPoet\Features\FeaturesController; use MailPoet\Features\FeaturesController;
use MailPoet\Form\FormFactory; use MailPoet\Form\FormFactory;
use MailPoet\Form\FormsRepository;
use MailPoet\Models\CustomField; use MailPoet\Models\CustomField;
use MailPoet\Models\Newsletter; use MailPoet\Models\Newsletter;
use MailPoet\Models\SendingQueue; use MailPoet\Models\SendingQueue;
@ -20,6 +21,7 @@ use MailPoet\Subscribers\LinkTokens;
use MailPoet\Subscription\Captcha; use MailPoet\Subscription\Captcha;
use MailPoet\Subscription\SubscriptionUrlFactory; use MailPoet\Subscription\SubscriptionUrlFactory;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Doctrine\ORM\EntityManager;
use MailPoetVendor\Idiorm\ORM; use MailPoetVendor\Idiorm\ORM;
require_once(ABSPATH . 'wp-admin/includes/user.php'); require_once(ABSPATH . 'wp-admin/includes/user.php');
@ -49,6 +51,8 @@ class ShortcodesTest extends \MailPoetTest {
new Captcha, new Captcha,
$referralDetector, $referralDetector,
$featuresController, $featuresController,
$this->diContainer->get(FormsRepository::class),
$this->diContainer->get(EntityManager::class),
$this->diContainer->get(FormFactory::class) $this->diContainer->get(FormFactory::class)
); );
$populator->up(); $populator->up();

View File

@ -6,6 +6,7 @@ use Codeception\Util\Stub;
use MailPoet\Config\Populator; use MailPoet\Config\Populator;
use MailPoet\Features\FeaturesController; use MailPoet\Features\FeaturesController;
use MailPoet\Form\FormFactory; use MailPoet\Form\FormFactory;
use MailPoet\Form\FormsRepository;
use MailPoet\Models\Subscriber; use MailPoet\Models\Subscriber;
use MailPoet\Referrals\ReferralDetector; use MailPoet\Referrals\ReferralDetector;
use MailPoet\Router\Router; use MailPoet\Router\Router;
@ -15,6 +16,7 @@ use MailPoet\Subscribers\LinkTokens;
use MailPoet\Subscription\Captcha; use MailPoet\Subscription\Captcha;
use MailPoet\Subscription\SubscriptionUrlFactory; use MailPoet\Subscription\SubscriptionUrlFactory;
use MailPoet\WP\Functions as WPFunctions; use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Doctrine\ORM\EntityManager;
class UrlTest extends \MailPoetTest { class UrlTest extends \MailPoetTest {
@ -35,6 +37,8 @@ class UrlTest extends \MailPoetTest {
new Captcha, new Captcha,
$referralDetector, $referralDetector,
$featuresController, $featuresController,
$this->diContainer->get(FormsRepository::class),
$this->diContainer->get(EntityManager::class),
$this->diContainer->get(FormFactory::class) $this->diContainer->get(FormFactory::class)
); );
$populator->up(); $populator->up();