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
593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 | 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. |