Remove deleted WP users from subscribers [MAILPOET-1012]

This commit is contained in:
stoletniy
2017-07-21 17:48:48 +03:00
parent 4062e0662d
commit 78f9945296
2 changed files with 16 additions and 14 deletions

View File

@@ -156,14 +156,12 @@ const item_actions = [
api_version: window.mailpoet_api_version,
endpoint: 'segments',
action: 'synchronize'
}).done((response) => {
}).done(() => {
MailPoet.Modal.loading(false);
if(response === true) {
MailPoet.Notice.success(
(MailPoet.I18n.t('listSynchronized')).replace('%$1s', item.name)
);
refresh();
}
MailPoet.Notice.success(
(MailPoet.I18n.t('listSynchronized')).replace('%$1s', item.name)
);
refresh();
}).fail((response) => {
MailPoet.Modal.loading(false);
if(response.errors.length > 0) {

View File

@@ -26,13 +26,9 @@ class WP {
case 'deleted_user':
case 'remove_user_from_blog':
if($subscriber !== false) {
// unlink subscriber to wp user
$subscriber->setExpr('wp_user_id', 'NULL')->save();
// delete subscription to wp segment
SubscriberSegment::where('subscriber_id', $subscriber->id)
->where('segment_id', $wp_segment->id)
->deleteMany();
// unlink subscriber from wp user and delete
$subscriber->set('wp_user_id', null);
$subscriber->delete();
}
break;
case 'profile_update':
@@ -97,6 +93,14 @@ class WP {
static::synchronizeUser($wp_user_id);
}
// remove orphaned wp segment subscribers (not having a matching wp user id),
// e.g. if wp users were deleted directly from the database
$wp_segment->subscribers()
->whereNotIn('wp_user_id', $wp_users)
->findResultSet()
->set('wp_user_id', null)
->delete();
return true;
}
}