| @@ -1,343 +1,257 @@ | ||
| 1 | 1 | <?php |
| 2 | + | |
| 2 | 3 | /** |
| 3 | - * Class Student | |
| 4 | + * Class Instructor | |
| 5 | + * @package TUTOR | |
| 4 | 6 | * |
| 5 | - * @package Tutor\Student | |
| 6 | - * @author Themeum <support@themeum.com> | |
| 7 | - * @link https://themeum.com | |
| 8 | - * @since 1.0.0 | |
| 7 | + * @since v.1.0.0 | |
| 9 | 8 | */ |
| 10 | 9 | |
| 11 | 10 | namespace TUTOR; |
| 12 | 11 | |
| 13 | -if ( ! defined( 'ABSPATH' ) ) { | |
| 12 | +if ( ! defined( 'ABSPATH' ) ) | |
| 14 | 13 | exit; |
| 15 | -} | |
| 16 | 14 | |
| 17 | -/** | |
| 18 | - * Manage students | |
| 19 | - * | |
| 20 | - * @since 1.0.0 | |
| 21 | - */ | |
| 15 | + | |
| 22 | 16 | class Student { |
| 23 | 17 | |
| 24 | - /** | |
| 25 | - * Bagged error messages | |
| 26 | - * | |
| 27 | - * @since 1.0.0 | |
| 28 | - * | |
| 29 | - * @var $error_msgs | |
| 30 | - */ | |
| 31 | 18 | protected $error_msgs = ''; |
| 32 | - | |
| 33 | - /** | |
| 34 | - * Handle Hooks | |
| 35 | - * | |
| 36 | - * @since 1.0.0 | |
| 37 | - */ | |
| 38 | 19 | public function __construct() { |
| 39 | - add_action( 'template_redirect', array( $this, 'register_student' ) ); | |
| 40 | - add_filter( 'get_avatar_url', array( $this, 'filter_avatar' ), 10, 3 ); | |
| 41 | - add_action( 'wp_ajax_tutor_social_profile', array( $this, 'tutor_social_profile' ) ); | |
| 42 | - add_action( 'wp_ajax_tutor_profile_password_reset', array( $this, 'tutor_reset_password' ) ); | |
| 43 | - add_action( 'wp_ajax_tutor_update_profile', array( $this, 'update_profile' ) ); | |
| 20 | + add_action('template_redirect', array($this, 'register_student')); | |
| 21 | + add_action('template_redirect', array($this, 'update_profile')); | |
| 22 | + add_filter('get_avatar_url', array($this, 'filter_avatar'), 10, 3); | |
| 23 | + add_action('tutor_action_tutor_reset_password', array($this, 'tutor_reset_password')); | |
| 44 | 24 | } |
| 45 | 25 | |
| 46 | 26 | /** |
| 47 | 27 | * Register new user and mark him as student |
| 48 | 28 | * |
| 49 | - * @since 1.0.0 | |
| 50 | - * | |
| 51 | - * @return void | |
| 29 | + * @since v.1.0.0 | |
| 52 | 30 | */ |
| 53 | - public function register_student() { | |
| 54 | - if ( 'tutor_register_student' !== Input::post( 'tutor_action', '' ) || ! get_option( 'users_can_register', false ) ) { | |
| 55 | - // Action must be register, and registration must be enabled in dashboard. | |
| 31 | + public function register_student(){ | |
| 32 | + if ( tutils()->array_get('tutor_action', $_POST) !== 'tutor_register_student' || !get_option( 'users_can_register', false ) ){ | |
| 33 | + // Action must be register, and registrtion must be enabled in dashoard | |
| 56 | 34 | return; |
| 57 | 35 | } |
| 58 | - | |
| 59 | - // Checking nonce. | |
| 36 | + | |
| 37 | + //Checking nonce | |
| 60 | 38 | tutor_utils()->checking_nonce(); |
| 61 | 39 | |
| 62 | - $required_fields = apply_filters( | |
| 63 | - 'tutor_student_registration_required_fields', | |
| 64 | - array( | |
| 65 | - 'first_name' => __( 'First name field is required', 'tutor' ), | |
| 66 | - 'last_name' => __( 'Last name field is required', 'tutor' ), | |
| 67 | - 'email' => __( 'E-Mail field is required', 'tutor' ), | |
| 68 | - 'user_login' => __( 'User Name field is required', 'tutor' ), | |
| 69 | - 'password' => __( 'Password field is required', 'tutor' ), | |
| 70 | - 'password_confirmation' => __( 'Password Confirmation field is required', 'tutor' ), | |
| 71 | - ) | |
| 72 | - ); | |
| 40 | + $required_fields = apply_filters('tutor_student_registration_required_fields', array( | |
| 41 | + 'first_name' => __('First name field is required', 'tutor'), | |
| 42 | + 'last_name' => __('Last name field is required', 'tutor'), | |
| 43 | + 'email' => __('E-Mail field is required', 'tutor'), | |
| 44 | + 'user_login' => __('User Name field is required', 'tutor'), | |
| 45 | + 'password' => __('Password field is required', 'tutor'), | |
| 46 | + 'password_confirmation' => __('Password Confirmation field is required', 'tutor'), | |
| 47 | + )); | |
| 48 | + | |
| 73 | 49 | |
| 74 | - $terms_conditions_link = tutor_utils()->get_toc_page_link(); | |
| 75 | - if ( $terms_conditions_link ) { | |
| 76 | - $required_fields['terms_conditions'] = __( 'Please accept the Terms and Conditions to continue', 'tutor' ); | |
| 77 | - } | |
| 78 | - | |
| 79 | 50 | $validation_errors = array(); |
| 80 | 51 | |
| 81 | - // Registration error push into validation_errors. | |
| 82 | - $errors = apply_filters( 'registration_errors', new \WP_Error(), '', '' ); | |
| 83 | - foreach ( $errors->errors as $key => $value ) { | |
| 84 | - $validation_errors[ $key ] = $value[0]; | |
| 85 | - | |
| 52 | + /* | |
| 53 | + *registration_errors | |
| 54 | + *push into validation_errors | |
| 55 | + */ | |
| 56 | + $errors = apply_filters('registration_errors',new \WP_Error,'',''); | |
| 57 | + foreach ($errors->errors as $key => $value) | |
| 58 | + { | |
| 59 | + $validation_errors[$key] = $value[0]; | |
| 60 | + | |
| 86 | 61 | } |
| 87 | 62 | |
| 88 | - foreach ( $required_fields as $required_key => $required_value ) { | |
| 89 | - if ( empty( Input::post( $required_key, '' ) ) ) { | |
| 90 | - $validation_errors[ $required_key ] = $required_value; | |
| 63 | + foreach ($required_fields as $required_key => $required_value){ | |
| 64 | + if (empty($_POST[$required_key])){ | |
| 65 | + $validation_errors[$required_key] = $required_value; | |
| 91 | 66 | } |
| 92 | 67 | } |
| 93 | 68 | |
| 94 | - | |
| 95 | - if ( ! filter_var( tutor_utils()->input_old( 'email' ), FILTER_VALIDATE_EMAIL ) ) { | |
| 96 | - $validation_errors['email'] = __( 'Valid E-Mail is required', 'tutor' ); | |
| 69 | + if (!filter_var(tutor_utils()->input_old('email'), FILTER_VALIDATE_EMAIL)) { | |
| 70 | + $validation_errors['email'] = __('Valid E-Mail is required', 'tutor'); | |
| 97 | 71 | } |
| 98 | - if ( tutor_utils()->input_old( 'password' ) !== tutor_utils()->input_old( 'password_confirmation' ) ) { | |
| 99 | - $validation_errors['password_confirmation'] = __( 'Your passwords should match each other. Please recheck.', 'tutor' ); | |
| 72 | + if (tutor_utils()->input_old('password') !== tutor_utils()->input_old('password_confirmation')){ | |
| 73 | + $validation_errors['password_confirmation'] = __('Confirm password does not matched with Password field', 'tutor'); | |
| 100 | 74 | } |
| 101 | 75 | |
| 102 | - if ( count( $validation_errors ) ) { | |
| 76 | + if (count($validation_errors)){ | |
| 103 | 77 | $this->error_msgs = $validation_errors; |
| 104 | - add_filter( 'tutor_student_register_validation_errors', array( $this, 'tutor_student_form_validation_errors' ) ); | |
| 78 | + add_filter('tutor_student_register_validation_errors', array($this, 'tutor_student_form_validation_errors')); | |
| 105 | 79 | return; |
| 106 | 80 | } |
| 107 | 81 | |
| 108 | - $first_name = sanitize_text_field( tutor_utils()->input_old( 'first_name' ) ); | |
| 109 | - $last_name = sanitize_text_field( tutor_utils()->input_old( 'last_name' ) ); | |
| 110 | - $email = sanitize_text_field( tutor_utils()->input_old( 'email' ) ); | |
| 111 | - $user_login = sanitize_text_field( tutor_utils()->input_old( 'user_login' ) ); | |
| 112 | - $password = sanitize_text_field( tutor_utils()->input_old( 'password' ) ); | |
| 82 | + $first_name = sanitize_text_field(tutor_utils()->input_old('first_name')); | |
| 83 | + $last_name = sanitize_text_field(tutor_utils()->input_old('last_name')); | |
| 84 | + $email = sanitize_text_field(tutor_utils()->input_old('email')); | |
| 85 | + $user_login = sanitize_text_field(tutor_utils()->input_old('user_login')); | |
| 86 | + $password = sanitize_text_field(tutor_utils()->input_old('password')); | |
| 113 | 87 | |
| 114 | 88 | $userdata = array( |
| 115 | - 'user_login' => $user_login, | |
| 116 | - 'user_email' => $email, | |
| 117 | - 'first_name' => $first_name, | |
| 118 | - 'last_name' => $last_name, | |
| 119 | - 'user_pass' => $password, | |
| 89 | + 'user_login' => $user_login, | |
| 90 | + 'user_email' => $email, | |
| 91 | + 'first_name' => $first_name, | |
| 92 | + 'last_name' => $last_name, | |
| 93 | + //'role' => tutor()->student_role, | |
| 94 | + 'user_pass' => $password, | |
| 120 | 95 | ); |
| 121 | 96 | |
| 122 | - global $wpdb; | |
| 123 | - $wpdb->query( 'START TRANSACTION' ); | |
| 124 | - | |
| 125 | - $user_id = wp_insert_user( $userdata ); | |
| 126 | - $enroll_attempt = Input::post( 'tutor_course_enroll_attempt', '' ); | |
| 127 | - | |
| 128 | - if ( is_wp_error( $user_id ) ) { | |
| 129 | - $this->error_msgs = $user_id->get_error_messages(); | |
| 130 | - add_filter( 'tutor_student_register_validation_errors', array( $this, 'tutor_student_form_validation_errors' ) ); | |
| 131 | - return; | |
| 132 | - } | |
| 133 | - | |
| 134 | - $user = get_user_by( 'id', $user_id ); | |
| 135 | - | |
| 136 | - $is_req_email_verification = apply_filters( 'tutor_require_email_verification', false ); | |
| 137 | - if ( $is_req_email_verification ) { | |
| 138 | - do_action( 'tutor_send_verification_mail', $user, $enroll_attempt ); | |
| 139 | - $reg_done = apply_filters( 'tutor_registration_done', true ); | |
| 140 | - if ( ! $reg_done ) { | |
| 141 | - $wpdb->query( 'ROLLBACK' ); | |
| 142 | - return; | |
| 143 | - } else { | |
| 144 | - $wpdb->query( 'COMMIT' ); | |
| 97 | + $user_id = wp_insert_user( $userdata ) ; | |
| 98 | + if ( ! is_wp_error($user_id)){ | |
| 99 | + $user = get_user_by( 'id', $user_id ); | |
| 100 | + if( $user ) { | |
| 101 | + wp_set_current_user( $user_id, $user->user_login ); | |
| 102 | + wp_set_auth_cookie( $user_id ); | |
| 145 | 103 | } |
| 146 | - } else { | |
| 147 | - /** | |
| 148 | - * Tutor Free - reqular student reg process. | |
| 149 | - */ | |
| 150 | - $wpdb->query( 'COMMIT' ); | |
| 151 | 104 | |
| 152 | - wp_set_current_user( $user_id, $user->user_login ); | |
| 153 | - wp_set_auth_cookie( $user_id ); | |
| 105 | + do_action('tutor_after_student_signup', $user_id); | |
| 154 | 106 | |
| 155 | - do_action( 'tutor_after_student_signup', $user_id ); | |
| 156 | - // since 1.9.8 do enroll if guest attempt to enroll. | |
| 157 | - if ( ! empty( $enroll_attempt ) ) { | |
| 158 | - do_action( 'tutor_do_enroll_after_login_if_attempt', $enroll_attempt, $user_id ); | |
| 159 | - } | |
| 160 | - | |
| 161 | - // Redirect page. | |
| 162 | - $redirect_page = tutor_utils()->array_get( 'redirect_to', $_REQUEST ); //phpcs:ignore | |
| 163 | - if ( ! $redirect_page ) { | |
| 107 | + //Redirect page | |
| 108 | + $redirect_page = tutils()->array_get('redirect_to', $_REQUEST); | |
| 109 | + if ( ! $redirect_page){ | |
| 164 | 110 | $redirect_page = tutor_utils()->tutor_dashboard_url(); |
| 165 | 111 | } |
| 166 | - wp_safe_redirect( apply_filters( 'tutor_student_register_redirect_url', $redirect_page, $user ) ); | |
| 112 | + wp_redirect($redirect_page); | |
| 167 | 113 | die(); |
| 114 | + }else{ | |
| 115 | + $this->error_msgs = $user_id->get_error_messages(); | |
| 116 | + add_filter('tutor_student_register_validation_errors', array($this, 'tutor_student_form_validation_errors')); | |
| 117 | + return; | |
| 168 | 118 | } |
| 169 | 119 | |
| 170 | 120 | $registration_page = tutor_utils()->student_register_url(); |
| 171 | - wp_safe_redirect( $registration_page ); | |
| 121 | + wp_redirect($registration_page); | |
| 172 | 122 | die(); |
| 173 | 123 | } |
| 174 | 124 | |
| 175 | - /** | |
| 176 | - * Get validation error messages | |
| 177 | - * | |
| 178 | - * @since 1.0.0 | |
| 179 | - * | |
| 180 | - * @return mixed error messages | |
| 181 | - */ | |
| 182 | - public function tutor_student_form_validation_errors() { | |
| 125 | + public function tutor_student_form_validation_errors(){ | |
| 183 | 126 | return $this->error_msgs; |
| 184 | 127 | } |
| 185 | 128 | |
| 186 | - /** | |
| 187 | - * Update profile | |
| 188 | - * | |
| 189 | - * @since 1.0.0 | |
| 190 | - * | |
| 191 | - * @return void send wp_json response | |
| 192 | - */ | |
| 193 | - public function update_profile() { | |
| 194 | - // Checking nonce. | |
| 195 | - tutor_utils()->checking_nonce(); | |
| 129 | + public function update_profile(){ | |
| 130 | + if (tutils()->array_get('tutor_action', $_POST) !== 'tutor_profile_edit' ){ | |
| 131 | + return; | |
| 132 | + } | |
| 196 | 133 | |
| 197 | 134 | $user_id = get_current_user_id(); |
| 198 | - do_action( 'tutor_profile_update_before', $user_id ); | |
| 135 | + | |
| 136 | + //Checking nonce | |
| 137 | + tutor_utils()->checking_nonce(); | |
| 138 | + do_action('tutor_profile_update_before', $user_id); | |
| 199 | 139 | |
| 200 | - $first_name = sanitize_text_field( tutor_utils()->input_old( 'first_name' ) ); | |
| 201 | - $last_name = sanitize_text_field( tutor_utils()->input_old( 'last_name' ) ); | |
| 202 | - $phone_number = sanitize_text_field( tutor_utils()->input_old( 'phone_number' ) ); | |
| 203 | - $tutor_profile_bio = wp_kses( Input::post( 'tutor_profile_bio', '', Input::TYPE_KSES_POST ), tutor_utils()->allowed_profile_bio_tags() ); | |
| 204 | - $tutor_profile_job_title = sanitize_text_field( tutor_utils()->input_old( 'tutor_profile_job_title' ) ); | |
| 205 | - $timezone = Input::post( 'timezone', '' ); | |
| 140 | + $first_name = sanitize_text_field(tutor_utils()->input_old('first_name')); | |
| 141 | + $last_name = sanitize_text_field(tutor_utils()->input_old('last_name')); | |
| 142 | + $phone_number = sanitize_text_field(tutor_utils()->input_old('phone_number')); | |
| 143 | + $tutor_profile_bio = wp_kses_post(tutor_utils()->input_old('tutor_profile_bio')); | |
| 206 | 144 | |
| 207 | - $display_name = sanitize_text_field( tutor_utils()->input_old( 'display_name' ) ); | |
| 145 | + $display_name = sanitize_text_field(tutils()->input_old('display_name')); | |
| 208 | 146 | |
| 209 | - $userdata = array( | |
| 210 | - 'ID' => $user_id, | |
| 211 | - 'first_name' => $first_name, | |
| 212 | - 'last_name' => $last_name, | |
| 213 | - 'display_name' => $display_name, | |
| 147 | + $userdata = array( | |
| 148 | + 'ID' => $user_id, | |
| 149 | + 'first_name' => $first_name, | |
| 150 | + 'last_name' => $last_name, | |
| 151 | + 'display_name' => $display_name, | |
| 214 | 152 | ); |
| 153 | + $user_id = wp_update_user( $userdata ); | |
| 215 | 154 | |
| 216 | - $user_id = wp_update_user( $userdata ); | |
| 155 | + if ( ! is_wp_error( $user_id ) ) { | |
| 156 | + update_user_meta($user_id, 'phone_number', $phone_number); | |
| 157 | + update_user_meta($user_id, '_tutor_profile_bio', $tutor_profile_bio); | |
| 217 | 158 | |
| 218 | - if ( ! is_wp_error( $user_id ) ) { | |
| 219 | - update_user_meta( $user_id, User::PHONE_NUMBER_META, $phone_number ); | |
| 220 | - update_user_meta( $user_id, User::PROFILE_BIO_META, $tutor_profile_bio ); | |
| 221 | - update_user_meta( $user_id, User::PROFILE_JOB_TITLE_META, $tutor_profile_job_title ); | |
| 222 | - update_user_meta( $user_id, User::TIMEZONE_META, $timezone ); | |
| 159 | + $tutor_user_social = tutils()->tutor_user_social_icons(); | |
| 160 | + foreach ($tutor_user_social as $key => $social){ | |
| 161 | + $user_social_value = sanitize_text_field(tutor_utils()->input_old($key)); | |
| 162 | + if($user_social_value){ | |
| 163 | + update_user_meta($user_id, $key, $user_social_value); | |
| 164 | + }else{ | |
| 165 | + delete_user_meta($user_id, $key); | |
| 166 | + } | |
| 167 | + } | |
| 223 | 168 | } |
| 224 | - | |
| 225 | - do_action( 'tutor_profile_update_after', $user_id ); | |
| 226 | - | |
| 227 | - wp_send_json_success( array( 'message' => __( 'Profile Updated', 'tutor' ) ) ); | |
| 169 | + do_action('tutor_profile_update_after', $user_id); | |
| 170 | + wp_redirect(wp_get_raw_referer()); | |
| 171 | + die(); | |
| 228 | 172 | } |
| 229 | 173 | |
| 230 | 174 | /** |
| 231 | - * Filter Avatar, Change avatar URL with Tutor User Photo | |
| 175 | + * @param $url | |
| 176 | + * @param $id_or_email | |
| 177 | + * @param $args | |
| 232 | 178 | * |
| 233 | - * @since 1.0.0 | |
| 179 | + * @return false|string | |
| 234 | 180 | * |
| 235 | - * @param string $url url. | |
| 236 | - * @param mixed $id_or_email id or email. | |
| 237 | - * @param array $args extra args. | |
| 238 | - * | |
| 239 | - * @return false|string | |
| 181 | + * Change avatar URL with Tutor User Photo | |
| 240 | 182 | */ |
| 241 | - public function filter_avatar( $url, $id_or_email, $args ) { | |
| 242 | 183 | |
| 184 | + public function filter_avatar( $url, $id_or_email, $args){ | |
| 185 | + global $wpdb; | |
| 186 | + | |
| 243 | 187 | $finder = false; |
| 244 | - $is_id = is_numeric( $id_or_email ); | |
| 245 | 188 | |
| 246 | - if ( $is_id ) { | |
| 247 | - $finder = absint( $id_or_email ); | |
| 248 | - } elseif ( is_string( $id_or_email ) ) { | |
| 249 | - $finder = $id_or_email; | |
| 250 | - } elseif ( $id_or_email instanceof \WP_User ) { | |
| 251 | - // User Object. | |
| 252 | - $finder = $id_or_email->ID; | |
| 253 | - } elseif ( $id_or_email instanceof \WP_Post ) { | |
| 254 | - // Post Object. | |
| 255 | - $finder = (int) $id_or_email->post_author; | |
| 256 | - } elseif ( $id_or_email instanceof \WP_Comment ) { | |
| 257 | - return $url; | |
| 258 | - } | |
| 189 | + if ( is_numeric( $id_or_email ) ) { | |
| 190 | + $finder = absint( $id_or_email ) ; | |
| 191 | + } elseif ( is_string( $id_or_email ) ) { | |
| 192 | + $finder = $id_or_email; | |
| 193 | + } elseif ( $id_or_email instanceof WP_User ) { | |
| 194 | + // User Object | |
| 195 | + $finder = $id_or_email->ID; | |
| 196 | + } elseif ( $id_or_email instanceof WP_Post ) { | |
| 197 | + // Post Object | |
| 198 | + $finder = (int) $id_or_email->post_author; | |
| 199 | + } elseif ( $id_or_email instanceof WP_Comment ) { | |
| 200 | + return $url; | |
| 201 | + } | |
| 259 | 202 | |
| 260 | - if ( ! $finder ) { | |
| 261 | - return $url; | |
| 262 | - } | |
| 203 | + if ( ! $finder){ | |
| 204 | + return $url; | |
| 205 | + } | |
| 263 | 206 | |
| 264 | - $user = get_user_by( $is_id ? 'ID' : 'email', $finder ); | |
| 265 | - | |
| 266 | - if ( $user ) { | |
| 267 | - $profile_photo = get_user_meta( $user->ID, '_tutor_profile_photo', true ); | |
| 268 | - if ( $profile_photo ) { | |
| 269 | - $size = isset( $args['size'] ) ? $args['size'] : 'thumbnail'; | |
| 270 | - $url = wp_get_attachment_image_url( $profile_photo, $size ); | |
| 207 | + $user_id = (int) $wpdb->get_var($wpdb->prepare("SELECT ID FROM {$wpdb->users} WHERE ID = %s OR user_email = %s ", $finder, $finder)); | |
| 208 | + if ($user_id){ | |
| 209 | + $profile_photo = get_user_meta($user_id, '_tutor_profile_photo', true); | |
| 210 | + if ($profile_photo){ | |
| 211 | + $url = wp_get_attachment_image_url($profile_photo, 'thumbnail'); | |
| 271 | 212 | } |
| 272 | 213 | } |
| 273 | 214 | return $url; |
| 274 | 215 | } |
| 275 | 216 | |
| 276 | - /** | |
| 277 | - * Password Rest | |
| 278 | - * | |
| 279 | - * @since 1.0.0 | |
| 280 | - * | |
| 281 | - * @return void send wp_json response | |
| 282 | - */ | |
| 283 | - public function tutor_reset_password() { | |
| 284 | - // Checking nonce. | |
| 217 | + public function tutor_reset_password(){ | |
| 218 | + //Checking nonce | |
| 285 | 219 | tutor_utils()->checking_nonce(); |
| 286 | 220 | |
| 287 | 221 | $user = wp_get_current_user(); |
| 288 | 222 | |
| 289 | - $previous_password = Input::post( 'previous_password', '' ); | |
| 290 | - $new_password = Input::post( 'new_password', '' ); | |
| 291 | - $confirm_new_password = Input::post( 'confirm_new_password', '' ); | |
| 223 | + $previous_password = sanitize_text_field($_POST['previous_password']); | |
| 224 | + $new_password = sanitize_text_field($_POST['new_password']); | |
| 225 | + $confirm_new_password = sanitize_text_field($_POST['confirm_new_password']); | |
| 292 | 226 | |
| 293 | - $previous_password_checked = wp_check_password( $previous_password, $user->user_pass, $user->ID ); | |
| 227 | + $previous_password_checked = wp_check_password( $previous_password, $user->user_pass, $user->ID); | |
| 294 | 228 | |
| 295 | 229 | $validation_errors = array(); |
| 296 | - if ( ! $previous_password_checked ) { | |
| 297 | - $validation_errors['incorrect_previous_password'] = __( 'Incorrect Previous Password', 'tutor' ); | |
| 230 | + if ( ! $previous_password_checked){ | |
| 231 | + $validation_errors['incorrect_previous_password'] = __('Incorrect Previous Password', 'tutor'); | |
| 298 | 232 | } |
| 299 | - if ( empty( $new_password ) ) { | |
| 300 | - $validation_errors['new_password_required'] = __( 'New Password Required', 'tutor' ); | |
| 233 | + if (empty($new_password)){ | |
| 234 | + $validation_errors['new_password_required'] = __('New Password Required', 'tutor'); | |
| 301 | 235 | } |
| 302 | - if ( empty( $confirm_new_password ) ) { | |
| 303 | - $validation_errors['confirm_password_required'] = __( 'Confirm Password Required', 'tutor' ); | |
| 236 | + if (empty($confirm_new_password)){ | |
| 237 | + $validation_errors['confirm_password_required'] = __('Confirm Password Required', 'tutor'); | |
| 304 | 238 | } |
| 305 | - if ( $new_password !== $confirm_new_password ) { | |
| 306 | - $validation_errors['password_not_matched'] = __( 'New password and confirm password does not matched', 'tutor' ); | |
| 239 | + if ( $new_password !== $confirm_new_password){ | |
| 240 | + $validation_errors['password_not_matched'] = __('New password and confirm password does not matched', 'tutor'); | |
| 307 | 241 | } |
| 308 | - | |
| 309 | - if ( $previous_password_checked && ! empty( $new_password ) && $new_password === $confirm_new_password ) { | |
| 310 | - wp_set_password( $new_password, $user->ID ); | |
| 311 | - wp_send_json_success( array( 'message' => __( 'Password Changed', 'tutor' ) ) ); | |
| 242 | + if (count($validation_errors)){ | |
| 243 | + $this->error_msgs = $validation_errors; | |
| 244 | + add_filter('tutor_reset_password_validation_errors', array($this, 'tutor_student_form_validation_errors')); | |
| 245 | + return; | |
| 312 | 246 | } |
| 313 | 247 | |
| 314 | - $first_message = count( $validation_errors ) ? $validation_errors[ array_keys( $validation_errors )[0] ] : __( 'Something went wrong!', 'tutor' ); | |
| 315 | - wp_send_json_error( array( 'message' => $first_message ) ); | |
| 316 | - } | |
| 317 | - | |
| 318 | - /** | |
| 319 | - * Handle social links | |
| 320 | - * | |
| 321 | - * @since 2.0.0 | |
| 322 | - * | |
| 323 | - * @return void | |
| 324 | - */ | |
| 325 | - public function tutor_social_profile() { | |
| 326 | - tutor_utils()->checking_nonce(); | |
| 327 | - | |
| 328 | - $user_id = get_current_user_id(); | |
| 329 | - $tutor_user_social = tutor_utils()->tutor_user_social_icons(); | |
| 330 | - | |
| 331 | - foreach ( $tutor_user_social as $key => $social ) { | |
| 332 | - $user_social_value = sanitize_text_field( tutor_utils()->input_old( $key ) ); | |
| 333 | - if ( '' !== $user_social_value ) { | |
| 334 | - update_user_meta( $user_id, $key, $user_social_value ); | |
| 335 | - } else { | |
| 336 | - delete_user_meta( $user_id, $key ); | |
| 337 | - } | |
| 248 | + if ($previous_password_checked && ! empty($new_password) && $new_password === $confirm_new_password){ | |
| 249 | + wp_set_password($new_password, $user->ID); | |
| 250 | + tutor_utils()->set_flash_msg( __('Password set successfully', 'tutor') ); | |
| 338 | 251 | } |
| 339 | 252 | |
| 340 | - wp_send_json_success( array( 'message' => __( 'Social Profile Updated', 'tutor' ) ) ); | |
| 253 | + wp_redirect(wp_get_raw_referer()); | |
| 341 | 254 | die(); |
| 342 | 255 | } |
| 343 | -} | |
| 256 | + | |
| 257 | +} | |