function contact_storage_maximum_submissions_user in Contact Storage 8
Returns the number of times the current user has submitted the specified form.
Parameters
Drupal\contact\ContactFormInterface $contact_form: The contact_form entity.
Return value
int The number of times the current user has submitted the specified form.
2 calls to contact_storage_maximum_submissions_user()
- ConstactStorageMaximumSubmissionsConstraintValidator::validate in src/
Plugin/ Validation/ Constraint/ ConstactStorageMaximumSubmissionsConstraintValidator.php - Checks if the passed value is valid.
- contact_storage_form_contact_message_form_alter in ./
contact_storage.module - Implements hook_form_FORM_ID_alter() for contact_form_form().
1 string reference to 'contact_storage_maximum_submissions_user'
- contact_storage_contact_form_form_builder in ./
contact_storage.module - Entity builder for the contact form edit form with third party options.
File
- ./
contact_storage.module, line 505 - Contains main module logic.
Code
function contact_storage_maximum_submissions_user(ContactFormInterface $contact_form) {
$account = \Drupal::currentUser();
if ($account
->isAnonymous()) {
// Anonymous user, limit per submission with the same IP address.
$ip_address = \Drupal::request()
->getClientIp();
$query = \Drupal::entityQuery('contact_message')
->condition('contact_form', $contact_form
->id())
->condition('ip_address', $ip_address)
->condition('uid', $account
->id());
return count($query
->execute());
}
else {
// Limit per submission with the same uid.
$query = \Drupal::entityQuery('contact_message')
->condition('contact_form', $contact_form
->id())
->condition('uid', $account
->id());
return count($query
->execute());
}
}