<?php /** * LearnDash `[usermeta]` shortcode processing. * * @since 2.1.0 * * @package LearnDash\Shortcodes */ if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Builds the `[usermeta]` shortcode output. * * This shortcode takes a parameter named field, which is the name of the user meta data field to be displayed. * Example: [usermeta field="display_name"] would display the user's Display Name. * * @since 2.1.0 * * @param array $attr { * An array of shortcode attributes. * * @type string $field The usermeta field to show * @type int $user_id User ID. Default current user ID. * } * @param string $content The shortcode content. Default empty. * @param string $shortcode_slug The shortcode slug. Default 'usermeta'. * * @return string output of shortcode */ function learndash_usermeta_shortcode( $attr = array(), $content = '', $shortcode_slug = 'usermeta' ) { global $learndash_shortcode_used; $learndash_shortcode_used = true; // guest users can't access usermeta. if ( ! is_user_logged_in() ) { return ''; } // We clear out content because there is no reason to retain it. $content = ''; $attr = shortcode_atts( array( 'field' => 'user_login', 'user_id' => get_current_user_id(), ), $attr ); /** This filter is documented in includes/shortcodes/ld_course_resume.php */ $attr = apply_filters( 'learndash_shortcode_atts', $attr, $shortcode_slug ); if ( ( ! empty( $attr['user_id'] ) ) && ( ! empty( $attr['field'] ) ) ) { $userdata = get_userdata( intval( $attr['user_id'] ) ); if ( ( $userdata ) && ( is_a( $userdata, 'WP_User' ) ) ) { if ( ( learndash_is_admin_user() ) || ( get_current_user_id() == $attr['user_id'] ) ) { $usermeta_available_fields = array( $attr['field'] => $attr['field'] ); } else { $usermeta_available_fields = learndash_get_usermeta_shortcode_available_fields( $attr ); } if ( ! is_array( $usermeta_available_fields ) ) { $usermeta_available_fields = array( $usermeta_available_fields ); } $value = ''; if ( array_key_exists( $attr['field'], $usermeta_available_fields ) === true ) { switch ( $attr['field'] ) { case 'first_last_name': $value = $userdata->user_firstname . ' ' . $userdata->user_lastname; break; default: if ( array_key_exists( $attr['field'], $usermeta_available_fields ) === true ) { $value = $userdata->{$attr['field']}; } break; } } /** * Filters usermeta shortcode field attribute value. * * @since 2.4.0 * * @param string $value Usermeta field attribute value. * @param array $attributes An array of shortcode attributes. * @param array $usermeta_available_fields An array of available user meta fields. */ $content = apply_filters( 'learndash_usermeta_shortcode_field_value_display', $value, $attr, $usermeta_available_fields ); } } return $content; } add_shortcode( 'usermeta', 'learndash_usermeta_shortcode', 10, 3 );
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
ld_certificate.php | File | 8.85 KB | 0644 |
|
ld_course_certificate.php | File | 2.14 KB | 0644 |
|
ld_course_complete.php | File | 2.35 KB | 0644 |
|
ld_course_content.php | File | 14.56 KB | 0644 |
|
ld_course_expire_status.php | File | 4.86 KB | 0644 |
|
ld_course_info.php | File | 1.58 KB | 0644 |
|
ld_course_inprogress.php | File | 2.36 KB | 0644 |
|
ld_course_list.php | File | 45.9 KB | 0644 |
|
ld_course_notstarted.php | File | 2.36 KB | 0644 |
|
ld_course_progress.php | File | 3.26 KB | 0644 |
|
ld_course_resume.php | File | 4.51 KB | 0644 |
|
ld_courseinfo.php | File | 17.25 KB | 0644 |
|
ld_group.php | File | 2.49 KB | 0644 |
|
ld_group_list.php | File | 1.21 KB | 0644 |
|
ld_group_user_list.php | File | 4.69 KB | 0644 |
|
ld_groupinfo.php | File | 9.34 KB | 0644 |
|
ld_infobar.php | File | 6.52 KB | 0644 |
|
ld_lesson_list.php | File | 2.07 KB | 0644 |
|
ld_materials.php | File | 2.68 KB | 0644 |
|
ld_navigation.php | File | 5.25 KB | 0644 |
|
ld_payment_buttons.php | File | 2.2 KB | 0644 |
|
ld_profile.php | File | 7.72 KB | 0644 |
|
ld_quiz.php | File | 15.78 KB | 0644 |
|
ld_quiz_complete.php | File | 2.07 KB | 0644 |
|
ld_quiz_list.php | File | 3.12 KB | 0644 |
|
ld_quizinfo.php | File | 9.4 KB | 0644 |
|
ld_registration.php | File | 1.29 KB | 0644 |
|
ld_reset_password.php | File | 1.3 KB | 0644 |
|
ld_student.php | File | 5.17 KB | 0644 |
|
ld_topic_list.php | File | 2.68 KB | 0644 |
|
ld_user_course_points.php | File | 1.86 KB | 0644 |
|
ld_user_groups.php | File | 2.17 KB | 0644 |
|
ld_usermeta.php | File | 2.97 KB | 0644 |
|
ld_visitor.php | File | 4.81 KB | 0644 |
|
learndash_user_status.php | File | 1.79 KB | 0644 |
|
shortcodes-functions.php | File | 3.12 KB | 0644 |
|
shortcodes-loader.php | File | 1.8 KB | 0644 |
|