Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //error_reporting(E_ALL);
- //ini_set("display_errors", 1);
- define('PASS_LEN', 6);
- //login shortcode
- add_shortcode('ajax_login', 'ajaxlogin_shortcode_handler');
- function ajaxlogin_shortcode_handler($atts, $content = null) {
- ob_start();
- ?>
- <div id="loginform">
- <form name="ajaxlogin" id="ajaxlogin" action="" method="post" class="wpcf7">
- <span class="login-username">
- <label for="user_login">Email Address</label>
- <input type="text" name="username" id="user_login" class="input" value="" size="20">
- </span>
- <span class="login-password">
- <label for="user_pass">Password</label>
- <input type="password" name="password" id="user_pass" class="input" value="" size="20">
- </span>
- <div class="login-submit cfx">
- <input type="submit" name="wp-submit" id="wp-submit" class="button" value="Login">
- <input type="hidden" name="redirect_to" value="<?php echo site_url($_SERVER["REQUEST_URI"]); ?>" />
- <?php echo wp_nonce_field('ajax-login-nonce', 'security', null, false); ?>
- </div>
- <div id="login-result"><span></span></div>
- <p id="login-message"></p>
- </form>
- </div>
- <?php
- $logform = ob_get_contents();
- ob_end_clean();
- return $logform;
- }
- add_shortcode('ajax_register', 'ajax_regi_form');
- function ajax_regi_form($atts, $content = null) {
- $atts = shortcode_atts(array('page' => 'register'), $atts);
- $frm_name = $atts['page'] == 'profile' ? "ajaxprofile" : "ajaxregi";
- $frm_subm = $atts['page'] == 'profile' ? get_field('save', 'options') : get_field('register_text', 'options');
- $usr_email = $usr_name = $usr_phone = $usr_phone_2 = "";
- if (is_user_logged_in()) {
- global $current_user;
- $cur_usr = $current_user;
- $usr_meta = get_user_meta($cur_usr->ID);
- $usr_email = $cur_usr->user_email;
- $usr_name = isset($usr_meta) && trim($cur_usr->first_name) ? $cur_usr->first_name : $cur_usr->display_name;
- $usr_phone = isset($usr_meta['phone']) ? $usr_meta['phone'][0] : "";
- $usr_phone_2 = isset($usr_meta['phone_2']) ? $usr_meta['phone_2'][0] : "";
- }
- ob_start();
- ?>
- <form name="<?php echo $frm_name; ?>" id="<?php echo $frm_name; ?>" class="wpcf7">
- <span class="regi-username req_star">
- <label for="regi_user_login"> <?php the_field('f_name', 'options') ?></label>
- <input type="text" name="first_name" id="regi_user_name" class="input" value="<?php echo $usr_name; ?>" size="20" />
- </span>
- <span class="regi-username req_star">
- <label for="user_login">E-mail</label>
- <input type="text" name="user_email" id="regi_user_email" class="input" value="<?php echo $usr_email; ?>" size="20" />
- </span>
- <?php if ($atts['page'] == 'profile') { ?>
- <span class="regi-phone req_star">
- <label for="user_phone"><?php the_field('phone_number', 'options') ?></label>
- <input type="text" name="user_phone" id="regi_user_phone" class="input" value="<?php echo $usr_phone; ?>" size="20"/>
- </span>
- <span class="regi-phone req_star">
- <label for="user_phone"><?php the_field('phone_number', 'options') ?> 2</label>
- <input type="text" name="user_phone_2" id="regi_user_phone_2" class="input" value="<?php echo $usr_phone_2; ?>" size="20" />
- </span>
- <?php } else { ?>
- <span class="regi-password req_star">
- <label for="regi_user_pass"><?php the_field('pass', 'options') ?></label>
- <input type="password" name="user_pass" id="regi_user_pass" class="input" value="" size="20" />
- </span>
- <span class="regi-password req_star">
- <label for="regi_user_pass"><?php the_field('reenter_pass', 'options') ?></label>
- <input type="password" name="user_repass" id="regi_user_repass" class="input" value="" size="20" />
- </span>
- <?php } ?>
- <div class="regi-submit cfx">
- <input type="submit" name="wp-submit" id="wp-submit" class="button" value="<?php echo $frm_subm; ?>" />
- <?php
- if ($atts['page'] == 'profile') {
- echo '<input type="hidden" name="action" value="update_profile" />';
- echo wp_nonce_field('prof_edit_nonce', 'prof_security', null, false);
- } else {
- echo '<input type="hidden" name="redirect_to" value="' . site_url($_SERVER["REQUEST_URI"]) . '" />';
- echo '<input type="hidden" name="action" value="custom_register" />';
- echo wp_nonce_field('ajax-login-nonce', 'reg_security', null, false);
- }
- ?>
- </div>
- <div class="ajax-result"></div>
- </form>
- <?php
- $reform = ob_get_contents();
- ob_end_clean();
- return $reform;
- }
- add_shortcode('ajax_changepass', 'ajaxchangepass_shortcode_handler');
- function ajaxchangepass_shortcode_handler($atts, $content = null) {
- ob_start();
- ?>
- <form name="ajaxchangepass" id="ajaxchangepass" action="" method="post" class="wpcf7">
- <div class="ajax-result"></div>
- <span class="regi-password req_star">
- <label for="user_oldpass"><?php the_field('old_p', 'options') ?></label>
- <input type="password" name="user_oldpass" id="user_oldpass" class="input" value="" size="20">
- </span>
- <span class="regi-password req_star">
- <label for="user_pass"><?php the_field('n_pass', 'options') ?></label>
- <input type="password" name="user_pass" id="user_pass" class="input" value="" size="20">
- </span>
- <span class="regi-password req_star">
- <label for="user_repass"><?php the_field('rep_rass', 'options') ?></label>
- <input type="password" name="user_repass" id="user_repass" class="input" value="" size="20">
- </span>
- <div class="regi-submit cfx">
- <input type="submit" name="wp-submit" class="button" value="<?php the_field('save', 'options') ?>">
- <input type="hidden" name="action" value="change_password" />
- <?php echo wp_nonce_field('ajax-changepass-nonce', 'changepass_security', null, false); ?>
- </div>
- </form>
- <?php
- $form = ob_get_contents();
- ob_end_clean();
- return $form;
- }
- add_action('wp_ajax_change_password', 'ajax_change_password');
- function ajax_change_password() {
- $errors = array();
- $addMsg = "";
- $user = get_user_by('id', get_current_user_id());
- if (!is_user_logged_in() || !check_ajax_referer('ajax-changepass-nonce', 'changepass_security')) {
- $result['msg'] = alertMessage("You don't have sufficient permissions to edit profile!", 1);
- } else {
- extract($_POST);
- if (!trim($user_oldpass)) {
- $errors[] = getErrorMessage("Старый пароль", "empty_val");
- } elseif (!wp_check_password($user_oldpass, $user->user_pass, $user->ID) ) {
- $errors[] = getErrorMessage("Старый пароль", "not_match");
- }
- if (!trim($user_pass)) {
- $errors[] = getErrorMessage("Password", "empty_val");
- }elseif ( strlen($user_pass) < PASS_LEN ) {
- $errors[] = getErrorMessage("Password", "min_size", PASS_LEN);
- }elseif ($user_pass != $user_repass) {
- $errors[] = getErrorMessage("Repeat password", "not_match");
- }
- if (sizeof($errors)) {
- $result['msg'] = alertMessage($errors, 1);
- } elseif( wp_update_user( array('ID' => $user->ID, 'user_pass' => $user_repass) ) ) {
- $result['msg'] = alertMessage("Your password has been successfully changed");
- $result['reset_form'] = 1;
- }else{
- $result['msg'] = alertMessage("Error password change!", 1);
- }
- }
- echo json_encode($result);
- exit();
- }
- //User can enter e-mail for login
- add_filter('authenticate', 'bainternet_allow_email_login', 20, 3);
- function bainternet_allow_email_login($user, $username, $password) {
- if (is_email($username)) {
- $user = get_user_by('email', $username);
- if ($user)
- $username = $user->user_login;
- }
- return wp_authenticate_username_password(null, $username, $password);
- }
- add_filter('gettext', 'addEmailToLogin', 20, 3);
- function addEmailToLogin($translated_text, $text, $domain) {
- if ("Username" == $translated_text)
- $translated_text .= __(' Or Email');
- return $translated_text;
- }
- if (!is_admin())
- add_action('init', 'ajax_login_init');
- function ajax_login_init() {
- wp_register_script('ajax-login-script', get_stylesheet_directory_uri() . '/js/user.js', array('jquery'), '1.0', true);
- wp_enqueue_script('ajax-login-script');
- wp_localize_script('ajax-login-script', 'ajax_login_object', array(
- 'ajaxurl' => admin_url('admin-ajax.php'),
- 'redirecturl' => site_url() . $_SERVER["REQUEST_URI"],
- 'loadingmessage' => __('Пожалуйста, подождите...')
- ));
- }
- add_action('wp_ajax_nopriv_ajaxlogin', 'ajax_login');
- function ajax_login() {
- check_ajax_referer('ajax-login-nonce', 'security');
- $info = array();
- $info['user_login'] = $_POST['username'];
- $info['user_password'] = $_POST['password'];
- $info['remember'] = true;
- $result = array();
- $user_signon = wp_signon($info, false);
- if (is_wp_error($user_signon)) {
- $result['loggedin'] = false;
- $result['message'] = "<div class='error'><p>Ваш адрес электронной почты или пароль не является правильным. Пожалуйста, попробуйте еще раз</p></div>";
- } else {
- $result['loggedin'] = true;
- $result['message'] = "<div class='sucecess'><p>Пожалуйста, подождите...</p></div>";
- }
- echo json_encode($result);
- exit();
- }
- //user register
- add_action('register_form', 'addpass_register_form');
- function addpass_register_form() {
- $first_name = ( isset($_POST['password']) ) ? $_POST['password'] : '';
- ?>
- <label for="password">Password</label>
- <input type="password" name="password" id="password" size="20" />
- <?php
- }
- add_filter('registration_errors', 'addpass_registration_errors', 10, 3);
- function addpass_registration_errors($errors, $sanitized_user_login, $user_email) {
- if (empty($_POST['password']))
- $errors->add('password_error', 'Пожалуйста, введите пароль');
- return $errors;
- }
- add_action('user_register', 'addpass_user_register');
- function addpass_user_register($user_id) {
- if (isset($_POST['password']))
- update_user_meta($user_id, 'password', $_POST['password']);
- update_user_meta($user_id, 'show_admin_bar_front', 'false');
- }
- add_action('wp_ajax_custom_register', 'custom_register_new_user');
- add_action('wp_ajax_nopriv_custom_register', 'custom_register_new_user');
- function custom_register_new_user() {
- $res = validateRegiForm();
- if (!$res['errors']) {
- $user_data = $res['user_data'];
- $user_id = wp_create_user($user_data['user_login'], $user_data['user_pass'], $user_data['user_email']);
- if ($user_id) {
- wp_update_user(array(
- 'ID' => $user_id,
- 'first_name' => $user_data['first_name'],
- 'display_name' => $user_data['first_name']
- ));
- //$result['user_id'] = $user_id;
- $result['log_in'] = 1;
- $result['email'] = $user_data['user_email'];
- $result['password'] = $user_data['user_pass'];
- $result['security'] = $user_data['reg_security'];
- $result['error'] = alertMessage("Вы зарегистрированы успешно. Пожалуйста, подождите...");
- //update_user_meta($user_id, "phone", $user_data['user_phone']);
- wp_new_user_notification($user_id, $user_data['user_pass']);
- }
- } else {
- $result['error'] = alertMessage($res['errors'], 1);
- }
- echo json_encode($result);
- exit();
- }
- add_action('wp_ajax_update_profile', 'ajax_update_profile');
- function ajax_update_profile() {
- $result = array();
- $addMsg = "";
- if (!is_user_logged_in() || !check_ajax_referer('prof_edit_nonce', 'prof_security')) {
- $result['msg'] = alertMessage(" У вас нет достаточных прав для редактирования профиля!", 1);
- } else {
- global $current_user;
- global $wpdb;
- $cur_usr = get_currentuserinfo();
- $ignore_login = $cur_usr->user_email == trim($_POST['user_email']);
- $res = validateRegiForm($ignore_login, true);
- if ($res['errors']) {
- $result['msg'] = alertMessage($res['errors'], 1);
- } else {
- update_user_meta($cur_usr->ID, "first_name", $res['user_data']['first_name']); // updt user First name
- update_user_meta($cur_usr->ID, "phone", $res['user_data']['user_phone']); // updt user Phone
- isset($res['user_data']['user_phone_2']) ? update_user_meta($cur_usr->ID, "phone_2", trim($res['user_data']['user_phone_2'])) : false; // updt user Phone 2
- if (!$ignore_login) {
- $upd_usr_data = array('ID' => $cur_usr->ID, 'user_email' => $res['user_data']['user_email']); // updt user email
- if ($cur_usr->user_login != $res['user_data']['user_email']) {
- $upd_usr_data['user_nicename'] = sanitize_user($res['user_data']['user_email']); // updt user nicename
- $wpdb->update($wpdb->users, array('user_login' => $res['user_data']['user_email']), array('ID' => $cur_usr->ID)); // updt user Login
- }
- wp_update_user($upd_usr_data);
- wp_logout();
- $result['reload'] = 1;
- $addMsg = " Log in with your new Login";
- }
- $result['msg'] = alertMessage("Данные были успешно обновлены. $addMsg");
- }
- }
- echo json_encode($result);
- exit();
- }
- function validateRegiForm($ignore_login = false, $ignore_pass = false) {
- extract($_POST);
- $out = array();
- $user_data = $_POST;
- $errors = [];
- $sanitized_user_login = sanitize_user($user_email);
- $user_email = apply_filters('user_registration_email', $user_email);
- if (!$ignore_login) {
- if ($sanitized_user_login == '') {
- $errors[] = getErrorMessage("E-mail", "empty_val");
- } elseif (!validate_username($sanitized_user_login)) {
- $errors[] = getErrorMessage("Username", "illegal_char");
- } elseif (username_exists($sanitized_user_login)) {
- $errors[] = getErrorMessage("Username", "already_exists");
- }
- if (!is_email($user_email)) {
- $errors[] = getErrorMessage("E-mail", "invalid_val");
- } elseif (email_exists($user_email)) {
- $errors[] = getErrorMessage("E-mail", "already_exists");
- }
- }
- if (!$ignore_pass) {
- if (!trim($user_pass)) {
- $errors[] = getErrorMessage("Password", "empty_val");
- } elseif ( strlen($user_pass) < PASS_LEN ) {
- $errors[] = getErrorMessage("Password", "min_size", PASS_LEN);
- } elseif ($user_pass != $user_repass) {
- $errors[] = getErrorMessage("Password", "not_match");
- }
- }
- if (!trim($first_name))
- $errors[] = getErrorMessage("Full name", "empty_val");
- if (isset($user_phone) && !trim($user_phone))
- $errors[] = getErrorMessage("Телефон", "empty_val");
- if (count($errors)) {
- $out['errors'] = $errors;
- } else {
- $out['errors'] = false;
- if (!$ignore_login) {
- $user_data['user_login'] = $sanitized_user_login;
- $user_data['user_email'] = $user_email;
- }
- }
- $out['user_data'] = $user_data;
- return $out;
- }
- function getErrorMessage($field, $errorType, $addvalue = NULL) {
- $errorTag = "<strong>Ошибка </strong>:";
- switch ($errorType) {
- case "empty_val" :
- return "$errorTag Пожалуйста заполните <b>\"$field\"</b> поле";
- case "incorrect_val" :
- return "$errorTag Incorrect <b>\"$field\"</b> value";
- case "illegal_char" :
- return "$errorTag Illegal characters! Please specify a valid <b>\"$field\"</b>";
- case "already_exists" :
- return "$errorTag This <b>\"$field\"</b> is already exists. Please specify another one";
- case "invalid_val":
- return "$errorTag Innvalid <b>\"$field\"</b> was specified";
- case "not_match":
- return "$errorTag The <b>\"$field\"</b> does not match";
- case "min_size":
- return "$errorTag The <b>\"$field\"</b> must contain at least $addvalue characters";
- }
- }
- function alertMessage($msgs, $err = false) {
- $class = $err ? "error" : "success";
- $txt = is_array($msgs) ? "<p>" . implode("</p><p>", $msgs) . "</p>" : "<p>$msgs</p>";
- return "<div class='$class'>$txt</div>";
- }
- //AJAXSIGN
- /////////////////////////////USER JS
- // NEW selector
- jQuery.expr[':'].Contains = function(a, i, m) {
- return jQuery(a).text().toUpperCase()
- .indexOf(m[3].toUpperCase()) >= 0;
- };
- $(document).ready(function () {
- $('#ajaxregi').submit(function () {
- var $form = $(this);
- $.ajax({
- type: "POST",
- url: ajax_login_object.ajaxurl,
- data: $form.serialize(),
- dataType: "json",
- success: function (response) {
- $form.find('.ajax-result').html(response.error);
- if (response.log_in === 1) {
- $.ajax({
- type: 'POST',
- dataType: 'json',
- url: ajax_login_object.ajaxurl,
- data: {
- 'action': 'ajaxlogin',
- 'username': response.email,
- 'password': response.password,
- 'security': response.security
- },
- success: function (data) {
- if (data.loggedin === true) {
- window.location.reload();
- }
- }
- });
- }
- }
- });
- return false;
- });
- $('#ajaxprofile').submit(function () {
- var $form = $(this);
- $.ajax({
- type: "POST",
- url: ajax_login_object.ajaxurl,
- data: $form.serialize(),
- dataType: "json",
- success: function (response) {
- if (response.msg !== undefined)
- $form.find('.ajax-result').html(response.msg);
- if (response.reload == 1)
- window.location.reload();
- }
- });
- return false;
- });
- $('#ajaxchangepass').submit(function () {
- var $form = $(this);
- $.ajax({
- type: "POST",
- url: ajax_login_object.ajaxurl,
- data: $form.serialize(),
- dataType: "json",
- success: function (response) {
- if (response.msg !== undefined)
- $form.find('.ajax-result').html(response.msg);
- if (response.reset_form == 1)
- $form.find('input[type=password]').val();
- }
- });
- return false;
- });
- $(document).on('click', '#admin-order-list .accordeon_item', function () {
- order_id = $(this).data('orderid');
- $('.order-tables').hide();
- $('#' + order_id).fadeIn(400);
- $.ajax({
- type: "POST",
- url: ajax_login_object.ajaxurl,
- data: "action=set_viewed_contractors&order_id=" + order_id,
- success: function (response) {
- }
- });
- })
- $(document).on('click', '.order-tables .plus, .order-tables .minus', function () {
- $this = $(this);
- contractor_id = $this.parents('tr').data('contractor-id');
- order_id = $this.parents('tr').data('order-id');
- if ($this.hasClass('plus')) {
- event = 'add';
- $this.removeClass('plus').addClass('minus');
- } else if ($this.hasClass('minus')) {
- event = 'remove';
- if( $this.parents('.order-tables').hasClass('order-tables-admin') ){
- $sel = $this;
- }else{
- $this.parents('tr').remove();
- $sel = $('#' + order_id + " tr[data-contractor-id="+contractor_id+"] .minus");
- }
- $sel.removeClass('minus').addClass('plus');
- }
- $.ajax({
- type: "POST",
- url: ajax_login_object.ajaxurl,
- data: "action=edit_contributors&event=" + event + "&contractor_id=" + contractor_id + "&order_id=" + order_id,
- success: function (response) {
- $('#self-order-list .accordeon_content').html(response);
- }
- });
- return false;
- })
- $(document).on('click', '#self-order-list .accordeon_item', function () {
- order_id = $(this).data('orderid');
- $('.order-tables').hide();
- $.ajax({
- type: "POST",
- url: ajax_login_object.ajaxurl,
- data: "action=print_self_orders_list&pnl_type=self&order_id=" + order_id,
- success: function (response) {
- $('.own-list').hide().html(response).fadeIn(400);
- }
- });
- })
- $('.remodal-confirm').on("click", function(){
- $.ajax({
- type: "POST",
- url: ajax_login_object.ajaxurl,
- data: "action=remove_current_user",
- success: function (response) {
- if(parseInt(response) == 1)
- window.location.reload();
- }
- });
- })
- $(document).on('keyup','.search_active', function(){
- val = $(this).val().toLowerCase();
- par = $(this).parents('.order-tables');
- //if (val.length >= 2){
- elems = par.find(".main_table .file-name:Contains('"+val+"')");
- par.find(".main_table tr").hide();
- $(elems).parents('tr').show();
- //}
- })
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement