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!