我正在尝试在我的网站上注册/登录,但我无法理解如何做到这一点,因为我正在尝试做一个wordpress主题,而在我的主题中没有小部件选项。我已经创建了模板页面,我想整合这些页面。 帮帮我
答案 0 :(得分:0)
在自定义WP主题中添加登录和注册
以下是您可以根据自己的要求稍后编辑的表单字段。
您有user_nick_name,可以用作用户名。 电子邮件,然后在最后提交按钮中输入密码。
<form id="sign_up_form" action="" method="post">
<input type="text" id="user_nickname" name="user_nickname" placeholder="Enter user desire username" />
<input type="text" id="user_email" name="user_email" placeholder="Enter your email" />
<input id="user_pass" name="user_pass" type="password" placeholder="Enter your password">
<input type="submit" value="Register now" />
</form>
您需要将以下代码放在JS文件中,此代码将帮助您生成Ajax请求。
重要提示:我在ajax-signup-script.js中添加了以下代码,我已将其放在js文件夹中,请确保您保留相同的名称以便继续使用相同的代码,如果您想要重命名这个文件,你还需要从另一个地方替换它以使工作正常。
jQuery(document).ready(function($){
"use strict";
// Sign Up
$('form#sign_up_form').on('submit', function(e){
$('form#sign_up_form p.status').show().text(ajax_signup_object.loadingmessage);
$.ajax({
type: 'POST',
dataType: 'json',
url: ajax_signup_object.ajaxurl,
data: {
'action': 'custom_signup', //calls wp_ajax_nopriv_ajaxlogin
'nickname': $('form#sign_up_form #user_nickname').val(),
'user_email': $('form#sign_up_form #user_email').val(),
'user_pass': $('form#sign_up_form #user_pass').val() },
success: function(data){
$('form#sign_up_form p.status').text(data.message);
if (data.signup == true){
document.location.href = ajax_signup_object.redirecturl;
}
}
});
e.preventDefault();
});
});
几乎完成了我们已经开始的工作,您需要将此代码放在functions.php。
中 function wordpress_custom_signup_function(){
//Get Defined Role by WordPress
$default_role = get_option('default_role');
$nickname = $_POST['nickname'];
$user_email = $_POST['user_email'];
$user_pass = $_POST['user_pass'];
//Check For the NickName Empty
if(isset($nickname) && $nickname <> ''){
$userdata = array(
'user_login' => $nickname,
'user_email' => $user_email,
'user_pass' => $user_pass,
'role' => $default_role
);
$exists = email_exists($user_email);
$user_signup = wp_insert_user( $userdata );
if ( !$exists ){
if ( is_wp_error($user_signup) ){
echo json_encode(array('signup'=>false, 'message'=>esc_attr__('Please verify the details you are providing.','custom-theme')));
} else {
echo json_encode(array('signup'=>true, 'message'=>esc_attr__('Your request submitted successfully, Redirecting you to login page!','custom-theme')));
}
}else{
echo json_encode(array('signup'=>false, 'message'=>'Notice: Email already exists!'.$exists.''));
}
}else{
echo json_encode(array('signup'=>false, 'message'=>esc_attr__('Please verify the details you are providing.','custom-theme')));
}
die();
}
function custom_function_for_signup(){
wp_register_script('ajax-signup-script', get_template_directory_uri().'/js/ajax-signup-script.js', array('jquery') );
wp_enqueue_script('ajax-signup-script');
wp_localize_script( 'ajax-signup-script', 'ajax_signup_object', array(
'ajaxurl' => esc_url(admin_url( 'admin-ajax.php' )),
'redirecturl' => esc_url(home_url()),
'loadingmessage' => esc_attr__('Sending user info, please wait...','custom-theme')
));
// Enable the user with no privileges to run ajax_login() in AJAX
add_action('wp_ajax_custom_signup', 'wordpress_custom_signup_function');
add_action('wp_ajax_nopriv_custom_signup', 'wordpress_custom_signup_function' );
}
add_action('init', 'custom_function_for_signup');