create_user.php 7.35 KB
<?php
namespace Tz\WordPress\Tools\UserManager;

use Tz, Tz\Common;
use Tz\WordPress\CBV;
use Tz\WordPress\UAM;
use Tz\WordPress\Tools;
use Tz\WordPress\Tools\HTML;
use Exception, StdClass;
use WP_User, WP_Roles;

Tools\import('HTML');

$rc = new WP_Roles();
$roles = $rc->role_names;
ksort($roles);
unset($rc, $roles['administrator']);

?>

<style>

#post-body {
    -moz-border-radius-bottomleft:6px;
    -moz-border-radius-bottomright:6px;
    -moz-border-radius-topright:6px;
    -moz-border-radius-topleft:6px;
    background:none repeat scroll 0 0 #FFFFFF;
    border-width:1px 1px 1px 1px;
    padding:10px;
    margin-top:20px;
}
#nav-menu-header, #post-body,#post-header {
    border-color:#CCCCCC;
    border-style:solid;
}

#menu-management .nav-tab {
    background:none repeat scroll 0 0 #F4F4F4;
}

#menu-management .nav-tab-active {
    background:none repeat scroll 0 0 #fff;
    border-bottom-color:#fff;
}

</style>
<div id="" class="wrap">
    <div id="icon-users" class="icon32"><br /></div>
    <h2>Creating a new CBV User...</h2>
    
    <div id="post-body">
        <div style="padding:10px 10px 0px 10px; min-width:760px;">
        <form method="post" id="admin-new-user-form">
            
            <table cellpadding="0" cellspacing="0" border="0" class="my-profile-table" style="float:left; width:350px;">
                <tbody>
                    <tr>
                        <th width="120px;">Username:</th>
                        <td><input type="text" name="username" required /></td>
                    </tr>
                    <tr>
                        <th>First Name:</th>
                        <td><input type="text" name="first_name" required /></td>
                    </tr>
                    <tr>
                        <th>Last Name:</th>
                        <td><input type="text" name="last_name" id="create_last_name" required /></td>
                    </tr>
                    <tr><td colspan="2">&nbsp;</td></tr>
                    <tr>
                        <th>&nbsp;</th>
                        <td><select name="profile_preference" id="profile_preference"><option value="Home">Home&nbsp;</option><option value="Work">Work&nbsp;</option></select></td>
                    </tr>
                    <tr>
                        <th>Email:</th>
                        <td><input type="text" name="email" required /></td>
                    </tr>
                    <tr>
                        <th>Country:</th>
                        <td><?php echo HTML\form_dropdown('country', HTML\Vars::$countries, '', "id='country'"); ?></td>
                    </tr>
                    <tr>
                        <th>Province:</th>
                        <td><?php echo HTML\form_linked_dropdown('province', 'country', HTML\Vars::$provinces,'', ''); ?></td>
                    </tr>
                </tbody>
            </table>
            
            <table cellpadding="0" cellspacing="0" border="0" class="my-profile-table" style="float:left; width:350px;">
                <tbody>
                    <tr>
                        <th>User Type:</th>
                        <td>
                        <select name="user_role" id="create_user_role">
                            <?php foreach($roles as $roled=>$name):?>
                            <option value="<?php echo $roled;?>" <?php echo ($roled=="guest") ? "selected" : "";?>><?php echo $name;?></option>    
                            <?php endforeach;?>
                        </select>
                        </td>
                    </tr>
                    <tr id="create_member_id">
                        <th class="member_id_label">Member ID:</th>
                        <td><input type="text" name="member_id" id="member_id" readonly="readonly" /></td>
                    </tr>
                    <tr><td colspan="2">&nbsp;</td></tr>
                    <tr>
                        <th>Password (twice):</th>
                        <td><input type="password" name="password" required /></td>
                    </tr>
                    <tr>
                        <th>&nbsp;</th>
                        <td><input type="password" name="password2" required /></td>
                    </tr>
                </tbody>
            </table>
            
            <div style="clear:both;"></div>
            
            <div class="validation-errors" style="display:none;margin-top:10px;"><div class="error-wrap"><h6>OOPS...</h6><ul></ul></div></div>
            
            <div style="margin-top:10px;padding-top:5px; border-top:1px solid #e8e8e8;">
                <input type="submit" value="Create User" />
            </div>
            
        </form>
        </div>
        
    </div>
    
</div>

<script src="<?php echo Tools\url('../UserManager.js', __FILE__);?>" type="text/javascript"></script>
<script type="text/javascript">
    var $ = jQuery;
    
    var $role_selector          = $('#create_user_role');
    var $member_id_container    = $('#create_member_id');
    var $member_id_label        = $('.member_id_label');
    var $member_id_field        = $('#member_id');
    var $form                   = $('#admin-new-user-form');
    var $last_name_field        = $('#create_last_name');
    
    function changedUserRole() {
        if ($role_selector.val() == "member" || $role_selector.val()=="student") {
            if ($role_selector.val() == "member") { 
                $member_id_label.html('Member ID:'); 
            } else {
                $member_id_label.html('Student ID:'); 
            }
            updateMemberID();
            $member_id_container.show();
        } else {
            $member_id_container.hide();
        }
    }
    
    function updateMemberID() {
        /*
        var lname = $last_name_field.val();
        if ($role_selector.val() == "member") {
            $.ajax({
                url:        '/wp-admin/admin-ajax.php'
              , data:       ({ajax:"yes", action: 'admin_create_member_id', last_name: lname})
              , dataType:   'json'
              , type:       'post'
              , success:    function(data) {
                    $member_id_field.val(data.member_id);
                }
            });
        }
        */
        $member_id_field.removeAttr('readonly');
    }
    
    $(function() {
        changedUserRole();
        
        $('#create_last_name').blur(function() {
            updateMemberID();
        });
        
        $role_selector.change(function() {
            changedUserRole();
        });
        
        var options = {
            url:        '/wp-admin/admin-ajax.php'
          , dataType:   'json'
          , type:       'post'
          , data: ({ajax:"yes", action: 'admin_create_user', section: 'create'})
          , beforeSubmit:   function(formData, jqForm, options) {
                var $error_container = jQuery('.validation-errors');
                $error_container.hide();
            }
          , success:    function(data) {
                if (data.success == "true") {
                    document.location.href=data.edit_profile
                } else {
                    var $error_container = jQuery('.validation-errors');
                    jQuery('h6',$error_container).html("OOPS...");
                    jQuery('ul',$error_container).html(data.msg);
                    $error_container.show();
                }

            }
        };
        $form.ajaxForm(options);
        
    });
    
    
</script>