Files
ultimatemember/templates/profile.php
T
Mykyta Synelnikov 0c183594b1 Update Ultimate Member to version 2.10.0
Bump plugin version to 2.10.0, update documentation, and adjust URLs and metadata accordingly. This release includes increased minimum PHP and WordPress requirements and addresses security-related issues. Users are strongly advised to update immediately.
2025-02-13 11:28:28 +02:00

296 lines
12 KiB
PHP

<?php
/**
* Template for the profile page
*
* This template can be overridden by copying it to your-theme/ultimate-member/templates/profile.php
*
* Page: "Profile"
*
* @version 2.10.0
*
* @var string $mode
* @var int $form_id
* @var array $args
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$description_key = UM()->profile()->get_show_bio_key( $args );
?>
<div class="um <?php echo esc_attr( $this->get_class( $mode ) ); ?> um-<?php echo esc_attr( $form_id ); ?> um-role-<?php echo esc_attr( um_user( 'role' ) ); ?>">
<div class="um-form" data-mode="<?php echo esc_attr( $mode ); ?>" data-form_id="<?php echo esc_attr( $form_id ); ?>">
<?php
/**
* Fires before User Profile header.
* It's the first hook at User Profile wrapper.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 10 - `um_profile_completeness_show_notice()` displays Profile Completeness notices.
*
* @param {array} $args User Profile data.
*
* @since 1.3.x
* @hook um_profile_before_header
*
* @example <caption>Display some content before User Profile.</caption>
* function my_um_profile_before_header( $args ) {
* // your code here
* echo $notice;
* }
* add_action( 'um_profile_before_header', 'my_um_profile_before_header' );
*/
do_action( 'um_profile_before_header', $args );
if ( um_is_on_edit_profile() ) {
?>
<form method="post" action="" data-description_key="<?php echo esc_attr( $description_key ); ?>">
<?php
}
/**
* Fires for displaying User Profile cover area.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 9 - `um_profile_header_cover_area()` displays User Profile cover photo.
*
* @param {array} $args User Profile data.
*
* @since 1.3.x
* @hook um_profile_header_cover_area
*
* @example <caption>Display some content before or after User Profile cover.</caption>
* function my_um_profile_header_cover_area( $args ) {
* // your code here
* echo $content;
* }
* add_action( 'um_profile_header_cover_area', 'my_um_profile_header_cover_area' );
*/
do_action( 'um_profile_header_cover_area', $args );
/**
* Fires for displaying User Profile header.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 9 - `um_profile_header()` displays User Profile header.
*
* @param {array} $args User Profile data.
*
* @since 1.3.x
* @hook um_profile_header
*
* @example <caption>Display some content before or after User Profile header.</caption>
* function my_um_profile_header( $args ) {
* // your code here
* echo $content;
* }
* add_action( 'um_profile_header', 'my_um_profile_header' );
*/
do_action( 'um_profile_header', $args );
/**
* Filters classes of the User Profile navigation bar.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 10 - `um_followers_profile_navbar_classes()` from Followers extension class.
* 10 - `profile_navbar_classes()` from Messaging extension class.
*
* @param {string} $classes User Profile navigation bar classes.
*
* @since 2.0
* @hook um_profile_navbar_classes
*
* @return {string} User Profile navigation bar classes.
*
* @example <caption>Adds `my_custom_class` class to the navigation bar on the User Profile page.</caption>
* function my_um_profile_navbar_classes( $classes ) {
* // your code here
* $classes .= ' my_custom_class';
* echo $classes;
* }
* add_filter( 'um_profile_navbar_classes', 'my_um_profile_navbar_classes' );
*/
$classes = apply_filters( 'um_profile_navbar_classes', '' );
?>
<div class="um-profile-navbar <?php echo esc_attr( $classes ); ?>">
<?php
/**
* Fires for displaying User Profile navigation bar.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 4 - `um_followers_add_profile_bar()` displays Followers button.
* 5 - `add_profile_bar()` displays Messaging button.
*
* @param {array} $args User Profile data.
*
* @since 1.3.x
* @hook um_profile_navbar
*
* @example <caption>Display some content before or after User Profile navigation bar.</caption>
* function my_um_profile_navbar( $args ) {
* // your code here
* echo $content;
* }
* add_action( 'um_profile_navbar', 'my_um_profile_navbar' );
*/
do_action( 'um_profile_navbar', $args );
?>
<div class="um-clear"></div>
</div>
<?php
/**
* Fires for displaying User Profile menu.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 9 - `um_profile_menu()` displays User Profile menu.
*
* @param {array} $args User Profile data.
*
* @since 2.0
* @hook um_profile_menu
*
* @example <caption>Display some content before or after User Profile menu.</caption>
* function my_um_profile_menu( $args ) {
* // your code here
* echo $content;
* }
* add_action( 'um_profile_menu', 'my_um_profile_menu' );
*/
do_action( 'um_profile_menu', $args );
if ( um_is_on_edit_profile() || UM()->user()->preview ) {
$nav = 'main';
$subnav = UM()->profile()->active_subnav();
$subnav = ! empty( $subnav ) ? $subnav : 'default';
?>
<div class="um-profile-body <?php echo esc_attr( $nav . ' ' . $nav . '-' . $subnav ); ?>">
<?php
/**
* Fires for adding content in User Profile nav menu content tab.
* $nav profile menu tab key.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 10 - `um_profile_content_main()` displays `About` menu tab's content (v2).
* 10 - `UM()->frontend()->profile()->about()` displays `About` menu tab's content (v3).
* 10 - `um_profile_content_followers()` displays `Followers` menu tab's content.
* 10 - `um_profile_content_following()` displays `Following` menu tab's content.
* 10 - `um_profile_content_groups_list()` displays `User Groups List` menu tab's content.
* 10 - `profile_tab_content()` displays `My Jobs` menu tab's content.
* 10 - `profile_tab_dashboard_content()` displays `My Jobs Dashboard` menu tab's content.
* 10 - `content_messages()` displays `Messages` menu tab's content.
* 10 - `um_profile_content_private_content()` displays `Private Content` menu tab's content.
* 10 - `um_profile_content_{$tab['tabid']}` displays custom Profile Tabs content.
* 10 - `um_profile_content_reviews()` displays `Reviews` menu tab's content.
* 10 - `show_wall()` displays `Activity` menu tab's content.
*
* @param {array} $args User Profile data.
*
* @since 1.3.x
* @hook um_profile_content_{$nav}
*
* @example <caption>Display some content in User Profile `main` nav content tab.</caption>
* function my_profile_content_main( $args ) {
* // your code here
* echo $content;
* }
* add_action( 'um_profile_content_main', 'my_profile_content_main' );
*/
do_action( "um_profile_content_$nav", $args );
/**
* Fires for adding content in User Profile nav > subnav menu content tab.
* $nav profile menu tab key.
* $subnav profile sub-menu tab key.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 10 - `um_bbpress_user_topics()` displays `Topics` submenu of bbPress tab's content.
* 10 - `um_bbpress_user_replies()` displays `Replies` submenu of bbPress tab's content.
* 10 - `um_bbpress_user_favorites()` displays `Favorites` submenu of bbPress tab's content.
* 10 - `um_bbpress_user_subscriptions()` displays `Subscriptions` submenu of bbPress tab's content.
* 10 - `profile_content_forums_topics()` displays `Topics` submenu of ForumWP tab's content.
* 10 - `profile_content_forums_replies()` displays `Replies` submenu of ForumWP tab's content.
* 10 - `profile_content_subscriptions()` displays `Subscriptions` submenu of ForumWP tab's content.
* 10 - `profile_content_bookmarks()` displays `Bookmarks` submenu of ForumWP tab's content.
* 10 - `profile_content_likes()` displays `Likes` submenu of ForumWP tab's content.
* 10 - `um_profile_content_friends_myfriends()` displays `My Friends` submenu of Friends tab's content.
* 10 - `um_profile_content_friends_friendreqs()` displays `Friends Requests` submenu of Friends tab's content.
* 10 - `um_profile_content_friends_sentreqs()` displays `Send Friends Requests` submenu of Friends tab's content.
* 10 - `um_profile_content_badges_my_badges()` displays `My badges` submenu of myCRED tab's content.
* 10 - `um_profile_content_badges_all_badges()` displays `All badges` submenu of myCRED tab's content.
* 10 - `get_bookmarks_content()` displays `All bookmarks with folders` submenu of User Bookmarks tab's content.
* 10 - `get_bookmarks_content_all()` displays `All bookmarks` submenu of User Bookmarks tab's content.
* 10 - `get_bookmarks_content_users()` displays `All bookmarked users` submenu of User Bookmarks tab's content.
* 10 - `user_notes_profile_tab()` displays `View Notes` submenu of User Notes tab's content.
* 10 - `get_add_note_form()` displays `Add Note` submenu of User Notes tab's content.
* 10 - `get_gallery_content()` displays `Albums` submenu of User Photos tab's content.
* 10 - `get_gallery_photos_content()` displays `Photos` submenu of User Photos tab's content.
* 10 - `um_profile_content_purchases()` displays `Purchases` submenu of Woocommerce tab's content.
* 10 - `um_profile_content_product_reviews()` displays `Product Reviews` submenu of Woocommerce tab's content.
*
* @param {array} $args User Profile data.
*
* @since 1.3.x
* @hook um_profile_content_{$nav}_{$subnav}
*
* @example <caption>Display some content in User Profile `main` nav and `step2` subnav content tab.</caption>
* function my_profile_content_main_step2( $args ) {
* // your code here
* echo $content;
* }
* add_action( 'um_profile_content_main_step2', 'my_profile_content_main_step2' );
*/
do_action( "um_profile_content_{$nav}_$subnav", $args );
?>
<div class="clear"></div>
</div>
<?php if ( ! UM()->user()->preview ) { ?>
</form>
<?php
}
} else {
$menu_enabled = UM()->options()->get( 'profile_menu' );
$profile_tabs = UM()->profile()->tabs_active();
$nav = UM()->profile()->active_tab();
$subnav = UM()->profile()->active_subnav();
$subnav = ! empty( $subnav ) ? $subnav : 'default';
if ( $menu_enabled || ! empty( $profile_tabs[ $nav ]['hidden'] ) ) {
?>
<div class="um-profile-body <?php echo esc_attr( $nav . ' ' . $nav . '-' . $subnav ); ?>">
<?php
// Custom hook to display tabbed content
/** This action is documented in ultimate-member/templates/profile.php */
do_action( "um_profile_content_$nav", $args );
/** This action is documented in ultimate-member/templates/profile.php */
do_action( "um_profile_content_{$nav}_$subnav", $args );
?>
<div class="clear"></div>
</div>
<?php
}
}
/**
* Fires for adding content below User Profile menu.
*
* Internal Ultimate Member callbacks (Priority -> Callback name -> Excerpt):
* 99 - `profile_footer_login_form()` displays User Login form related to messaging extension.
*
* @param {array} $args User Profile data.
*
* @since 2.0
* @hook um_profile_footer
*
* @example <caption>Display some content in User Profile footer.</caption>
* function my_um_profile_footer( $args ) {
* // your code here
* echo $content;
* }
* add_action( 'um_profile_footer', 'my_um_profile_footer' );
*/
do_action( 'um_profile_footer', $args );
?>
</div>
</div>