Merge pull request #250 from mailpoet/default_data_on_install

Default segments on install
This commit is contained in:
Marco
2015-11-30 12:17:32 +01:00
4 changed files with 45 additions and 18 deletions

View File

@ -131,10 +131,12 @@ const item_actions = [
label: 'Update',
className: 'update',
onClick: function(item, refresh) {
return MailPoet.Ajax.post({
MailPoet.Modal.loading(true);
MailPoet.Ajax.post({
endpoint: 'segments',
action: 'synchronize'
}).done(function(response) {
MailPoet.Modal.loading(false);
if(response === true) {
MailPoet.Notice.success(
('List "%$1s" has been synchronized.').replace('%$1s', item.name)

View File

@ -2,6 +2,8 @@
namespace MailPoet\Config;
use MailPoet\Config\PopulatorData\Templates\SampleTemplate;
use \MailPoet\Models\Segment;
use \MailPoet\Segments\WP;
if (!defined('ABSPATH')) exit;
@ -39,6 +41,39 @@ class Populator {
};
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() {

View File

@ -77,20 +77,7 @@ class Segment extends Model {
}
static function getWPUsers() {
$segment = 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;
return self::where('type', 'wp_users')->findOne();
}
static function search($orm, $search = '') {

View File

@ -6,7 +6,9 @@ use \MailPoet\Models\Segment;
class WP {
static function synchronizeUser($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)
->findOne();
@ -46,8 +48,9 @@ class WP {
$subscriber = Subscriber::createOrUpdate($data);
if($subscriber !== false && $subscriber->id()) {
$segment = Segment::getWPUsers();
$segment->addSubscriber($subscriber->id());
if($segment !== false) {
$segment->addSubscriber($subscriber->id());
}
}
break;
}