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,
|
api_version: window.mailpoet_api_version,
|
||||||
endpoint: 'segments',
|
endpoint: 'segments',
|
||||||
action: 'synchronize'
|
action: 'synchronize'
|
||||||
}).done((response) => {
|
}).done(() => {
|
||||||
MailPoet.Modal.loading(false);
|
MailPoet.Modal.loading(false);
|
||||||
if(response === true) {
|
MailPoet.Notice.success(
|
||||||
MailPoet.Notice.success(
|
(MailPoet.I18n.t('listSynchronized')).replace('%$1s', item.name)
|
||||||
(MailPoet.I18n.t('listSynchronized')).replace('%$1s', item.name)
|
);
|
||||||
);
|
refresh();
|
||||||
refresh();
|
|
||||||
}
|
|
||||||
}).fail((response) => {
|
}).fail((response) => {
|
||||||
MailPoet.Modal.loading(false);
|
MailPoet.Modal.loading(false);
|
||||||
if(response.errors.length > 0) {
|
if(response.errors.length > 0) {
|
||||||
|
@@ -26,13 +26,9 @@ class WP {
|
|||||||
case 'deleted_user':
|
case 'deleted_user':
|
||||||
case 'remove_user_from_blog':
|
case 'remove_user_from_blog':
|
||||||
if($subscriber !== false) {
|
if($subscriber !== false) {
|
||||||
// unlink subscriber to wp user
|
// unlink subscriber from wp user and delete
|
||||||
$subscriber->setExpr('wp_user_id', 'NULL')->save();
|
$subscriber->set('wp_user_id', null);
|
||||||
|
$subscriber->delete();
|
||||||
// delete subscription to wp segment
|
|
||||||
SubscriberSegment::where('subscriber_id', $subscriber->id)
|
|
||||||
->where('segment_id', $wp_segment->id)
|
|
||||||
->deleteMany();
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'profile_update':
|
case 'profile_update':
|
||||||
@@ -97,6 +93,14 @@ class WP {
|
|||||||
static::synchronizeUser($wp_user_id);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user