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

Introducing a simple Docker Compose setup for HMS MQTT Publisher

I’ve been tinkering with my home automation setup recently, specifically integrating HMS-XXXXW-2T series micro-inverters with my system. The hms-mqtt-publisher[GitHub, External] is a neat tool that does just that by fetching telemetry info from these inverters and publishing it to an MQTT broker. The catch? It typically requires compiling from source with Cargo, Rust’s package manager.


Weiter >>

Effortlessly Backing Up Paperless-ngx with Cloudflare, rclone, and Docker

In the digital age, data backup is a non-negotiable part of managing any document management system. For those of us relying on the efficiency and organizational prowess of Paperless-ngx, ensuring our data is safe and recoverable is paramount. I’ve devised a seamless backup solution that utilizes the power of Cloudflare’s rclone and Docker, guaranteeing peace of mind and data security. Here’s a detailed look into my approach, which is applicable not just for Paperless-ngx but for any data stored on R2 storage. (https://www.cloudflare.com/developer-platform/r2/, Pricing: https://www.cloudflare.com/plans/developer-platform/ (10GB/Month for free))


Weiter >>

Ein Leitfaden für Senioren: Günstige Smartphones und Handys für Senioren bis 170 Euro

Mit über 80 Jahren beschlossen mein Opa, sich der digitalen Welt anzuschließen. Meine Oma nutzt bereits ein Xiaomi-Handy und schätzt dessen Einfachheit. Nun möchte mein Opa auch ein Mobiltelefon, das eine gute Kamera hat und einfach zu bedienen ist, aber dennoch WhatsApp und andere Funktionen unterstützt – und besonders wichtig: Kein Senioren Handy

Kurzversion: Am Ende ist es das Xiaomi Redmi 12 geworden, was zu dem Zeitpunkt bei Amazon für 149,90 Euro verfügbar war*


Weiter >>