llms_is_post_restricted_by_sitewide_membership( int $post_id, int|null $user_id = null )
Determine if a post should bypass sitewide membership restrictions.
Description Description
If sitewide membership restriction is disabled, this will always return false. This function replaces the now deprecated site_restricted_by_membership() (and has slightly different functionality).
Parameters Parameters
- $post_id
-
(int) (Required) WP Post ID.
- $user_id
-
(int|null) (Optional) WP User ID (will use get_current_user_id() if none supplied). Default
null
.Default value: null
Return Return
(bool|int) If the post is not restricted (or there are not sitewide membership restrictions) returns false. If the post is restricted, returns the membership id required.
Source Source
File: includes/functions/llms.functions.access.php
function llms_is_post_restricted_by_sitewide_membership( $post_id, $user_id = null ) { $membership_id = absint( get_option( 'lifterlms_membership_required', '' ) ); // site is restricted to a membership. if ( ! empty( $membership_id ) ) { $membership = new LLMS_Membership( $membership_id ); if ( ! $membership || ! is_a( $membership, 'LLMS_Membership' ) ) { return false; } // Restricted contents redirection page id, if any. $redirect_page_id = 'page' === $membership->get( 'restriction_redirect_type' ) ? absint( $membership->get( 'redirect_page_id' ) ) : 0; /** * Pages that can be bypassed when sitewide restrictions are enabled. */ $allowed = apply_filters( 'lifterlms_sitewide_restriction_bypass_ids', array_filter( array( absint( $membership_id ), // the membership page the site is restricted to. absint( get_option( 'lifterlms_terms_page_id' ) ), // terms and conditions. llms_get_page_id( 'memberships' ), // membership archives. llms_get_page_id( 'myaccount' ), // lifterlms account page. llms_get_page_id( 'checkout' ), // lifterlms checkout page. absint( get_option( 'wp_page_for_privacy_policy' ) ), // wp privacy policy page. $redirect_page_id, // Restricted contents redirection page id. ) ) ); if ( in_array( $post_id, $allowed, true ) ) { return false; } return $membership_id; } else { return false; } }
Expand full source code Collapse full source code View on GitHub
Changelog Changelog
Version | Description |
---|---|
3.37.10 | Do not apply membership restrictions on the page set as membership's restriction redirect page. Exclude the privacy policy from the sitewide restriction. Call in_array() with strict comparison. |
3.0.0 | Introduced. |