LLMS_Blocks_Visibility::maybe_filter_block( string $content, array $block )
Filter block output.
Description Description
Parameters Parameters
- $content
-
(string) (Required) block inner content.
- $block
-
(array) (Required) block info.
Return Return
(string)
Source Source
File: vendor/lifterlms/lifterlms-blocks/includes/class-llms-blocks-visibility.php
public function maybe_filter_block( $content, $block ) { // No attributes or no llms visibility settings (visibile to "all"). if ( empty( $block['attrs'] ) || empty( $block['attrs']['llms_visibility'] ) ) { return $content; } $uid = get_current_user_id(); // Enrolled checks. if ( 'enrolled' === $block['attrs']['llms_visibility'] && ! empty( $block['attrs']['llms_visibility_in'] ) ) { // Don't have to run any further checks if we don't have a user. if ( ! $uid ) { $content = ''; // Checks for the "any" conditions. } elseif ( in_array( $block['attrs']['llms_visibility_in'], array( 'any', 'any_course', 'any_membership' ), true ) ) { $found = $this->get_enrollment_count_by_type( $uid, $block['attrs']['llms_visibility_in'] ); if ( ! $found ) { $content = ''; } // Checks for specifics. } elseif ( in_array( $block['attrs']['llms_visibility_in'], array( 'this', 'list_all', 'list_any' ), true ) ) { $relation = 'list_any' === $block['attrs']['llms_visibility_in'] ? 'any' : 'all'; // "this" becomes an "all" relationship if ( ! llms_is_user_enrolled( $uid, $this->get_post_ids_from_block_attributes( $block['attrs'] ), $relation ) ) { $content = ''; } } // Not-Enrolled checks. } elseif ( 'not_enrolled' === $block['attrs']['llms_visibility'] && ! empty( $block['attrs']['llms_visibility_in'] ) ) { // Only need to check logged in users. if ( $uid ) { // Checks for the "any" conditions. if ( in_array( $block['attrs']['llms_visibility_in'], array( 'any', 'any_course', 'any_membership' ), true ) ) { $found = $this->get_enrollment_count_by_type( $uid, $block['attrs']['llms_visibility_in'] ); if ( $found ) { $content = ''; } // Checks for specifics. } elseif ( in_array( $block['attrs']['llms_visibility_in'], array( 'this', 'list_all', 'list_any' ), true ) ) { $relation = 'list_any' === $block['attrs']['llms_visibility_in'] ? 'any' : 'all'; // "this" becomes an "all" relationship if ( llms_is_user_enrolled( $uid, $this->get_post_ids_from_block_attributes( $block['attrs'] ), $relation ) ) { $content = ''; } } } } return apply_filters( 'llms_blocks_visibility_render_block', $content, $block ); }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |
User Contributed Notes User Contributed Notes
Permalink: