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 });
|
||||
MailPoet.Modal.loading(false);
|
||||
window.Beamer.show();
|
||||
const data = { last_announcement_seen: window.mailpoet_last_announcement_seen || {} };
|
||||
const userId = window.mailpoet_current_wp_user.ID;
|
||||
data.last_announcement_seen[userId] = Math.floor(Date.now() / 1000);
|
||||
const data = { last_announcement_seen: Math.floor(Date.now() / 1000) };
|
||||
MailPoet.Ajax.post({
|
||||
api_version: window.mailpoet_api_version,
|
||||
endpoint: 'settings',
|
||||
endpoint: 'user_flags',
|
||||
action: 'set',
|
||||
data,
|
||||
});
|
||||
|
@@ -2,7 +2,6 @@ import MailPoet from 'mailpoet';
|
||||
import moment from 'moment';
|
||||
|
||||
const displayTutorial = () => {
|
||||
const key = `user_seen_editor_tutorial${window.config.currentUserId}`;
|
||||
if (window.config.dragDemoUrlSettings) {
|
||||
return;
|
||||
}
|
||||
@@ -15,9 +14,9 @@ const displayTutorial = () => {
|
||||
onCancel: () => {
|
||||
MailPoet.Ajax.post({
|
||||
api_version: window.mailpoet_api_version,
|
||||
endpoint: 'settings',
|
||||
endpoint: 'user_flags',
|
||||
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\Pages;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Settings\UserFlags;
|
||||
use MailPoet\Subscribers\ImportExport\ImportExportFactory;
|
||||
use MailPoet\Tasks\Sending;
|
||||
use MailPoet\Tasks\State;
|
||||
@@ -49,6 +50,8 @@ class Menu {
|
||||
private $access_control;
|
||||
/** @var SettingsController */
|
||||
private $settings;
|
||||
/** @var UserFlags */
|
||||
private $user_flags;
|
||||
/** @var WPFunctions */
|
||||
private $wp;
|
||||
/** @var ServicesChecker */
|
||||
@@ -62,7 +65,8 @@ class Menu {
|
||||
SettingsController $settings,
|
||||
WPFunctions $wp,
|
||||
WooCommerceHelper $woocommerce_helper,
|
||||
ServicesChecker $servicesChecker
|
||||
ServicesChecker $servicesChecker,
|
||||
UserFlags $user_flags
|
||||
) {
|
||||
$this->renderer = $renderer;
|
||||
$this->access_control = $access_control;
|
||||
@@ -70,6 +74,7 @@ class Menu {
|
||||
$this->settings = $settings;
|
||||
$this->woocommerce_helper = $woocommerce_helper;
|
||||
$this->servicesChecker = $servicesChecker;
|
||||
$this->user_flags = $user_flags;
|
||||
}
|
||||
|
||||
function init() {
|
||||
@@ -606,6 +611,7 @@ class Menu {
|
||||
});
|
||||
$data['segments'] = $segments;
|
||||
$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_firstname'] = WPFunctions::get()->wpGetCurrentUser()->user_firstname;
|
||||
$data['site_url'] = WPFunctions::get()->siteUrl();
|
||||
@@ -631,9 +637,9 @@ class Menu {
|
||||
$data['is_woocommerce_active'] = $this->woocommerce_helper->isWooCommerceActive();
|
||||
|
||||
$user_id = $data['current_wp_user']['ID'];
|
||||
$data['feature_announcement_has_news'] = empty($data['settings']['last_announcement_seen'][$user_id])
|
||||
|| $data['settings']['last_announcement_seen'][$user_id] < strtotime(self::LAST_ANNOUNCEMENT_DATE);
|
||||
$data['last_announcement_seen'] = isset($data['settings']['last_announcement_seen']) ? $data['settings']['last_announcement_seen'] : false;
|
||||
$data['feature_announcement_has_news'] = empty($data['user_flags']['last_announcement_seen'])
|
||||
|| $data['user_flags']['last_announcement_seen'] < strtotime(self::LAST_ANNOUNCEMENT_DATE);
|
||||
$data['last_announcement_seen'] = $data['user_flags']['last_announcement_seen'];
|
||||
|
||||
$data['automatic_emails'] = array(
|
||||
array(
|
||||
@@ -701,6 +707,7 @@ class Menu {
|
||||
$data = array(
|
||||
'shortcodes' => ShortcodesHelper::getShortcodes(),
|
||||
'settings' => $this->settings->getAll(),
|
||||
'user_flags' => $this->user_flags->getAll(),
|
||||
'current_wp_user' => array_merge($subscriber_data, WPFunctions::get()->wpGetCurrentUser()->to_array()),
|
||||
'sub_menu' => self::MAIN_PAGE_SLUG,
|
||||
'mss_active' => Bridge::isMPSendingServiceEnabled()
|
||||
|
@@ -9,6 +9,7 @@ use MailPoet\Models\Form;
|
||||
use MailPoet\Models\Segment;
|
||||
use MailPoet\Models\StatisticsForms;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\UserFlag;
|
||||
use MailPoet\Segments\WP;
|
||||
use MailPoet\Settings\Pages;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
@@ -116,6 +117,7 @@ class Populator {
|
||||
$this->createDefaultSegments();
|
||||
$this->createDefaultForm();
|
||||
$this->createDefaultSettings();
|
||||
$this->createDefaultUsersFlags();
|
||||
$this->createMailPoetPage();
|
||||
$this->createSourceForSubscribers();
|
||||
$this->updateNewsletterCategories();
|
||||
@@ -223,6 +225,35 @@ class Populator {
|
||||
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() {
|
||||
// WP Users segment
|
||||
Segment::getWPSegment();
|
||||
|
@@ -1412,7 +1412,7 @@
|
||||
},
|
||||
dragDemoUrl: '<%= cdn_url('newsletter-editor/editor-drag-demo.20190226-1505.mp4') %>',
|
||||
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"] %>',
|
||||
mtaMethod: '<%= settings["mta"]["method"] %>',
|
||||
displayWcProductsWidget: '<%= settings["display_wc_products_widget"] %>',
|
||||
|
Reference in New Issue
Block a user