Deleting a WP user unlinks the subscriber and removes his subscription to the WP Segment
This commit is contained in:
@ -8,9 +8,9 @@ use MailPoet\Newsletter\Scheduler\Scheduler;
|
|||||||
class WP {
|
class WP {
|
||||||
static function synchronizeUser($wp_user_id, $old_wp_user_data = false) {
|
static function synchronizeUser($wp_user_id, $old_wp_user_data = false) {
|
||||||
$wp_user = \get_userdata($wp_user_id);
|
$wp_user = \get_userdata($wp_user_id);
|
||||||
$wp_users_segment = Segment::getWPSegment();
|
$wp_segment = Segment::getWPSegment();
|
||||||
|
|
||||||
if($wp_user === false or $wp_users_segment === false) return;
|
if($wp_user === false or $wp_segment === false) return;
|
||||||
|
|
||||||
$subscriber = Subscriber::where('wp_user_id', $wp_user->ID)
|
$subscriber = Subscriber::where('wp_user_id', $wp_user->ID)
|
||||||
->findOne();
|
->findOne();
|
||||||
@ -20,8 +20,14 @@ class WP {
|
|||||||
case 'delete_user':
|
case 'delete_user':
|
||||||
case 'deleted_user':
|
case 'deleted_user':
|
||||||
case 'remove_user_from_blog':
|
case 'remove_user_from_blog':
|
||||||
if($subscriber !== false && $subscriber->id()) {
|
if($subscriber !== false) {
|
||||||
$subscriber->delete();
|
// 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();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'profile_update':
|
case 'profile_update':
|
||||||
@ -55,7 +61,7 @@ class WP {
|
|||||||
// add subscriber to the WP Users segment
|
// add subscriber to the WP Users segment
|
||||||
SubscriberSegment::subscribeToSegments(
|
SubscriberSegment::subscribeToSegments(
|
||||||
$subscriber,
|
$subscriber,
|
||||||
array($wp_users_segment->id)
|
array($wp_segment->id)
|
||||||
);
|
);
|
||||||
|
|
||||||
// welcome email
|
// welcome email
|
||||||
@ -73,7 +79,7 @@ class WP {
|
|||||||
|
|
||||||
static function synchronizeUsers() {
|
static function synchronizeUsers() {
|
||||||
// get wordpress users list
|
// get wordpress users list
|
||||||
$wp_users_segment = Segment::getWPSegment();
|
$wp_segment = Segment::getWPSegment();
|
||||||
|
|
||||||
// fetch all wp users id
|
// fetch all wp users id
|
||||||
$wp_users = \get_users(array(
|
$wp_users = \get_users(array(
|
||||||
|
Reference in New Issue
Block a user