Mark spammy subscribers as unconfirmed
[MAILPOET-2150]
This commit is contained in:
@ -235,5 +235,18 @@ class WP {
|
||||
WHERE `wp_user_id` IS NOT NULL AND `status` = "subscribed" AND `confirmed_at` IS NULL AND clicks.id IS NULL AND opens.id IS NULL
|
||||
';
|
||||
$wpdb->query(sprintf($query, Subscriber::$_table, StatisticsClicks::$_table, StatisticsOpens::$_table, $wpdb->usermeta));
|
||||
|
||||
|
||||
$column_exists = $wpdb->query(sprintf('SHOW COLUMNS FROM `%s` LIKE "user_status"', $wpdb->users));
|
||||
if ($column_exists) {
|
||||
$query = '
|
||||
UPDATE %s as subscribers
|
||||
JOIN %s as users ON users.ID=subscribers.wp_user_id
|
||||
SET `status` = "unconfirmed"
|
||||
WHERE `status` = "subscribed" AND users.user_status = 2
|
||||
';
|
||||
$wpdb->query(sprintf($query, Subscriber::$_table, $wpdb->users));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -282,6 +282,23 @@ class WPTest extends \MailPoetTest {
|
||||
expect($db_subscriber->status)->equals(Subscriber::STATUS_UNCONFIRMED);
|
||||
}
|
||||
|
||||
function testItMarksSpammySubscribersWithUserStatus2AsUnconfirmed() {
|
||||
global $wpdb;
|
||||
$random_number = rand();
|
||||
$id = $this->insertUser($random_number);
|
||||
$subscriber = Subscriber::createOrUpdate([
|
||||
'email' => 'user-sync-test' . $random_number . '@example.com',
|
||||
'status' => Subscriber::STATUS_SUBSCRIBED,
|
||||
'wp_user_id' => $id,
|
||||
]);
|
||||
wp_update_user(['ID' => $id, 'user_status' => 2]);
|
||||
$db = \ORM::getDb();
|
||||
$db->exec(sprintf('UPDATE %s SET `user_status` = 2 WHERE ID = %s', $wpdb->users, $id));
|
||||
WP::synchronizeUsers();
|
||||
$db_subscriber = Subscriber::findOne($subscriber->id);
|
||||
expect($db_subscriber->status)->equals(Subscriber::STATUS_UNCONFIRMED);
|
||||
}
|
||||
|
||||
function _before() {
|
||||
parent::_before();
|
||||
$this->cleanData();
|
||||
|
Reference in New Issue
Block a user