Merge pull request #250 from mailpoet/default_data_on_install
Default segments on install
This commit is contained in:
@ -131,10 +131,12 @@ const item_actions = [
|
|||||||
label: 'Update',
|
label: 'Update',
|
||||||
className: 'update',
|
className: 'update',
|
||||||
onClick: function(item, refresh) {
|
onClick: function(item, refresh) {
|
||||||
return MailPoet.Ajax.post({
|
MailPoet.Modal.loading(true);
|
||||||
|
MailPoet.Ajax.post({
|
||||||
endpoint: 'segments',
|
endpoint: 'segments',
|
||||||
action: 'synchronize'
|
action: 'synchronize'
|
||||||
}).done(function(response) {
|
}).done(function(response) {
|
||||||
|
MailPoet.Modal.loading(false);
|
||||||
if(response === true) {
|
if(response === true) {
|
||||||
MailPoet.Notice.success(
|
MailPoet.Notice.success(
|
||||||
('List "%$1s" has been synchronized.').replace('%$1s', item.name)
|
('List "%$1s" has been synchronized.').replace('%$1s', item.name)
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
namespace MailPoet\Config;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
use MailPoet\Config\PopulatorData\Templates\SampleTemplate;
|
use MailPoet\Config\PopulatorData\Templates\SampleTemplate;
|
||||||
|
use \MailPoet\Models\Segment;
|
||||||
|
use \MailPoet\Segments\WP;
|
||||||
|
|
||||||
if (!defined('ABSPATH')) exit;
|
if (!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
@ -39,6 +41,39 @@ class Populator {
|
|||||||
};
|
};
|
||||||
|
|
||||||
array_map(array($this, 'populate'), $this->models);
|
array_map(array($this, 'populate'), $this->models);
|
||||||
|
|
||||||
|
$this->createDefaultSegments();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createDefaultSegments() {
|
||||||
|
// WP Users segment
|
||||||
|
$wp_users_segment = Segment::getWPUsers();
|
||||||
|
|
||||||
|
if($wp_users_segment === false) {
|
||||||
|
// create the wp users list
|
||||||
|
$wp_users_segment = Segment::create();
|
||||||
|
$wp_users_segment->hydrate(array(
|
||||||
|
'name' => __('WordPress Users'),
|
||||||
|
'description' =>
|
||||||
|
__('The list containing all of your WordPress users.'),
|
||||||
|
'type' => 'wp_users'
|
||||||
|
));
|
||||||
|
$wp_users_segment->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Synchronize WP Users
|
||||||
|
WP::synchronizeUsers();
|
||||||
|
|
||||||
|
// Default segment
|
||||||
|
if(Segment::where('type', 'default')->count() === 0) {
|
||||||
|
$default_segment = Segment::create();
|
||||||
|
$default_segment->hydrate(array(
|
||||||
|
'name' => __('My First List'),
|
||||||
|
'description' =>
|
||||||
|
__('The list created automatically on install of MailPoet')
|
||||||
|
));
|
||||||
|
$default_segment->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function newsletter_option_fields() {
|
function newsletter_option_fields() {
|
||||||
|
@ -77,20 +77,7 @@ class Segment extends Model {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static function getWPUsers() {
|
static function getWPUsers() {
|
||||||
$segment = self::where('type', 'wp_users')->findOne();
|
return self::where('type', 'wp_users')->findOne();
|
||||||
|
|
||||||
if($segment === false) {
|
|
||||||
// create the wp users list
|
|
||||||
$segment = self::create();
|
|
||||||
$segment->hydrate(array(
|
|
||||||
'name' => __('WordPress Users'),
|
|
||||||
'type' => 'wp_users'
|
|
||||||
));
|
|
||||||
$segment->save();
|
|
||||||
return self::findOne($segment->id());
|
|
||||||
}
|
|
||||||
|
|
||||||
return $segment;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static function search($orm, $search = '') {
|
static function search($orm, $search = '') {
|
||||||
|
@ -6,7 +6,9 @@ use \MailPoet\Models\Segment;
|
|||||||
class WP {
|
class WP {
|
||||||
static function synchronizeUser($wp_user_id) {
|
static function synchronizeUser($wp_user_id) {
|
||||||
$wpUser = \get_userdata($wp_user_id);
|
$wpUser = \get_userdata($wp_user_id);
|
||||||
if($wpUser === false) return;
|
$segment = Segment::getWPUsers();
|
||||||
|
|
||||||
|
if($wpUser === false or $segment === false) return;
|
||||||
|
|
||||||
$subscriber = Subscriber::where('wp_user_id', $wpUser->ID)
|
$subscriber = Subscriber::where('wp_user_id', $wpUser->ID)
|
||||||
->findOne();
|
->findOne();
|
||||||
@ -46,8 +48,9 @@ class WP {
|
|||||||
$subscriber = Subscriber::createOrUpdate($data);
|
$subscriber = Subscriber::createOrUpdate($data);
|
||||||
|
|
||||||
if($subscriber !== false && $subscriber->id()) {
|
if($subscriber !== false && $subscriber->id()) {
|
||||||
$segment = Segment::getWPUsers();
|
if($segment !== false) {
|
||||||
$segment->addSubscriber($subscriber->id());
|
$segment->addSubscriber($subscriber->id());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user