Allen WordPress-Usern ein neues Passwort senden

| | Allgemein, Programmierung, Web

Nach einer längeren Pause auf meinem Blog hab ich heute etwas mit gebracht. Wer WordPress mit vielen Benutzern verwenden will, hat besonders beim Anlegen der User das Problem das man im nach hinein kein Passwort mehr versenden kann.

Und genau aus diesem Grund habe ich vor kurzem mal ein kleines Script geschrieben.

<?php
   /*
   Plugin Name: User Password Sender
   Plugin URI: http://www.koli-design.de/
   Description: With this tool you can send each WP user a random Password
   Author: Marc Horst
   Author URI: http://www.koli-design.de/
   Version: 1.0.1
*/
add_action('admin_menu', 'add_dashboard_menu');
function add_dashboard_menu(){
        add_menu_page( "User Password Send","UP SEND", "activate_plugins", "up", "main", "", 3 );
}

function randomPassword() {
    $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
    $pass = '';                           //password is a string
    $alphaLength = strlen($alphabet) - 1; //put the length -1 in cache
    for ($i = 0; $i < 10; $i++) {
        $n = mt_rand(0, $alphaLength);    
        $pass = $pass.$alphabet[$n];      //append a random character
    }
    return ($pass); 
}

function main() {
        global $users;
        $userslist = get_users_of_blog();
        
        if(isset($_POST['update'])) {
                
                foreach($_POST['selected'] as $value) {
                        $pass = randomPassword();
                        $userdata = get_userdata($value);
                        $newtext = $_POST['text'];
                        $newtext = str_replace(array("%USERNAME","%PASS","<br>"),array($userdata->user_login,$pass,"<br />"),$newtext);
                        echo $value." - ".$userdata->user_email;
                        echo " - ";
                        echo $pass;
                        echo "<br />";
                        wp_set_password($pass,$value);
                        $header  = 'MIME-Version: 1.0' . "\r\n";
                        $header .= 'Content-type: text/html; charset=utf-8' . "\r\n";

                        // zusätzliche Header
                        $header .= 'From: <no-reply@'.$_SERVER['HTTP_HOST'].'>' . "\r\n";
                        
                        //TODO: Betreff muss Dynamisiert werden, Sender auch 
                        mail($userdata->user_email,"neues PW",$newtext, $header);
                        echo "erfolg";
                        
                        unset($pass);
                }
        
        }
        else {
                ?>
                </br >
                <h3>Text</h3>
                <small>%PASS, %USERNAME</small>
                <form method="post">
                <input type="hidden" name="update" ></input>
                <textarea name="text" style="width: 50%; height: 200px;"></textarea><br /></br >
                <h3>Select Users</h3>
                <select multiple="multiple" name="selected[]">

                        <?php
                        
                        foreach($userslist as $user) {
                        $user = (array) $user;
                                echo '<option value="'.$user["user_id"].'">'.$user["display_name"].'</option>';
                        }
                        
                        ?>
                        </select>
                        </br ></br >
                        <input type="submit"></input>
                </select>
                </form>
                <?php
        }
        return true;
        
}
?>

Ich hoffe das es einigen Hilft!

Neueste Beiträge

Upgrade fürs Homelab: Vom 150-€-Mini-Server zum MINISFORUM MS-01 als Heimserver/Homelab: i9-12900H, 10 GbE, USB4 & PCIe-GPU, ideal für LLMs, Docker & Home Assistant

Mein kleiner Mini-Server aus diesem Beitrag läuft immer noch ohne Zicken:
Heimserver für Home Assistant und anderes für ca. 150 Euro.
Aber: Ich bastle inzwischen deutlich mehr mit LLMs, Containern und VMs – also musste etwas Stärkeres her.

Gekauft habe ich nun den MINISFORUM MS-01 als Barebone mit Intel Core i9-12900H (hier)[*],
dazu diese NVMe-SSD (Link)[*] und dieses DDR5-RAM-Kit (Link)[*].

Ergebnis: Setup an, Dienste rübergezogen – fertig. Die Kiste ist im Alltag leise, unter LLM-Last brüllt sie nicht, legt aber hörbar los – so soll’s sein.


Weiter >>

Glas gravieren mit Diodenlaser: So klappt’s mit einfacher Gouachefarbe

Glasgravur für Zuhause: Wie du mit einfacher Wasserfarbe und einem Diodenlaser wie dem Atomstack perfekte Ergebnisse erzielst

Du willst Weingläser, Sektgläser oder Kölschstangen selbst gravieren? Ganz einfach zuhause, ohne teures Profi-Equipment? Dann bist du hier genau richtig! In diesem Artikel zeige ich dir, wie du mit einem Diodenlaser wie dem Atomstack A12 Ultra Pro[*] und einer einfachen schwarzen Wasserfarbe beeindruckende Gravuren auf Glas zauberst.

Das Besondere: Du brauchst keinen teuren Speziallack! Eine ganz normale, deckende Gouachefarbe auf Wasserbasis[*] reicht völlig aus – einfach aufzutragen, abwaschbar und absolut effektiv. Perfekt für Einsteiger, Hobby-Maker und DIY-Fans.


Weiter >>

Your MSPA Goes Smart – Step-by-Step to a DIY Smart Home Hot Tub (Wi-Fi Upgrade)

Introduction

In this article, I’ll show you how I successfully reverse-engineered the serial communication protocol of an MSPA Muse Carlton hot tub. The goal was to read remote control commands and send custom ones. I used an ESP32 Dev Board[*] for this. This protocol likely works with other MSPA models as well.

This article is for makers, home automation enthusiasts, and tech fans who enjoy diving deep into technical systems.


Weiter >>