Remove orphaned links
[MAILPOET-1102]
This commit is contained in:
@@ -89,6 +89,7 @@ class WP {
|
||||
self::insertUsersToSegment();
|
||||
self::removeOrphanedSubscribers();
|
||||
self::removeWPInconsistentubscribers();
|
||||
self::removeOrphanedLinks();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -201,5 +202,16 @@ class WP {
|
||||
|
||||
', $subscribers_table, $wp_mailpoet_subscriber_segment_table, $wp_segment->id));
|
||||
}
|
||||
|
||||
private static function removeOrphanedLinks() {
|
||||
$subscribers_table = Subscriber::$_table;
|
||||
$wp_mailpoet_subscriber_segment_table = SubscriberSegment::$_table;
|
||||
Subscriber::raw_execute(sprintf('
|
||||
DELETE wuss FROM
|
||||
%s as wuss
|
||||
LEFT JOIN %s as wpms ON wpms.id = wuss.subscriber_id
|
||||
WHERE wpms.id IS NULL
|
||||
', $wp_mailpoet_subscriber_segment_table, $subscribers_table));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -118,6 +118,18 @@ class WPTest extends \MailPoetTest {
|
||||
expect($subscribers->count())->equals(1);
|
||||
}
|
||||
|
||||
function testItRemovesOrphanedLinks() {
|
||||
$count1 = SubscriberSegment::count();
|
||||
$wp_segment = Segment::getWPSegment();
|
||||
$association = SubscriberSegment::create();
|
||||
$association->subscriber_id = rand() * 4;
|
||||
$association->segment_id = $wp_segment->id;
|
||||
$association->save();
|
||||
WP::synchronizeUsers();
|
||||
$count2 = SubscriberSegment::count();
|
||||
expect($count1)->equals($count2);
|
||||
}
|
||||
|
||||
function testItDoesntDeleteNonWPData() {
|
||||
$this->insertUser();
|
||||
// wp_user_id is null
|
||||
|
Reference in New Issue
Block a user