• LifterLMS
  • Knowledge Base
  • Academy
  • Blog
  • Podcast
  • Contributors
  • My Account

LifterLMS LifterLMS

  • Code Reference
  • REST API
  • LLMS-CLI
  • Changelog Subscribe

Code Reference

Skip to content
Filter by type:
Search
Browse: Home / Code Reference / Classes / LLMS_Shortcode_User_Info

LLMS_Shortcode_User_Info

LifterLMS User Information Shortcode.

Contents

  • Description
  • Source
  • Related
    • Uses
  • Methods
  • Changelog
  • User Contributed Notes

Description #Description

Shortcode: [llms-user]


Top ↑

Source #Source

File: includes/shortcodes/class-llms-shortcode-user-info.php

class LLMS_Shortcode_User_Info extends LLMS_Shortcode {

	/**
	 * Shortcode tag
	 *
	 * @var  string
	 */
	public $tag = 'llms-user';

	/**
	 * Retrieves a list of keys that cannot be displayed by the shortcode.
	 *
	 * @since 5.0.0
	 *
	 * @return string[]
	 */
	protected function get_blocklist() {

		/**
		 * Filters the list of keys which cannot be displayed using the [user] shortcode
		 *
		 * @since 5.0.0
		 *
		 * @param string[] $keys List of user and usermeta keys.
		 */
		return apply_filters( 'llms_user_info_shortcode_blocked_keys', array( 'user_pass' ) );

	}

	/**
	 * Retrieves an array of default attributes which are automatically merged
	 * with the user submitted attributes and passed to $this->get_output()
	 *
	 * @since 5.0.0
	 *
	 * @return array
	 */
	protected function get_default_attributes() {
		return array(
			'key' => '',
			'or'  => '',
		);
	}

	/**
	 * Retrieve the actual content of the shortcode
	 *
	 * $atts & $content are both filtered before being passed to get_output()
	 * output is filtered so the return of get_output() doesn't need its own filter
	 *
	 * @since 5.0.0
	 *
	 * @return string
	 */
	protected function get_output() {

		/**
		 * Filters the user used to retrieve user information displayed by the [llms-user] shortcode
		 *
		 * @since 5.0.0
		 *
		 * @param integer $user_id The WP_User ID of the currently logged-in user or `0` if no user logged in.
		 */
		$user_id = apply_filters( 'llms_user_info_shortcode_user_id', get_current_user_id() );
		$key     = $this->get_attribute( 'key' );
		$default = $this->get_attribute( 'or' );

		if ( in_array( $key, $this->get_blocklist(), true ) ) {
			return '';
		}

		// No user OR no key provided.
		if ( ! $user_id || ! $key ) {
			return $default;
		}

		$user = new WP_User( $user_id );
		$val  = $user->exists() ? $user->get( $key ) : null;

		return ! empty( $val ) && is_scalar( $val ) ? $val : $default;

	}

	/**
	 * Merge user attributes with default attributes.
	 *
	 * @since 5.0.0
	 *
	 * @param array $atts User-submitted shortcode attributes.
	 *
	 * @return array
	 */
	protected function set_attributes( $atts = array() ) {

		// Allow `key` attribute to be submitted without a key, eg: [llms-user first_name].
		if ( isset( $atts[0] ) ) {
			$atts['key'] = $atts[0];
			unset( $atts[0] );
		}

		return parent::set_attributes( $atts );

	}

}

Expand full source code Collapse full source code View on GitHub


Top ↑

Related #Related

Uses #Uses

Uses
Uses Description
includes/abstracts/abstract.llms.shortcode.php: LLMS_Shortcode

LLMS_Shortcode Abstract.


Top ↑

Methods #Methods

  • get_blocklist — Retrieves a list of keys that cannot be displayed by the shortcode.
  • get_default_attributes — Retrieves an array of default attributes which are automatically merged with the user submitted attributes and passed to $this->get_output()
  • get_output — Retrieve the actual content of the shortcode
  • set_attributes — Merge user attributes with default attributes.

Top ↑

Changelog #Changelog

Changelog
Version Description
5.0.0 Introduced.

Top ↑

User Contributed Notes #User Contributed Notes

You must log in before being able to contribute a note or feedback.

© 2014 - 2025 LifterLMS · Privacy Policy · Terms and Conditions

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.