course-filter
2 months ago
dashboard
23 hours ago
ecommerce
23 hours ago
email
23 hours ago
global
1 week ago
instructor
3 years ago
learning-area
23 hours ago
loop
23 hours ago
modal
2 months ago
profile
3 years ago
shared
23 hours ago
shortcode
2 months ago
single
23 hours ago
template-part
23 hours ago
widget
3 years ago
account-header.php
23 hours ago
account.php
23 hours ago
archive-course-init.php
9 months ago
archive-course.php
3 years ago
course-embed.php
2 months ago
course-none.php
3 years ago
dashboard-isolated.php
23 hours ago
dashboard.php
23 hours ago
feature_disabled.php
3 years ago
login-form-legacy.php
23 hours ago
login-form.php
23 hours ago
login.php
23 hours ago
permission-denied.php
23 hours ago
public-profile.php
23 hours ago
single-assignment.php
3 years ago
single-content-loader.php
2 months ago
single-course.php
23 hours ago
single-lesson.php
3 years ago
single-preview-lesson.php
3 years ago
single-quiz.php
1 year ago
template.php
3 years ago
user-profile.php
23 hours ago
user-profile.php
149 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Tutor dashboard profile. |
| 4 | * |
| 5 | * @package Tutor\Templates |
| 6 | * @author Themeum <support@themeum.com> |
| 7 | * @link https://themeum.com |
| 8 | * @since 4.0.0 |
| 9 | */ |
| 10 | |
| 11 | defined( 'ABSPATH' ) || exit; |
| 12 | |
| 13 | use Tutor\Components\Avatar; |
| 14 | use Tutor\Components\Constants\Size; |
| 15 | use TUTOR\Dashboard; |
| 16 | use TUTOR\Icon; |
| 17 | use Tutor\Components\SvgIcon; |
| 18 | use Tutor\Helpers\UrlHelper; |
| 19 | use TUTOR\Input; |
| 20 | |
| 21 | $user_id = Input::get( 'student_id', get_current_user_id(), Input::TYPE_INT ); |
| 22 | $student_details = get_userdata( $user_id ); |
| 23 | $student_meta = get_user_meta( $user_id ); |
| 24 | $cover_photo_url = tutor_utils()->get_cover_photo_url( $user_id ); |
| 25 | $edit_profile_url = Dashboard::get_account_page_url( 'settings' ) . '?tab=account'; |
| 26 | $phone_number = $student_meta['phone_number'][0] ?? ''; |
| 27 | |
| 28 | $social_fields = tutor_utils()->tutor_user_social_icons(); |
| 29 | $social_links = array(); |
| 30 | |
| 31 | foreach ( $social_fields as $meta_key => $field ) { |
| 32 | $url = $student_meta[ $meta_key ][0] ?? ''; |
| 33 | $social_links[ $meta_key ] = array( |
| 34 | 'url' => $url, |
| 35 | 'icon' => $field['svg_icon'] ?? Icon::GLOBE, |
| 36 | 'label' => $field['label'], |
| 37 | ); |
| 38 | } |
| 39 | ?> |
| 40 | |
| 41 | <div class="tutor-profile-card"> |
| 42 | <div class="tutor-profile-card-header" style="background-image: url(<?php echo esc_attr( $cover_photo_url ); ?>);"> |
| 43 | <?php Avatar::make()->user( $user_id )->size( Size::SIZE_104 )->render(); ?> |
| 44 | <?php if ( tutor_utils()->is_dashboard_page( 'account/profile' ) ) : ?> |
| 45 | <a href="<?php echo esc_url( UrlHelper::add_query_params( $edit_profile_url, array( 'back_url' => UrlHelper::current() ) ) ); ?>" class="tutor-edit-profile-btn"> |
| 46 | <?php SvgIcon::make()->name( Icon::EDIT_2 )->render(); ?> |
| 47 | <span><?php esc_html_e( 'Edit Profile', 'tutor' ); ?></span> |
| 48 | </a> |
| 49 | <?php endif; ?> |
| 50 | </div> |
| 51 | <div class="tutor-profile-card-body"> |
| 52 | <div class="tutor-profile-card-body-left"> |
| 53 | <div> |
| 54 | <h3 class="tutor-user-profile-title"> |
| 55 | <?php echo esc_html( $student_details->display_name ); ?> |
| 56 | </h3> |
| 57 | <div class="tutor-user-profile-designation"> |
| 58 | <?php echo esc_html( $student_meta['_tutor_profile_job_title'][0] ?? '' ); ?> |
| 59 | </div> |
| 60 | |
| 61 | <?php |
| 62 | $has_social = array_filter( array_column( $social_links, 'url' ) ); |
| 63 | if ( $has_social ) : |
| 64 | ?> |
| 65 | <div class="tutor-user-profile-social"> |
| 66 | <?php foreach ( $social_links as $social_link ) : ?> |
| 67 | <?php if ( ! empty( $social_link['url'] ) ) : ?> |
| 68 | <a |
| 69 | href="<?php echo esc_url( $social_link['url'] ); ?>" |
| 70 | class="tutor-social-link" |
| 71 | target="_blank" |
| 72 | rel="noopener noreferrer" |
| 73 | aria-label="<?php echo esc_attr( $social_link['label'] ); ?>" |
| 74 | > |
| 75 | <?php SvgIcon::make()->name( $social_link['icon'] )->render(); ?> |
| 76 | </a> |
| 77 | <?php endif; ?> |
| 78 | <?php endforeach; ?> |
| 79 | </div> |
| 80 | <?php endif; ?> |
| 81 | </div> |
| 82 | </div> |
| 83 | <div class="tutor-profile-card-body-right"> |
| 84 | <?php |
| 85 | $bio_text = $student_meta['_tutor_profile_bio'][0] ?? ''; |
| 86 | if ( ! empty( $bio_text ) ) : |
| 87 | ?> |
| 88 | <div |
| 89 | class="tutor-bio-wrapper" |
| 90 | x-data="tutorReadMore({ lines: 4 })" |
| 91 | > |
| 92 | <div |
| 93 | class="tutor-user-profile-bio" |
| 94 | x-ref="content" |
| 95 | style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden;" |
| 96 | > |
| 97 | <?php echo wp_kses_post( $bio_text ); ?> |
| 98 | </div> |
| 99 | |
| 100 | <button |
| 101 | type="button" |
| 102 | class="tutor-bio-toggle" |
| 103 | x-ref="readMore" |
| 104 | x-cloak |
| 105 | x-show="hasOverflow && ! expanded" |
| 106 | @click="toggle()" |
| 107 | :aria-expanded="expanded.toString()" |
| 108 | > |
| 109 | <?php esc_html_e( '… Read more', 'tutor' ); ?> |
| 110 | </button> |
| 111 | |
| 112 | <button |
| 113 | type="button" |
| 114 | class="tutor-bio-toggle-less" |
| 115 | x-cloak |
| 116 | x-show="expanded" |
| 117 | @click="toggle()" |
| 118 | :aria-expanded="expanded.toString()" |
| 119 | > |
| 120 | <?php esc_html_e( 'Read less', 'tutor' ); ?> |
| 121 | </button> |
| 122 | </div> |
| 123 | <?php endif; ?> |
| 124 | |
| 125 | <ul class="tutor-user-profile-details"> |
| 126 | <li class="tutor-badge tutor-badge-disabled"> |
| 127 | <?php esc_html_e( 'Username', 'tutor' ); ?> : |
| 128 | <span><?php echo esc_html( $student_details->user_login ); ?></span> |
| 129 | </li> |
| 130 | <li class="tutor-badge tutor-badge-disabled"> |
| 131 | <?php esc_html_e( 'Email', 'tutor' ); ?> : |
| 132 | <span><?php echo esc_html( $student_details->user_email ); ?></span> |
| 133 | </li> |
| 134 | <?php if ( ! empty( $phone_number ) ) : ?> |
| 135 | <li class="tutor-badge tutor-badge-disabled"> |
| 136 | <?php esc_html_e( 'Phone', 'tutor' ); ?> : |
| 137 | <span><?php echo esc_html( $phone_number ); ?></span> |
| 138 | </li> |
| 139 | <?php endif; ?> |
| 140 | </ul> |
| 141 | </div> |
| 142 | <div class="tutor-profile-member-since"> |
| 143 | <?php SvgIcon::make()->name( Icon::MEMBER )->render(); ?> |
| 144 | <?php esc_html_e( 'Member since', 'tutor' ); ?> |
| 145 | <?php echo esc_html( tutor_i18n_get_formated_date( $student_details->user_registered, 'F j, Y' ) ); ?> |
| 146 | </div> |
| 147 | </div> |
| 148 | </div> |
| 149 |