Move user flags from settings [MAILPOET-1677]
This commit is contained in:
committed by
M. Shull
parent
6218166ca1
commit
afe7aa0a54
@@ -53,12 +53,10 @@ class FeatureAnnouncement extends React.Component {
|
|||||||
this.setState({ showDot: false });
|
this.setState({ showDot: false });
|
||||||
MailPoet.Modal.loading(false);
|
MailPoet.Modal.loading(false);
|
||||||
window.Beamer.show();
|
window.Beamer.show();
|
||||||
const data = { last_announcement_seen: window.mailpoet_last_announcement_seen || {} };
|
const data = { last_announcement_seen: Math.floor(Date.now() / 1000) };
|
||||||
const userId = window.mailpoet_current_wp_user.ID;
|
|
||||||
data.last_announcement_seen[userId] = Math.floor(Date.now() / 1000);
|
|
||||||
MailPoet.Ajax.post({
|
MailPoet.Ajax.post({
|
||||||
api_version: window.mailpoet_api_version,
|
api_version: window.mailpoet_api_version,
|
||||||
endpoint: 'settings',
|
endpoint: 'user_flags',
|
||||||
action: 'set',
|
action: 'set',
|
||||||
data,
|
data,
|
||||||
});
|
});
|
||||||
|
@@ -2,7 +2,6 @@ import MailPoet from 'mailpoet';
|
|||||||
import moment from 'moment';
|
import moment from 'moment';
|
||||||
|
|
||||||
const displayTutorial = () => {
|
const displayTutorial = () => {
|
||||||
const key = `user_seen_editor_tutorial${window.config.currentUserId}`;
|
|
||||||
if (window.config.dragDemoUrlSettings) {
|
if (window.config.dragDemoUrlSettings) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -15,9 +14,9 @@ const displayTutorial = () => {
|
|||||||
onCancel: () => {
|
onCancel: () => {
|
||||||
MailPoet.Ajax.post({
|
MailPoet.Ajax.post({
|
||||||
api_version: window.mailpoet_api_version,
|
api_version: window.mailpoet_api_version,
|
||||||
endpoint: 'settings',
|
endpoint: 'user_flags',
|
||||||
action: 'set',
|
action: 'set',
|
||||||
data: { [key]: 1 },
|
data: { editor_tutorial_seen: 1 },
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@@ -20,6 +20,7 @@ use MailPoet\Services\Bridge;
|
|||||||
use MailPoet\Settings\Hosts;
|
use MailPoet\Settings\Hosts;
|
||||||
use MailPoet\Settings\Pages;
|
use MailPoet\Settings\Pages;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
|
use MailPoet\Settings\UserFlags;
|
||||||
use MailPoet\Subscribers\ImportExport\ImportExportFactory;
|
use MailPoet\Subscribers\ImportExport\ImportExportFactory;
|
||||||
use MailPoet\Tasks\Sending;
|
use MailPoet\Tasks\Sending;
|
||||||
use MailPoet\Tasks\State;
|
use MailPoet\Tasks\State;
|
||||||
@@ -49,6 +50,8 @@ class Menu {
|
|||||||
private $access_control;
|
private $access_control;
|
||||||
/** @var SettingsController */
|
/** @var SettingsController */
|
||||||
private $settings;
|
private $settings;
|
||||||
|
/** @var UserFlags */
|
||||||
|
private $user_flags;
|
||||||
/** @var WPFunctions */
|
/** @var WPFunctions */
|
||||||
private $wp;
|
private $wp;
|
||||||
/** @var ServicesChecker */
|
/** @var ServicesChecker */
|
||||||
@@ -62,7 +65,8 @@ class Menu {
|
|||||||
SettingsController $settings,
|
SettingsController $settings,
|
||||||
WPFunctions $wp,
|
WPFunctions $wp,
|
||||||
WooCommerceHelper $woocommerce_helper,
|
WooCommerceHelper $woocommerce_helper,
|
||||||
ServicesChecker $servicesChecker
|
ServicesChecker $servicesChecker,
|
||||||
|
UserFlags $user_flags
|
||||||
) {
|
) {
|
||||||
$this->renderer = $renderer;
|
$this->renderer = $renderer;
|
||||||
$this->access_control = $access_control;
|
$this->access_control = $access_control;
|
||||||
@@ -70,6 +74,7 @@ class Menu {
|
|||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
$this->woocommerce_helper = $woocommerce_helper;
|
$this->woocommerce_helper = $woocommerce_helper;
|
||||||
$this->servicesChecker = $servicesChecker;
|
$this->servicesChecker = $servicesChecker;
|
||||||
|
$this->user_flags = $user_flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -606,6 +611,7 @@ class Menu {
|
|||||||
});
|
});
|
||||||
$data['segments'] = $segments;
|
$data['segments'] = $segments;
|
||||||
$data['settings'] = $this->settings->getAll();
|
$data['settings'] = $this->settings->getAll();
|
||||||
|
$data['user_flags'] = $this->user_flags->getAll();
|
||||||
$data['current_wp_user'] = WPFunctions::get()->wpGetCurrentUser()->to_array();
|
$data['current_wp_user'] = WPFunctions::get()->wpGetCurrentUser()->to_array();
|
||||||
$data['current_wp_user_firstname'] = WPFunctions::get()->wpGetCurrentUser()->user_firstname;
|
$data['current_wp_user_firstname'] = WPFunctions::get()->wpGetCurrentUser()->user_firstname;
|
||||||
$data['site_url'] = WPFunctions::get()->siteUrl();
|
$data['site_url'] = WPFunctions::get()->siteUrl();
|
||||||
@@ -631,9 +637,9 @@ class Menu {
|
|||||||
$data['is_woocommerce_active'] = $this->woocommerce_helper->isWooCommerceActive();
|
$data['is_woocommerce_active'] = $this->woocommerce_helper->isWooCommerceActive();
|
||||||
|
|
||||||
$user_id = $data['current_wp_user']['ID'];
|
$user_id = $data['current_wp_user']['ID'];
|
||||||
$data['feature_announcement_has_news'] = empty($data['settings']['last_announcement_seen'][$user_id])
|
$data['feature_announcement_has_news'] = empty($data['user_flags']['last_announcement_seen'])
|
||||||
|| $data['settings']['last_announcement_seen'][$user_id] < strtotime(self::LAST_ANNOUNCEMENT_DATE);
|
|| $data['user_flags']['last_announcement_seen'] < strtotime(self::LAST_ANNOUNCEMENT_DATE);
|
||||||
$data['last_announcement_seen'] = isset($data['settings']['last_announcement_seen']) ? $data['settings']['last_announcement_seen'] : false;
|
$data['last_announcement_seen'] = $data['user_flags']['last_announcement_seen'];
|
||||||
|
|
||||||
$data['automatic_emails'] = array(
|
$data['automatic_emails'] = array(
|
||||||
array(
|
array(
|
||||||
@@ -701,6 +707,7 @@ class Menu {
|
|||||||
$data = array(
|
$data = array(
|
||||||
'shortcodes' => ShortcodesHelper::getShortcodes(),
|
'shortcodes' => ShortcodesHelper::getShortcodes(),
|
||||||
'settings' => $this->settings->getAll(),
|
'settings' => $this->settings->getAll(),
|
||||||
|
'user_flags' => $this->user_flags->getAll(),
|
||||||
'current_wp_user' => array_merge($subscriber_data, WPFunctions::get()->wpGetCurrentUser()->to_array()),
|
'current_wp_user' => array_merge($subscriber_data, WPFunctions::get()->wpGetCurrentUser()->to_array()),
|
||||||
'sub_menu' => self::MAIN_PAGE_SLUG,
|
'sub_menu' => self::MAIN_PAGE_SLUG,
|
||||||
'mss_active' => Bridge::isMPSendingServiceEnabled()
|
'mss_active' => Bridge::isMPSendingServiceEnabled()
|
||||||
|
@@ -9,6 +9,7 @@ use MailPoet\Models\Form;
|
|||||||
use MailPoet\Models\Segment;
|
use MailPoet\Models\Segment;
|
||||||
use MailPoet\Models\StatisticsForms;
|
use MailPoet\Models\StatisticsForms;
|
||||||
use MailPoet\Models\Subscriber;
|
use MailPoet\Models\Subscriber;
|
||||||
|
use MailPoet\Models\UserFlag;
|
||||||
use MailPoet\Segments\WP;
|
use MailPoet\Segments\WP;
|
||||||
use MailPoet\Settings\Pages;
|
use MailPoet\Settings\Pages;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
@@ -116,6 +117,7 @@ class Populator {
|
|||||||
$this->createDefaultSegments();
|
$this->createDefaultSegments();
|
||||||
$this->createDefaultForm();
|
$this->createDefaultForm();
|
||||||
$this->createDefaultSettings();
|
$this->createDefaultSettings();
|
||||||
|
$this->createDefaultUsersFlags();
|
||||||
$this->createMailPoetPage();
|
$this->createMailPoetPage();
|
||||||
$this->createSourceForSubscribers();
|
$this->createSourceForSubscribers();
|
||||||
$this->updateNewsletterCategories();
|
$this->updateNewsletterCategories();
|
||||||
@@ -223,6 +225,35 @@ class Populator {
|
|||||||
MailerLog::resetMailerLog();
|
MailerLog::resetMailerLog();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function createDefaultUsersFlags() {
|
||||||
|
$last_announcement_seen = $this->settings->fetch('last_announcement_seen');
|
||||||
|
if (!empty($last_announcement_seen)) {
|
||||||
|
foreach ($last_announcement_seen as $user_id => $value) {
|
||||||
|
UserFlag::createOrUpdate([
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'name' => 'last_announcement_seen',
|
||||||
|
'value' => $value,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$this->settings->delete('last_announcement_seen');
|
||||||
|
}
|
||||||
|
|
||||||
|
$prefix = 'user_seen_editor_tutorial';
|
||||||
|
$prefix_length = strlen($prefix);
|
||||||
|
$users_seen_editor_tutorial = Settings::whereLike('name', $prefix . '%')->findMany();
|
||||||
|
if (!empty($users_seen_editor_tutorial)) {
|
||||||
|
foreach ($users_seen_editor_tutorial as $setting) {
|
||||||
|
$user_id = substr($setting->name, $prefix_length);
|
||||||
|
UserFlag::createOrUpdate([
|
||||||
|
'user_id' => $user_id,
|
||||||
|
'name' => 'editor_tutorial_seen',
|
||||||
|
'value' => $setting->value,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
Settings::whereLike('name', $prefix . '%')->deleteMany();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private function createDefaultSegments() {
|
private function createDefaultSegments() {
|
||||||
// WP Users segment
|
// WP Users segment
|
||||||
Segment::getWPSegment();
|
Segment::getWPSegment();
|
||||||
|
@@ -1412,7 +1412,7 @@
|
|||||||
},
|
},
|
||||||
dragDemoUrl: '<%= cdn_url('newsletter-editor/editor-drag-demo.20190226-1505.mp4') %>',
|
dragDemoUrl: '<%= cdn_url('newsletter-editor/editor-drag-demo.20190226-1505.mp4') %>',
|
||||||
currentUserId: '<%= current_wp_user.wp_user_id %>',
|
currentUserId: '<%= current_wp_user.wp_user_id %>',
|
||||||
dragDemoUrlSettings: '<%= settings["user_seen_editor_tutorial" ~ current_wp_user.wp_user_id] %>',
|
dragDemoUrlSettings: '<%= user_flags["editor_tutorial_seen"] %>',
|
||||||
installedAt: '<%= settings["installed_at"] %>',
|
installedAt: '<%= settings["installed_at"] %>',
|
||||||
mtaMethod: '<%= settings["mta"]["method"] %>',
|
mtaMethod: '<%= settings["mta"]["method"] %>',
|
||||||
displayWcProductsWidget: '<%= settings["display_wc_products_widget"] %>',
|
displayWcProductsWidget: '<%= settings["display_wc_products_widget"] %>',
|
||||||
|
Reference in New Issue
Block a user