Define maximum number of invoices allowed per user within 24 hours
This example prevents a logged-in user from creating more than 10 invoices within 24 hours.
Add this code to site.php file:
Am_Di::getInstance()->hook->add(Am_Event::VALIDATE_SAVED_FORM, function (Am_Event_ValidateSavedForm $event) {
$savedForm = $event->getSavedForm();
if (!$savedForm || !$savedForm->isSignup()) {
return;
}
if (!$userId = $event->getDi()->auth->getUserId()) {
return;
}
$invoiceLimit = 10;
$invoiceCount = $event->getDi()->db->selectCell(
"SELECT COUNT(*) FROM ?_invoice WHERE user_id=?d AND tm_added>?",
$userId,
sqlTime('-24 hours')
);
if ($invoiceCount >= $invoiceLimit) {
$event->addError(___('Registration from you IP is temporary disabled'));
}
});