I want disable the user register form depending some conditions. The user go to the "/user/register" page, and he must see 'Registration is disable because ...'.
From my "form_user_register_form_alter" hook, I don't find anywhere how can I disable all the form programmatically (I mean removing all fields form). I think I can unset all form elements, but I feel that is an ugly way.
Is there a method (from the FormStateInterface class) or a Drupal function (for the form variable) to properly disable the form?
This is my most recent tentative.
function mycustommodule_limit_form_user_register_form_alter(&$form, FormStateInterface $form_state){
if (...) {
$form['#access'] = FALSE; // Drupal 7 (ugly?) way
drupal_set_message('This form is disable because...');
}
}
When I go to the /user/register form, the form is disable ! but I get this error.
Notice: Undefined index: #markup in Drupal\Core\Render\RenderCache->getCacheableRenderArray() (line 323 of core/lib/Drupal/Core/Render/RenderCache.php).
I would like to hide/remove Create new account too.