nav-bar.php
3 years ago
profile.php
1 year ago
reset-password.php
1 year ago
social-profile.php
1 year ago
withdraw-settings.php
1 year ago
profile.php
224 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Profile |
| 4 | * |
| 5 | * @package Tutor\Templates |
| 6 | * @subpackage Dashboard\Settings |
| 7 | * @author Themeum <support@themeum.com> |
| 8 | * @link https://themeum.com |
| 9 | * @since 1.6.2 |
| 10 | */ |
| 11 | |
| 12 | use TUTOR\User; |
| 13 | |
| 14 | $user = wp_get_current_user(); |
| 15 | |
| 16 | // Prepare profile pic. |
| 17 | $profile_placeholder = apply_filters( 'tutor_login_default_avatar', tutor()->url . 'assets/images/profile-photo.png' ); |
| 18 | $profile_photo_src = $profile_placeholder; |
| 19 | $profile_photo_id = get_user_meta( $user->ID, User::PROFILE_PHOTO_META, true ); |
| 20 | if ( $profile_photo_id ) { |
| 21 | $url = wp_get_attachment_image_url( $profile_photo_id, 'full' ); |
| 22 | ! empty( $url ) ? $profile_photo_src = $url : 0; |
| 23 | } |
| 24 | |
| 25 | $timezone = User::get_user_timezone_string( $user ); |
| 26 | |
| 27 | // Prepare cover photo. |
| 28 | $cover_placeholder = tutor()->url . 'assets/images/cover-photo.jpg'; |
| 29 | $cover_photo_src = $cover_placeholder; |
| 30 | $cover_photo_id = get_user_meta( $user->ID, User::COVER_PHOTO_META, true ); |
| 31 | if ( $cover_photo_id ) { |
| 32 | $url = wp_get_attachment_image_url( $cover_photo_id, 'full' ); |
| 33 | ! empty( $url ) ? $cover_photo_src = $url : 0; |
| 34 | } |
| 35 | |
| 36 | // Prepare display name. |
| 37 | $public_display = array(); |
| 38 | $public_display['display_nickname'] = $user->nickname; |
| 39 | $public_display['display_username'] = $user->user_login; |
| 40 | |
| 41 | if ( ! empty( $user->first_name ) ) { |
| 42 | $public_display['display_firstname'] = $user->first_name; |
| 43 | } |
| 44 | |
| 45 | if ( ! empty( $user->last_name ) ) { |
| 46 | $public_display['display_lastname'] = $user->last_name; |
| 47 | } |
| 48 | |
| 49 | if ( ! empty( $user->first_name ) && ! empty( $user->last_name ) ) { |
| 50 | $public_display['display_firstlast'] = $user->first_name . ' ' . $user->last_name; |
| 51 | $public_display['display_lastfirst'] = $user->last_name . ' ' . $user->first_name; |
| 52 | } |
| 53 | |
| 54 | if ( ! in_array( $user->display_name, $public_display ) ) { // Only add this if it isn't duplicated elsewhere. |
| 55 | $public_display = array( 'display_displayname' => $user->display_name ) + $public_display; |
| 56 | } |
| 57 | |
| 58 | $public_display = array_map( 'trim', $public_display ); |
| 59 | $public_display = array_unique( $public_display ); |
| 60 | $max_filesize = floatval( ini_get( 'upload_max_filesize' ) ) * ( 1024 * 1024 ); |
| 61 | ?> |
| 62 | |
| 63 | <div class="tutor-dashboard-setting-profile tutor-dashboard-content-inner"> |
| 64 | |
| 65 | <?php do_action( 'tutor_profile_edit_form_before' ); ?> |
| 66 | |
| 67 | <div id="tutor_profile_cover_photo_editor"> |
| 68 | |
| 69 | <input id="tutor_photo_dialogue_box" type="file" accept=".png,.jpg,.jpeg"/> |
| 70 | <input type="hidden" class="upload_max_filesize" value="<?php echo esc_attr( $max_filesize ); ?>"> |
| 71 | <div id="tutor_cover_area" data-fallback="<?php echo esc_attr( $cover_placeholder ); ?>" style="background-image:url(<?php echo esc_url( $cover_photo_src ); ?>)"> |
| 72 | <span class="tutor_cover_deleter"> |
| 73 | <span class="dashboard-profile-delete tutor-icon-trash-can-bold"></span> |
| 74 | </span> |
| 75 | <div class="tutor_overlay"> |
| 76 | <button class="tutor_cover_uploader tutor-btn tutor-btn-primary"> |
| 77 | <i class="tutor-icon-camera tutor-mr-12" area-hidden="true"></i> |
| 78 | <span><?php echo $profile_photo_id ? esc_html__( 'Update Cover Photo', 'tutor' ) : esc_html__( 'Upload Cover Photo', 'tutor' ); ?></span> |
| 79 | </button> |
| 80 | </div> |
| 81 | </div> |
| 82 | <div id="tutor_photo_meta_area"> |
| 83 | <img src="<?php echo esc_url( tutor()->url . '/assets/images/' ); ?>info-icon.svg" /> |
| 84 | <span><?php esc_html_e( 'Profile Photo Size', 'tutor' ); ?>: <span><?php esc_html_e( '200x200', 'tutor' ); ?></span> <?php esc_html_e( 'pixels', 'tutor' ); ?></span> |
| 85 | <span> <?php esc_html_e( 'Cover Photo Size', 'tutor' ); ?>: <span><?php esc_html_e( '700x430', 'tutor' ); ?></span> <?php esc_html_e( 'pixels', 'tutor' ); ?> </span> |
| 86 | <span class="loader-area"><?php esc_html_e( 'Saving...', 'tutor' ); ?></span> |
| 87 | </div> |
| 88 | <div id="tutor_profile_area" data-fallback="<?php echo esc_attr( $profile_placeholder ); ?>" style="background-image:url(<?php echo esc_url( $profile_photo_src ); ?>)"> |
| 89 | <div class="tutor_overlay"> |
| 90 | <i class="tutor-icon-camera"></i> |
| 91 | </div> |
| 92 | </div> |
| 93 | <div id="tutor_pp_option"> |
| 94 | <div class="up-arrow"> |
| 95 | <i></i> |
| 96 | </div> |
| 97 | |
| 98 | <span class="tutor_pp_uploader profile-uploader"> |
| 99 | <i class="profile-upload-icon tutor-icon-image-landscape tutor-mr-4"></i> <?php esc_html_e( 'Upload Photo', 'tutor' ); ?> |
| 100 | </span> |
| 101 | <span class="tutor_pp_deleter profile-uploader"> |
| 102 | <i class="profile-upload-icon tutor-icon-trash-can-bold tutor-mr-4"></i> <?php esc_html_e( 'Delete', 'tutor' ); ?> |
| 103 | </span> |
| 104 | |
| 105 | <div></div> |
| 106 | </div> |
| 107 | </div> |
| 108 | |
| 109 | <form action="" method="post" enctype="multipart/form-data"> |
| 110 | <?php |
| 111 | $error_list = apply_filters( 'tutor_profile_edit_validation_errors', array() ); |
| 112 | if ( is_array( $error_list ) && count( $error_list ) ) { |
| 113 | echo '<div class="tutor-alert-warning tutor-mb-12"><ul class="tutor-required-fields">'; |
| 114 | foreach ( $error_list as $error_key => $error_value ) { |
| 115 | echo '<li>' . esc_html( $error_value ) . '</li>'; |
| 116 | } |
| 117 | echo '</ul></div>'; |
| 118 | } |
| 119 | ?> |
| 120 | |
| 121 | <?php do_action( 'tutor_profile_edit_input_before' ); ?> |
| 122 | |
| 123 | <div class="tutor-row"> |
| 124 | <div class="tutor-col-12 tutor-col-sm-6 tutor-col-md-12 tutor-col-lg-6 tutor-mb-32"> |
| 125 | <label class="tutor-form-label tutor-color-secondary"> |
| 126 | <?php esc_html_e( 'First Name', 'tutor' ); ?> |
| 127 | </label> |
| 128 | <input class="tutor-form-control" type="text" name="first_name" value="<?php echo esc_attr( $user->first_name ); ?>" placeholder="<?php esc_attr_e( 'First Name', 'tutor' ); ?>"> |
| 129 | </div> |
| 130 | |
| 131 | <div class="tutor-col-12 tutor-col-sm-6 tutor-col-md-12 tutor-col-lg-6 tutor-mb-32"> |
| 132 | <label class="tutor-form-label tutor-color-secondary"> |
| 133 | <?php esc_html_e( 'Last Name', 'tutor' ); ?> |
| 134 | </label> |
| 135 | <input class="tutor-form-control" type="text" name="last_name" value="<?php echo esc_attr( $user->last_name ); ?>" placeholder="<?php esc_attr_e( 'Last Name', 'tutor' ); ?>"> |
| 136 | </div> |
| 137 | </div> |
| 138 | |
| 139 | <div class="tutor-row"> |
| 140 | <div class="tutor-col-12 tutor-col-sm-6 tutor-col-md-12 tutor-col-lg-6 tutor-mb-32"> |
| 141 | <label class="tutor-form-label tutor-color-secondary"> |
| 142 | <?php esc_html_e( 'User Name', 'tutor' ); ?> |
| 143 | </label> |
| 144 | <input class="tutor-form-control" type="text" disabled="disabled" value="<?php echo esc_attr( $user->user_login ); ?>"> |
| 145 | </div> |
| 146 | |
| 147 | <div class="tutor-col-12 tutor-col-sm-6 tutor-col-md-12 tutor-col-lg-6 tutor-mb-32"> |
| 148 | <label class="tutor-form-label tutor-color-secondary"> |
| 149 | <?php esc_html_e( 'Phone Number', 'tutor' ); ?> |
| 150 | </label> |
| 151 | <input class="tutor-form-control" type="tel" pattern="[0-9]{3}-[0-9]{2}-[0-9]{3}" name="phone_number" value="<?php echo esc_html( filter_var( get_user_meta( $user->ID, 'phone_number', true ), FILTER_SANITIZE_NUMBER_INT ) ); ?>" placeholder="<?php esc_attr_e( 'Phone Number', 'tutor' ); ?>"> |
| 152 | </div> |
| 153 | </div> |
| 154 | |
| 155 | <div class="tutor-row"> |
| 156 | <div class="tutor-col-12 tutor-col-sm-6 tutor-mb-32"> |
| 157 | <label class="tutor-form-label tutor-color-secondary"> |
| 158 | <?php esc_html_e( 'Skill/Occupation', 'tutor' ); ?> |
| 159 | </label> |
| 160 | <input class="tutor-form-control" type="text" name="tutor_profile_job_title" value="<?php echo esc_attr( get_user_meta( $user->ID, '_tutor_profile_job_title', true ) ); ?>" placeholder="<?php esc_attr_e( 'UX Designer', 'tutor' ); ?>"> |
| 161 | </div> |
| 162 | |
| 163 | <?php if ( ! User::is_admin() ) : ?> |
| 164 | <div class="tutor-col-12 tutor-col-sm-6 tutor-mb-32"> |
| 165 | <label class="tutor-form-label tutor-color-secondary"> |
| 166 | <?php esc_html_e( 'Timezone', 'tutor' ); ?> |
| 167 | </label> |
| 168 | <select name="timezone" class="tutor-form-select" data-searchable> |
| 169 | <?php echo wp_timezone_choice( $timezone ); //phpcs:ignore ?> |
| 170 | </select> |
| 171 | </div> |
| 172 | <?php endif; ?> |
| 173 | |
| 174 | </div> |
| 175 | |
| 176 | <div class="tutor-row"> |
| 177 | <div class="tutor-col-12 tutor-mb-32"> |
| 178 | <label class="tutor-form-label tutor-color-secondary"> |
| 179 | <?php esc_html_e( 'Bio', 'tutor' ); ?> |
| 180 | </label> |
| 181 | <?php |
| 182 | $profile_bio = get_user_meta( $user->ID, User::PROFILE_BIO_META, true ); |
| 183 | wp_editor( $profile_bio, 'tutor_profile_bio', tutor_utils()->get_profile_bio_editor_config() ); |
| 184 | ?> |
| 185 | </div> |
| 186 | </div> |
| 187 | |
| 188 | <div class="tutor-row"> |
| 189 | <div class="tutor-col-12 tutor-col-sm-6 tutor-col-md-12 tutor-col-lg-6 tutor-mb-32"> |
| 190 | <label class="tutor-form-label tutor-color-secondary"> |
| 191 | <?php esc_html_e( 'Display name publicly as', 'tutor' ); ?> |
| 192 | |
| 193 | </label> |
| 194 | <select class="tutor-form-select" name="display_name"> |
| 195 | <?php |
| 196 | foreach ( $public_display as $_id => $item ) { |
| 197 | ?> |
| 198 | <option <?php selected( $user->display_name, $item ); ?>><?php echo esc_html( $item ); ?></option> |
| 199 | <?php |
| 200 | } |
| 201 | ?> |
| 202 | </select> |
| 203 | <div class="tutor-fs-7 tutor-color-secondary tutor-mt-12"> |
| 204 | <?php esc_html_e( 'The display name is shown in all public fields, such as the author name, instructor name, student name, and name that will be printed on the certificate.', 'tutor' ); ?> |
| 205 | </div> |
| 206 | </div> |
| 207 | </div> |
| 208 | <?php do_action( 'tutor_profile_edit_input_after', $user ); ?> |
| 209 | |
| 210 | <div class="tutor-row"> |
| 211 | <div class="tutor-col-12"> |
| 212 | <button type="submit" class="tutor-btn tutor-btn-primary tutor-profile-settings-save"> |
| 213 | <?php esc_html_e( 'Update Profile', 'tutor' ); ?> |
| 214 | </button> |
| 215 | </div> |
| 216 | </div> |
| 217 | </form> |
| 218 | |
| 219 | <?php do_action( 'tutor_profile_edit_form_after' ); ?> |
| 220 | </div> |
| 221 | <style> |
| 222 | .tutor-form-control.invalid{border-color: red;} |
| 223 | </style> |
| 224 |