PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.0.2
Tutor LMS – eLearning and online course solution v3.0.2
4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / templates / dashboard / settings / profile.php
tutor / templates / dashboard / settings Last commit date
nav-bar.php 3 years ago profile.php 1 year ago reset-password.php 2 years ago social-profile.php 1 year ago withdraw-settings.php 2 years ago
profile.php
220 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>&nbsp;&nbsp;&nbsp;&nbsp;<?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 <div class="tutor-col-12 tutor-col-sm-6 tutor-mb-32">
163 <label class="tutor-form-label tutor-color-secondary">
164 <?php esc_html_e( 'Timezone', 'tutor' ); ?>
165 </label>
166 <select name="timezone" class="tutor-form-select" data-searchable>
167 <?php echo wp_timezone_choice( $timezone ); //phpcs:ignore ?>
168 </select>
169 </div>
170 </div>
171
172 <div class="tutor-row">
173 <div class="tutor-col-12 tutor-mb-32">
174 <label class="tutor-form-label tutor-color-secondary">
175 <?php esc_html_e( 'Bio', 'tutor' ); ?>
176 </label>
177 <?php
178 $profile_bio = get_user_meta( $user->ID, User::PROFILE_BIO_META, true );
179 wp_editor( $profile_bio, 'tutor_profile_bio', tutor_utils()->get_profile_bio_editor_config() );
180 ?>
181 </div>
182 </div>
183
184 <div class="tutor-row">
185 <div class="tutor-col-12 tutor-col-sm-6 tutor-col-md-12 tutor-col-lg-6 tutor-mb-32">
186 <label class="tutor-form-label tutor-color-secondary">
187 <?php esc_html_e( 'Display name publicly as', 'tutor' ); ?>
188
189 </label>
190 <select class="tutor-form-select" name="display_name">
191 <?php
192 foreach ( $public_display as $_id => $item ) {
193 ?>
194 <option <?php selected( $user->display_name, $item ); ?>><?php echo esc_html( $item ); ?></option>
195 <?php
196 }
197 ?>
198 </select>
199 <div class="tutor-fs-7 tutor-color-secondary tutor-mt-12">
200 <?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' ); ?>
201 </div>
202 </div>
203 </div>
204 <?php do_action( 'tutor_profile_edit_input_after', $user ); ?>
205
206 <div class="tutor-row">
207 <div class="tutor-col-12">
208 <button type="submit" class="tutor-btn tutor-btn-primary tutor-profile-settings-save">
209 <?php esc_html_e( 'Update Profile', 'tutor' ); ?>
210 </button>
211 </div>
212 </div>
213 </form>
214
215 <?php do_action( 'tutor_profile_edit_form_after' ); ?>
216 </div>
217 <style>
218 .tutor-form-control.invalid{border-color: red;}
219 </style>
220