PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.4
Tutor LMS – eLearning and online course solution v3.9.4
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 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>&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
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