博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开源欣赏wordpress之用户新增user-new.php
阅读量:6618 次
发布时间:2019-06-25

本文共 4967 字,大约阅读时间需要 16 分钟。

require_once( dirname( __FILE__ ) . '/admin.php' );

引入根文件。

 

if ( is_multisite() ) {    if ( ! current_user_can( 'create_users' ) && ! current_user_can( 'promote_users' ) )        wp_die( __( 'Cheatin’ uh?' ) );} elseif ( ! current_user_can( 'create_users' ) ) {    wp_die( __( 'Cheatin’ uh?' ) );}

用户权限验证,封装在方法当中了。

 

用户信息输入完后,跳转到列表。是这么个流程。

用户列表有批量操作的多选按钮。同时有新增用户,等管理。

同时可以根据多个条件进行搜索。搜索过程中子页面是跳转的。结果信息直接在头部提示。

我们继续看代码。

 

$user_details = null;    if ( false !== strpos($_REQUEST[ 'email' ], '@') ) {        $user_details = get_user_by('email', $_REQUEST[ 'email' ]);    } else {        if ( is_super_admin() ) {            $user_details = get_user_by('login', $_REQUEST[ 'email' ]);        } else {            wp_redirect( add_query_arg( array('update' => 'enter_email'), 'user-new.php' ) );            die();        }    }

一些逻辑验证,方法封装,很多可以具有通用性。比如wp_redirect()就特别具有通用性,一个项目中离不开页面跳转。

 

这种简洁的页面设计就特别有意思。背景变红,边框变红。

这次的错误提示是提交后,后台反馈的。

很有意思。前后端同时验证。

错误:请填写用户名。

错误:此用户名包含无效字符,请输入有效的用户名。

错误:电子邮件地址不正确。

这就是html的内容,是在div层中展示出来的。

 

// Adding an existing user to this blog    $new_user_email = $user_details->user_email;    $redirect = 'user-new.php';    $username = $user_details->user_login;    $user_id = $user_details->ID;    if ( ( $username != null && !is_super_admin( $user_id ) ) && ( array_key_exists($blog_id, get_blogs_of_user($user_id)) ) ) {        $redirect = add_query_arg( array('update' => 'addexisting'), 'user-new.php' );    }

进行用户已存在验证。

 

$newuser_key = substr( md5( $user_id ), 0, 5 );            add_option( 'new_user_' . $newuser_key, array( 'user_id' => $user_id, 'email' => $user_details->user_email, 'role' => $_REQUEST[ 'role' ] ) );            $roles = get_editable_roles();            $role = $roles[ $_REQUEST['role'] ];            /* translators: 1: Site name, 2: site URL, 3: role, 4: activation URL */            $message = __( 'Hi,You\'ve been invited to join \'%1$s\' at%2$s with the role of %3$s.Please click the following link to confirm the invite:%4$s' );            wp_mail( $new_user_email, sprintf( __( '[%s] Joining confirmation' ), get_option( 'blogname' ) ), sprintf( $message, get_option( 'blogname' ), home_url(), wp_specialchars_decode( translate_user_role( $role['name'] ) ), home_url( "/newbloguser/$newuser_key/" ) ) );            $redirect = add_query_arg( array('update' => 'add'), 'user-new.php' );

通过验证,各种欢迎。

 

if ( isset($_GET['update']) ) {    $messages = array();    if ( is_multisite() ) {        switch ( $_GET['update'] ) {            case "newuserconfirmation":                $messages[] = __('Invitation email sent to new user. A confirmation link must be clicked before their account is created.');                break;            case "add":                $messages[] = __('Invitation email sent to user. A confirmation link must be clicked for them to be added to your site.');                break;            case "addnoconfirmation":                $messages[] = __('User has been added to your site.');                break;            case "addexisting":                $messages[] = __('That user is already a member of this site.');                break;            case "does_not_exist":                $messages[] = __('The requested user does not exist.');                break;            case "enter_email":                $messages[] = __('Please enter a valid email address.');                break;        }    } else {        if ( 'add' == $_GET['update'] )            $messages[] = __('User added.');    }}

消息提示,分类提示,很有意思。貌似这个也是封装好的内容。

    get_error_messages() as $err ) echo "
  • $err
  • \n"; ?>

' . $msg . '

';} ?>
get_error_messages() as $message ) echo "

$message

"; ?>

错误信息展示,如果有的话,将div展示出来。这就是前端的逻辑,可以卸载tpl中。

 

验证页面的表单设计。

 

'createusersub' ) ); ?>

一些尾文件的引入。

 

很有意思。php还可以这么玩。

本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/3470223.html,如需转载请自行联系原作者

你可能感兴趣的文章
Oracle参数设置之set与reset的实际案例
查看>>
Python 字典 copy()方法
查看>>
判断是否是爬虫在访问网站
查看>>
将TIMESTAMP类型的差值转化为秒的方法
查看>>
java程序员必须要学会的linux命令总结
查看>>
Java代码规范和质量检查插件-Checkstyle(官方资源)
查看>>
IDEA:将WEB-INF\lib下的Jar包添加到项目中
查看>>
【Java猫说】Java多线程之内存可见性(下篇)
查看>>
php-socket 客户端/服务端
查看>>
SVN迁移到GIT且保留提交日志
查看>>
cookie、localStorage和sessionStorage详解
查看>>
jenkins+maven+docker+github全自动化部署SpringBoot实例
查看>>
在Kubernetes上运行高可用的WordPress和MySQL
查看>>
Python 调用 C 动态链接库,包括结构体参数、回调函数等
查看>>
正则表达式速查笔记
查看>>
Go代码打通HTTPs
查看>>
[Leetcode] Reverse Linked List 链表反转(递归与非递归)
查看>>
《SVG精髓》笔记(一)
查看>>
HTML中dl元素的高度问题
查看>>
基础教学 | 什么是负载均衡?
查看>>