function email_confirmer_user_form_user_form_alter in Email confirmer 8
Implements hook_form_FORM_ID_alter().
File
- email_confirmer_user/
email_confirmer_user.module, line 118 - Users related email confirmation module.
Code
function email_confirmer_user_form_user_form_alter(&$form, FormStateInterface $form_state, $form_id) {
$config = \Drupal::config('email_confirmer_user.settings')
->get('user_email_change');
/** @var \Drupal\user\UserInterface $user */
$user = $form_state
->getFormObject()
->getEntity();
// Nothing to do with new accounts.
if ($user
->isNew()) {
return;
}
// Tell the user about email changes pending confirmation.
/** @var \Drupal\email_confirmer\EmailConfirmationInterface $confirmation */
if ($config['enabled'] && ($new_email = \Drupal::service('user.data')
->get('email_confirmer_user', $user
->id(), 'email_change_new_address')) && !empty($confirmations = \Drupal::service('email_confirmer')
->getConfirmations($new_email, 'pending', 0, 'email_confirmer_user'))) {
foreach ($confirmations as $confirmation) {
if ($confirmation->uid->target_id == $user
->id()) {
$confirmation_url = Url::fromRoute('entity.email_confirmer_confirmation.resend', [
'confirmation' => $confirmation
->id(),
], [
'query' => \Drupal::destination()
->getAsArray(),
])
->toString();
$form['account']['mail']['#description'] = t('<strong>An update of your email address to %mail is pending of confirmation</strong>. <a href=":resend_url">Resend confirmation email</a> or <a href=":cancel_url">cancel the pending change</a>.', [
'%mail' => $new_email,
':resend_url' => $confirmation_url,
':cancel_url' => Url::fromRoute('entity.user.cancel_email_change', [
'user' => $user
->id(),
])
->toString(),
]) . ' ' . $form['account']['mail']['#description'];
break;
}
}
}
}