Files
wp-multi/includes/disable-login.php
T
2026-08-14 07:59:43 +00:00

62 lines
2.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* WP Multi Modul: Login deaktivieren (pro Benutzer)
*
* Automatisch aus wp-multi.php ausgelagert. Wird über den Loader in
* wp-multi.php eingebunden (nur wenn das WP Multi Toolkit aktiv ist).
*/
if (!defined('ABSPATH')) { exit; }
/*
* Login deaktivieren
*/
// Checkbox zum Benutzerprofil hinzufügen
function wp_multi_add_disable_login_checkbox($user) {
?>
<h3>Login deaktivieren</h3>
<table class="form-table">
<tr>
<th><label for="disable_login">Login deaktivieren</label></th>
<td>
<input type="checkbox" name="disable_login" id="disable_login" value="1" <?php checked( get_user_meta($user->ID, 'disable_login', true), 1 ); ?> />
<span class="description">Markiere diese Option, um den Login des Benutzers zu deaktivieren.</span>
</td>
</tr>
</table>
<?php
}
// Speichern der Checkbox-Option
function wp_multi_save_disable_login_checkbox($user_id) {
if ( isset( $_POST['disable_login'] ) ) {
update_user_meta( $user_id, 'disable_login', 1 );
} else {
delete_user_meta( $user_id, 'disable_login' );
}
}
// Die Checkbox in das Benutzerprofil einfügen
add_action( 'show_user_profile', 'wp_multi_add_disable_login_checkbox' );
add_action( 'edit_user_profile', 'wp_multi_add_disable_login_checkbox' );
// Speichern der Checkbox-Option
add_action( 'personal_options_update', 'wp_multi_save_disable_login_checkbox' );
add_action( 'edit_user_profile_update', 'wp_multi_save_disable_login_checkbox' );
// Login blockieren, wenn die Checkbox aktiviert ist
function wp_multi_block_login_if_disabled($user_login, $user) {
// Prüfen, ob der Benutzer das Flag "Login deaktivieren" gesetzt hat
if ( get_user_meta( $user->ID, 'disable_login', true ) ) {
// Fehlermeldung anzeigen, wenn der Login deaktiviert ist
wp_die( 'Dein Login wurde deaktiviert. Bitte kontaktiere den Administrator.' );
}
}
// Der Filter wird bei jedem Login-Versuch angewendet
add_action( 'wp_login', 'wp_multi_block_login_if_disabled', 10, 2 );