Hi,
i'd like to delete old PMs from my systemuser "Promotion" [id 3129].
All Messages older than 30 Days should be deleted.
i don't know if there is any bug in my code, so please check it:
Code:
// days after pms are deleted
$olderthan = 30;
global $vbulletin;
$vbulletin->db->query("DELETE pm FROM pm,
(SELECT pmid FROM pm AS a LEFT JOIN pmtext AS b ON (b.pmtextid=a.pmtextid)
WHERE b.dateline < " . (TIMENOW - 60 * 60 * 24 * $olderthan) . " AND a.userid = 3129) AS expiredpms WHERE pm.pmid=expiredpms.pmid");
$vbulletin->db->query("DELETE pmreceipt FROM pmreceipt,
(SELECT pmid FROM pm AS a LEFT JOIN pmtext AS b ON (b.pmtextid=a.pmtextid)
WHERE b.dateline < " . (TIMENOW - 60 * 60 * 24 * $olderthan) . " AND a.userid = 3129) AS expiredpms WHERE pmreceipt.pmid=expiredpms.pmid");
$vbulletin->db->query("
UPDATE " . TABLE_PREFIX . "user, (
SELECT user.userid, COUNT(pmid)
AS total FROM " . TABLE_PREFIX . "user AS user
LEFT JOIN " . TABLE_PREFIX . "pm AS pm ON (pm.userid=user.userid)
GROUP BY user.userid)
AS pmstats SET " . TABLE_PREFIX . "user.pmtotal=pmstats.total
WHERE pmstats.userid=" . TABLE_PREFIX . "user.userid");
Thanks!