Deleting a trophy fails to delete xf_user_alert entries

Steffen

Well-known member
Affected version
2.3.4
The method XF\Entity\Trophy::_postDelete checks the "xf_user_alert" column "extra_data" (which is empty!) although it seems like it should check the "content_id" column because that's where the trophy_id is stored.

Diff:
--- a/src/XF/Entity/Trophy.php
+++ b/src/XF/Entity/Trophy.php
@@ -92,7 +92,8 @@ class Trophy extends Entity
 
        $this->db()->delete(
            'xf_user_alert',
-           "content_type = 'trophy' AND action = 'award' AND extra_data LIKE '%i:" . intval($this->trophy_id) . ";%'"
+           "content_type = 'trophy' AND content_id = ? AND action = 'award'",
+           [$this->trophy_id]
        );
    }
 
Back
Top Bottom