If you look at includes/cron/promotion.php around line 40, you see this:
Code:
LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON (usertextfield.userid = user.userid)
" . iif(VB_AREA != 'AdminCP', "WHERE user.lastactivity >= $lastrun")
);
if you change it to this (delete everything after the first " on line 41):
[CODE]
Code:
LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON (usertextfield.userid = user.userid)
"
);
Then you should always get everyone (but it might add a lot of processing, especially if you have many members and/or are running it once per minute). BTW, what I said in an earlier post wasn't correct - it processes all users active since the last time the cron job ran, not the last 24 hours).
Why did you want to do this again? It seems like if promotions are based on number of posts then there's no way that's going to change unless the user was active.
It might be a good mod if someone could come up with one that recalculated possible promotions as soon as a user posts. It might be as easy as taking the guts of this function and putting it in a plugin somewhere.