prefix . 'blocked_users'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, username varchar(100) DEFAULT '' NOT NULL, email varchar(100) DEFAULT '' NOT NULL, ip_address varchar(45) DEFAULT '' NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); } function wp_multi_activate() { wp_multi_create_blocked_users_table(); } register_activation_hook( WP_MULTI_FILE, 'wp_multi_activate' ); function wp_multi_block_user($username = '', $email = '', $ip_address = '') { global $wpdb; if (empty($username) && empty($email) && empty($ip_address)) { return false; } $result = $wpdb->insert( $wpdb->prefix . 'blocked_users', [ 'username' => $username, 'email' => $email, 'ip_address' => $ip_address ] ); return $result !== false; } function wp_multi_delete_blocked_user($id) { global $wpdb; return $wpdb->delete($wpdb->prefix . 'blocked_users', ['id' => $id], ['%d']); } // Der Menüpunkt "Gesperrte Benutzer" wird zentral in wp_multi_register_admin_menus() registriert. function wp_multi_blocked_users_page() { global $wpdb; $notices = array(); if (isset($_POST['block_username']) || isset($_POST['block_email']) || isset($_POST['block_ip'])) { check_admin_referer('wp_multi_block_user'); $username = sanitize_text_field($_POST['block_username']); $email = sanitize_email($_POST['block_email']); $ip_address = sanitize_text_field($_POST['block_ip']); if (wp_multi_block_user($username, $email, $ip_address)) { $notices[] = array('success', __('Benutzer wurde gesperrt!', 'wp-multi')); } else { $notices[] = array('error', __('Fehler beim Sperren des Benutzers!', 'wp-multi')); } } if (isset($_GET['delete']) && isset($_GET['_wpnonce'])) { if (wp_verify_nonce($_GET['_wpnonce'], 'wp_multi_delete_user_' . $_GET['delete'])) { $user_id = intval($_GET['delete']); if ($user_id > 0 && wp_multi_delete_blocked_user($user_id)) { $notices[] = array('success', __('Benutzer wurde gelöscht!', 'wp-multi')); } else { $notices[] = array('error', __('Fehler beim Löschen des Benutzers!', 'wp-multi')); } } } $search_query = ''; if (isset($_GET['search'])) { $search_query = sanitize_text_field($_GET['search']); } $blocked_users = $wpdb->get_results($wpdb->prepare( "SELECT * FROM {$wpdb->prefix}blocked_users WHERE username LIKE %s OR email LIKE %s OR ip_address LIKE %s", '%' . $search_query . '%', '%' . $search_query . '%', '%' . $search_query . '%' )); wpmt_admin_page_open( __('Gesperrte Benutzer', 'wp-multi'), __('Benutzer per Name, E-Mail oder IP von Kommentaren ausschließen', 'wp-multi') ); foreach ($notices as $notice) { wpmt_admin_notice($notice[0], $notice[1]); } echo '