Remove deleted WP users from subscribers [MAILPOET-1012]
This commit is contained in:
@@ -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) {
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user