Skip to content

Instantly share code, notes, and snippets.

@andrewlimaza
Last active January 10, 2023 14:03
Show Gist options
  • Select an option

  • Save andrewlimaza/60d8057d15fc270cba4c27c5320c7203 to your computer and use it in GitHub Desktop.

Select an option

Save andrewlimaza/60d8057d15fc270cba4c27c5320c7203 to your computer and use it in GitHub Desktop.

Revisions

  1. andrewlimaza revised this gist Jan 10, 2023. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion my-template-redirect-example.php
    Original file line number Diff line number Diff line change
    @@ -7,8 +7,9 @@
    */

    function my_redirect_non_members_example() {
    global $pmpro_pages;

    $okay_pages = array(pmpro_getOption('billing_page_id'), pmpro_getOption('account_page_id'), pmpro_getOption('levels_page_id'), pmpro_getOption('checkout_page_id'), pmpro_getOption('confirmation_page_id'));
    $okay_pages = $pmpro_pages;

    // Check if a non-member is trying to access any other page besides the above or home page.
    if ( ! is_front_page() && ! is_page( $okay_pages ) && ! pmpro_hasMembershipLevel() && ! strpos( $_SERVER['REQUEST_URI'], 'login' ) ) {
  2. andrewlimaza created this gist Jan 14, 2019.
    19 changes: 19 additions & 0 deletions my-template-redirect-example.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    <?php
    /**
    * Redirect non-members (including logged-in non-members) away from restricted pages and to home page.
    * This allows non-members to access Paid Memberships Pro checkout/levels pages as well as the default WordPress login page.
    *
    * Add this code to your PMPro Customizations Plugin - https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
    */

    function my_redirect_non_members_example() {

    $okay_pages = array(pmpro_getOption('billing_page_id'), pmpro_getOption('account_page_id'), pmpro_getOption('levels_page_id'), pmpro_getOption('checkout_page_id'), pmpro_getOption('confirmation_page_id'));

    // Check if a non-member is trying to access any other page besides the above or home page.
    if ( ! is_front_page() && ! is_page( $okay_pages ) && ! pmpro_hasMembershipLevel() && ! strpos( $_SERVER['REQUEST_URI'], 'login' ) ) {
    wp_redirect( home_url() );
    exit;
    }
    }
    add_action( 'template_redirect', 'my_redirect_non_members_example' );