用于查找和初始化操作
if (!is_user_logged_in()) {
add_action(\'init\', \'ajax_login_init\');
} else {
add_action(\'init\', \'ajax_logout_init\');
}
function ajax_login_init()
{
add_action(\'wp_ajax_nopriv_ajax_login\', \'ajax_login\');
add_action(\'wp_ajax_nopriv_ajax_register\', \'ajax_register\');
}
function ajax_logout_init()
{
add_action(\'wp_ajax_ajax_logout\', \'ajax_logout\');
}
登录功能
function ajax_login()
{
check_ajax_referer(\'ajax-login-nonce\', \'security\');
$info = array();
$info[\'user_login\'] = $_POST[\'login_username\'];
$info[\'user_password\'] = $_POST[\'login_password\'];
$info[\'remember\'] = $_POST[\'remember\'];
$user_signon = wp_signon($info, false);
if (is_wp_error($user_signon)) {
wp_send_json(array(\'status\' => 0, \'message\' => $user_signon->get_error_message()));
} else {
wp_send_json(array(\'status\' => 1, \'message\' => __(\'you currectly logined\')));;
}
}
寄存器功能
function ajax_register()
{
check_ajax_referer(\'ajax-register-nonce\', \'security\');
// Post values
$username = sanitize_text_field($_POST[\'register_username\']);
$password = sanitize_text_field($_POST[\'register_password\']);
$email = sanitize_text_field($_POST[\'register_email\']);
$name = sanitize_text_field($_POST[\'register_name\']);
$nick = sanitize_text_field($_POST[\'register_name\']);
$userdata = array(
\'user_login\' => $username,
\'user_pass\' => $password,
\'user_password\' => $password,
\'user_email\' => $email,
\'first_name\' => $name,
\'nickname\' => $nick,
);
$user_id = wp_insert_user($userdata);
// add user meta
$custom_user_meta_value = \'custom_user_meta_value\';
add_user_meta( $user_id, \'custom_user_meta\', $custom_user_meta_value);
// Return
if (!is_wp_error($user_id)) {
$user_signon = wp_signon($userdata, false);
if (!is_wp_error($user_signon)) {
wp_send_json(array(\'status\' => 2, \'message\' => __(\'your registration is successfuled and logined.\')));
} else {
wp_send_json(array(\'status\' => 1, \'message\' => __(\'your registration is successfuled and logined\')));
}
} else {
wp_send_json(array(\'status\' => 0, \'message\' => __($user_id->get_error_message())));
}
}
注销功能
function ajax_logout()
{
check_ajax_referer(\'ajax-logout-nonce\', \'ajaxsecurity\');
wp_logout();
ob_clean(); // probably overkill for this, but good habit
echo \'adios!!\';
wp_die();
}
add_action(\'wp_logout\', \'auto_redirect_after_logout\');
function auto_redirect_after_logout()
{
wp_redirect(home_url());
exit();
}