it-swarm.com.de

Verweigern Sie einer Benutzerrolle die Anmeldung nach der Registrierung

Ich habe eine Site, auf der sich Kunden registrieren können (sie erhalten eine Benutzerrolle "ausstehend"). Ich möchte jedoch, dass sich diese Benutzerrolle nach der Registrierung nicht automatisch anmelden oder direkt abmelden kann. Sie dürfen sich auch nicht anmelden können. Die Anmeldung für diese Benutzerrolle muss daher verweigert werden.

1
Arnolddew

Sie möchten sich in den Hook authenticate einhängen, prüfen, ob der Benutzer die Rolle pending hat, und in diesem Fall einen Fehler auslösen.

//* Add filter to the authenticate hook
add_filter( 'authenticate', 'wpse_263762_authenticate', 20, 3 );
function wpse_263762_authenticate( $user, $username, $password ) {
  //* Check if the user has the pending role
  if( ! is_wp_error( $user ) && in_array( 'pending', $user->roles ) ) {
    //* Throw an error
    $error = new WP_Error();
    $errorMessage = __( 'Your error message goes here.' );
    $error->add( 401, $errorMessage );
    return $error;
  }
  //* Or return the user
  return $user;
}
2
Nathan Johnson