Remove orphaned links

[MAILPOET-1102]
This commit is contained in:
Pavel Dohnal
2017-09-13 13:30:23 +01:00
parent 6b14a8a057
commit 97d157192a
2 changed files with 24 additions and 0 deletions

View File

@@ -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));
}
}

View File

@@ -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