首先在functions.php中建立如下函数
/**
* start of custom registration module fucntion
*
**/
if (!isset($_SESSION)) {
session_start();
session_regenerate_id(TRUE);
}
/**
*Admin registration module,to add a registration form and to update the notification to the users
*/
if ( !function_exists('wp_new_user_notification') ) :
/**
* Notify the blog admin of a new user, normally via email.
*
* @since 2.0
*
* @param int $user_id User ID
* @param string $plaintext_pass Optional. The user's plaintext password
*/
function wp_new_user_notification($user_id, $plaintext_pass = '', $flag='') {
if(func_num_args() > 1 && $flag !== 1)
return;
$user = new WP_User($user_id);
$user_login = stripslashes($user->user_login);
$user_email = stripslashes($user->user_email);
// The blogname option is escaped with esc_html on the way into the database in sanitize_option
// we want to reverse this for the plain text arena of emails.
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
$message = sprintf(__('New user registration on your site %s:'), $blogname) . "\r\n\r\n";
$message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n";
$message .= sprintf(__('E-mail: %s'), $user_email) . "\r\n";
@wp_mail(get_option('admin_email'), sprintf(__('[%s] New User Registration'), $blogname), $message);
if ( empty($plaintext_pass) )
return;
// you can change the format in the Email
$message = sprintf(__('Username: %s'), $user_login) . "\r\n";
$message .= sprintf(__('Password: %s'), $plaintext_pass) . "\r\n";
$message .= 'The login url is : ' . wp_login_url() . "\r\n";
// sprintf(__('[%s] Your username and password'), $blogname) is the email subject
wp_mail($user_email, sprintf(__('[%s] Your username and password'), $blogname), $message);
}
endif;
/* Update the registration form */
function ludou_show_password_field() {
define('LCR_PLUGIN_URL', plugin_dir_url( __FILE__ ));
?>
<p>
<label>Password(at least 6 characters )<br/>
<input id="user_pwd1" class="input" type="password" tabindex="31" size="20" value="<?php echo $_POST['user_pass']; ?>" name="user_pass"/>
</label>
</p>
<p>
<label>Confirm Password<br/>
<input id="user_pwd2" class="input" type="password" tabindex="32" size="20" value="<?php echo $_POST['user_pass2']; ?>" name="user_pass2" />
</label>
</p>
<p style="margin:0 0 10px;">
<label>Choose your role:
<select name="user_role" tabindex="33" id="user_role">
<option value="">Select your role</option>
<option value="year7" <?php if($_POST['user_role'] == 'year7') echo 'selected="selected"';?>>Year 7</option>
<option value="year8" <?php if($_POST['user_role'] == 'year8') echo 'selected="selected"';?>>Year 8</option>
<option value="year9" <?php if($_POST['user_role'] == 'year9') echo 'selected="selected"';?>>Year 9</option>
<option value="year10" <?php if($_POST['user_role'] == 'year10') echo 'selected="selected"';?>>Year 10</option>
<option value="year11" <?php if($_POST['user_role'] == 'year11') echo 'selected="selected"';?>>Year 11</option>
<option value="year12" <?php if($_POST['user_role'] == 'year12') echo 'selected="selected"';?>>Year 12</option>
</select>
</label>
<br />
</p>
<?php
}
/* to handle with the submitted data */
function ludou_check_fields($login, $email, $errors) {
if(strlen($_POST['user_pass']) < 6)
$errors->add('password_length', "<strong>ERROR</strong>: Password should be at least 6 characters");
elseif($_POST['user_pass'] != $_POST['user_pass2'])
$errors->add('password_error', "<strong>ERROR</strong>: Please check your confirm password");
if($_POST['user_role'] != 'year7' && $_POST['user_role'] != 'year8' && $_POST['user_role'] != 'year9' && $_POST['user_role'] != 'year10' && $_POST['user_role'] != 'year11' && $_POST['user_role'] != 'year12')
$errors->add('role_error', "<strong>ERROR</strong>: Please choose one correct role");
}
/* TO save the submitted data */
function ludou_register_extra_fields($user_id, $password="", $meta=array()) {
$userdata = array();
$userdata['ID'] = $user_id;
$userdata['user_pass'] = $_POST['user_pass'];
$userdata['role'] = $_POST['user_role'];
wp_new_user_notification( $user_id, $_POST['user_pass'], 1 );
wp_update_user($userdata);
}
function remove_default_password_nag() {
global $user_ID;
delete_user_setting('default_password_nag', $user_ID);
update_user_option($user_ID, 'default_password_nag', false, true);
}
add_action('admin_init', 'remove_default_password_nag');
add_action('register_form','ludou_show_password_field');
add_action('register_post','ludou_check_fields',10,3);
add_action('user_register', 'ludou_register_extra_fields');
//end of custom registration module fucntion
然后下载如下插件
SI CAPTCHA Anti-Spam
设置生效后 就可以得到你想要的结果了
- 大小: 16.3 KB
分享到:
相关推荐
•设定自定义表单,允许插入到页面,日志中去; •非常强悍的表单定制功能,支持各种表单域,可添加验证码,Ajax提交; •可以取代WP的评论表单; •集成了Tell-A-Friend的功能; •强悍方便的后台管理界面; ...
在WordPress中,自定义登录界面是一项常见的需求,它允许网站管理员根据自己的品牌或者设计风格来个性化用户登录体验。本文将深入探讨如何通过自定义插件实现这一目标,以"自定义wordpress登陆界面插件"为例。 首先...
如果您是想添加前台注册功能,可以参考:WordPress添加前台注册功能 如果您需要用户注册时填写手机号,可以用这个插件:Ludou Phone Register [2021年5月26日更新] * 4.0版 删除了验证码 如果你的WordPress开放...
"WordPress主题自定义导航菜单操作使用方法" WordPress主题自定义导航菜单操作使用方法是 WordPress 3.0 新增的功能之一,该功能使得我们可以更加容易地对网站菜单进行可视化操作。通过本教程,我们将详细地介绍 ...
使用WordPress建博客时,你是否为首页中显示日志数太多而苦恼,假设你想在首页上显示三篇日志,分类页面上每页10篇,日志存档中每页20篇,有这个想法你会怎么做,肯定是大动干戈,处理模板代码文件,找代码、修改...
可以使用 [smartads]快捷方式来在文章或者页面调用自定义广告——广告代码直接在插件选项里面设置。如果你使用的是wp2.7版本,删除插件后,插件会自动从Mysql数据库删除相应的设定。 Smart Ads插件安装: 1.下载...
### WordPress自定义主题知识点详解 #### 一、创建自定义主题的基本步骤 1. **进入主题路径**:首先,你需要定位到WordPress安装目录下的主题文件夹。路径通常为`www\wordpress\wp-content\themes`。 2. **创建...
在WordPress中,自定义文章类型(Custom Post Types)是一种强大的功能,允许用户扩展默认的文章、页面等基础类型,创建适合自己网站需求的特定内容类型。在本案例中,开发者通过自定义文章类型实现了任意模板的使用...
MobilePress插件能让你的博客在手机Wap浏览器上优化后正常显示,为你节省流量,此插件比较特别的地方就是在于它支持自定义主题,也可以为MobilePress创建自己的主题,听上去不错吧。而且,MobilePress插件允许为特定...
这一篇教程我们将创建一个自定义的注册页面。 原文使用的是自定义的页面模板,我们在文章结尾将讲述使用我们上一篇教程说到的自定义url重写功能来添加这样一个页面。 第一步:创建文件。 我们还是以默认的twenty ten...
元框-WordPress自定义字段框架 描述 Meta Box是一款功能强大,专业且轻巧的工具包,可让开发人员创建无限的自定义meta框和WordPress自定义字段。 Meta Box可使用40多种不同的字段类型(例如文本,图像,文件上载,...
为了解决这个问题,我们可以利用WordPress的自定义函数功能来控制文章标题的显示长度。下面将详细讲解如何实现这一功能。 首先,我们需要创建一个自定义函数,用于截取标题中的指定长度部分。在`wp-includes/...
在WordPress中,自定义文章列表...这种方法增强了WordPress的文章管理界面,使其更加符合个性化的需求,提高了工作效率。对于有类似需求的WordPress开发者来说,这是一个实用的示例,可以作为自定义文章列表列的模板。
流量好的博客,挂点广告赚点小钱,是不少站长朋友所期望的,为了满足广大博主的愿望,wordpress的爱好者们开发了不少广告类的插件,今儿就介绍一款广告插件AdSense Integrator,使用起来也是非常的简单。 AdSense ...
本文将详细解析标题和描述中提到的“wordpress自定义循环列表的PHP代码”,并介绍如何利用这段代码来实现WordPress中的自定义内容循环。 首先,我们看到代码中使用了一个变量 `$epaged`,它用于获取当前页面的分...
虽然没有具体的标签提供额外信息,我们可以从文件名推测,它可能包含了一个HTML模板或者是一个自定义设计的WordPress登录和注册界面。 在WordPress中,登录和注册页面是网站用户交互的重要部分。默认情况下,...
在Android应用开发中,自定义登录界面是一项常见的需求,它能提供独特的用户体验并彰显应用的品牌特色。本项目名为“自定义登陆界面”,其核心在于创建一个具有渐变背景和半透明背景框的登录界面,这样的设计既美观...
如果你没有在后台为某个自定义导航位置指定菜单,WordPress会默认将所有页面添加到该导航中,这是一个可能会引起误解的默认行为。为了避免这种情况,你可以在后台创建一个空的菜单,并将其分配给不需要显示的导航...
完成注册后,你可以在WordPress后台的“外观”>“小工具”界面看到新注册的边栏。在这里,你可以将各种小工具拖放到这些自定义边栏中,以展示你想显示的内容。 在主题模板文件中,为了显示这些自定义边栏,你需要...