WordPress.org

GlotPress

Ticket #196: add-new-user.php

File add-new-user.php, 1.7 KB (added by juanramondiaz, 6 years ago)
Line 
1<?php
2require_once dirname( dirname( __FILE__ ) ) . '/gp-load.php';
3
4class GP_Script_Add_New_User extends GP_CLI {
5   
6    var $short_options = 'u:e:p:';
7   
8    var $usage = "-u <username> -e <e-mail> [-p <password>]";
9   
10    function run() {
11        if ( !isset( $this->options['u'] ) || !isset( $this->options['e'] ) ) {
12            $this->usage();
13        }
14
15        $user_by_login = GP::$user->by_login( $this->options['u'] );
16        if ( $user_by_login ) {
17            $this->to_stderr( sprintf("User '%s' already exists.", $this->options['u']) );
18            exit( 1 );
19        }
20
21        $user_by_email = GP::$user->by_email( $this->options['e'] );
22        if ( $user_by_email ) {
23            $this->to_stderr( sprintf("Email '%s' already exists.", $this->options['e']) );
24            exit( 2 );
25        }
26
27        $args = array();
28        $args['user_login'] = $this->options['u'] ;
29        $args['user_nicename'] = $this->options['u'] ;
30        $args['display_name'] = $this->options['u'] ;
31        $args['user_email'] = $this->options['e'] ;
32        if( isset( $this->options['p']) ) {
33            $args['user_pass'] = $this->options['p'] ;
34        }
35
36        $user = GP::$user->create( $args ) ;
37        if( !$user ) {
38            $this->to_stderr( sprintf("User '%s' hasn't been added.", $this->options['u']) );
39            exit( 3 );
40        }
41
42        $this->to_stderr( "New user has been added:" );
43        $this->to_stderr( sprintf("    - user: %s", $user->user_login) );
44        $this->to_stderr( sprintf("    - e-mail: %s", $user->user_email) );
45        $this->to_stderr( sprintf("    - pass: %s", $user->plain_pass) );
46    }
47}
48
49$gp_script_add_new_user = new GP_Script_Add_New_User;
50$gp_script_add_new_user->run();