LLMS_Shortcode_Hide_Content

LLMS_Shortcode_Hide_Content


Source Source

File: includes/shortcodes/class.llms.shortcode.hide.content.php

class LLMS_Shortcode_Hide_Content extends LLMS_Shortcode {

	/**
	 * Shortcode tag
	 *
	 * @var string
	 */
	public $tag = 'lifterlms_hide_content';

	/**
	 * Get default shortcode attributes
	 *
	 * Retrieves an array of default attributes which are automatically merged
	 * with the user submitted attributes and passed to $this->get_output()
	 *
	 * @since 3.5.1
	 * @since 3.24.1 Unknown.
	 *
	 * @return array
	 */
	protected function get_default_attributes() {
		return array(
			'membership' => '', // For backwards compat, use id moving forward/
			'message'    => '',
			'id'         => get_the_ID(),
			'relation'   => 'all',
		);
	}

	/**
	 * 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 3.5.1
	 * @since 3.24.1 Unknown.
	 *
	 * @return string
	 */
	protected function get_output() {

		// Backwards compatibility, get membership if set and fallback to the id.
		$ids = $this->get_attribute( 'membership' ) ? $this->get_attribute( 'membership' ) : $this->get_attribute( 'id' );

		// Explode, trim whitespace and remove empty values.
		$ids = (array) array_map( 'trim', array_filter( explode( ',', $ids ) ) );

		// Assume content is hidden.
		$hidden = true;

		if ( 'any' === $this->get_attribute( 'relation' ) && ! empty( $ids ) ) {
			foreach ( $ids as $id ) {
				if ( llms_is_user_enrolled( get_current_user_id(), $id ) ) {
					$hidden = false;
					break;
				}
			}
		} elseif ( 'all' === $this->get_attribute( 'relation' ) && ! empty( $ids ) ) {
			$inc = 0;
			foreach ( $ids as $id ) {
				if ( llms_is_user_enrolled( get_current_user_id(), $id ) ) {
					$inc++;
				}
			}

			if ( count( $ids ) === $inc ) {
				$hidden = false;
			}
		}

		return ! $hidden ? do_shortcode( $this->get_content() ) : $this->get_attribute( 'message' );

	}

}


Top ↑

Methods Methods


Top ↑

Changelog Changelog

Changelog
Version Description
3.5.1
3.24.1 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

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