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

Getting Started with Alfresco SDK/Development: A Beginner’s Guide to Automating File Organization with Alfresco Behaviors

Alfresco is an enterprise content management platform known for its flexibility and extensibility. One powerful way to extend its functionality is through Behaviors, which allow you to run custom logic whenever specific repository events occur. For example, you can trigger custom actions whenever nodes are created, updated, or deleted.


Weiter >>

Enhancing Alfresco’s Public API (ACS): A Step-by-Step Guide to Custom Node Extensions with MIME Type Restrictions

Introduction

In today’s digital landscape, controlling and validating the types of content users can upload into systems is essential for security and data integrity. Alfresco, a leading open-source content services platform, offers a flexible public API that enables developers to create custom extensions and adapt the platform to specific organizational needs. This article provides a step-by-step guide to implementing a MIME type restriction feature in Alfresco’s Nodes API, allowing for more controlled and secure content uploads.


Weiter >>

Warum der Air Assist unverzichtbar ist – Mein Erfahrungsbericht

Nachdem ich meinen ATOMSTACK A12 Ultra Laser[*] und die R2 V2 Drehwalze[*] in Betrieb genommen hatte, war es nur eine Frage der Zeit, bis ich mir zusätzlich ein Air Assist System zugelegt habe. Ich entschied mich für das DEWALLIE Air Assist Set[*], und ich kann schon vorweg sagen: Es war eine der besten Ergänzungen für meine Lasergravur-Setups, vor allem beim Arbeiten mit Holz!


Weiter >>

Mein neues Setup: Der ATOMSTACK R2 V2 Drehwalze und A12 Ultra/Pro Laser – Perfekt für Gravuren auf runden Objekten!

Als ich mir kürzlich den ATOMSTACK A12 Ultra Laser[*] zugelegt habe, war mir schnell klar, dass ich das volle Potenzial dieses leistungsstarken Gravierers ausschöpfen wollte. Also habe ich nicht lange gezögert und gleich die ATOMSTACK R2 V2 Drehwalze[*] dazu gekauft, die es ermöglicht, zylindrische Objekte wie Trinkflaschen, Gläser oder Stifte zu gravieren.


Weiter >>