Support » Plugin: Force Login » Allow access to a custom page

Viewing 11 replies - 16 through 26 (of 26 total)
  • Plugin Author Kevin Vess

    (@kevinvess)

    @zamanw100

    I don’t know why your homepage is showing “endless login screens,” that must have something to do with how your theme is generating the homepage. I don’t see how my plugin could have caused that to happen since it doesn’t alter the appearance of any page – it only redirects URLs.

    You could try turning on the WP_DEBUG mode in your wp-config.php file to check for errors.
    https://codex.wordpress.org/Debugging_in_WordPress#WP_DEBUG

    @kevin. Thank you very much for suggesting WP_Debug. It helped.

    I think I figured why it isn’t working. The theme I am using is MegaResponsive Pro. In this theme the main page show all of my posts. As much as you scroll down, more posts show up.

    The posts are called by a JavaScript file called “ajaxLoop.js”. That much I could figure out so far. But still require help if anyone can offer.

    Plugin Author Kevin Vess

    (@kevinvess)

    Ah, I see – what I think is happening is your homepage is not generating the list of posts on the server-side before the page loads; instead your theme is generating the posts using JavaScript and Ajax on the client-side after the page loads.

    What is happening is these client-side ajax calls are trying to load other pages that are being blocked by my plugin and thus is returning a bunch of login screens instead of the posts.

    You might need to try whitelisting a few other URLs to get this working. Try whitelisting the /wp-admin/admin-ajax.php file:

    /**
     * Filter Force Login to allow exceptions for specific URLs.
     *
     * @return array An array of URLs. Must be absolute.
     **/
    function my_forcelogin_whitelist( $whitelist ) {
      $whitelist[] = site_url('/');
      $whitelist[] = site_url('/wp-admin/admin-ajax.php');
      return $whitelist;
    }
    add_filter('v_forcelogin_whitelist', 'my_forcelogin_whitelist', 10, 1)

    Tried whitelisting /wp-admin/admin-ajax.js

    Didn’t work.. 🙁

    Any other suggestions?

    Plugin Author Kevin Vess

    (@kevinvess)

    Unfortunately, you may not be able to use my plugin with your theme – so you may just have to figure out a new way to achieve your objective. Different theme or plugin?

    The only suggestion I have to get my plugin to work with your theme is to try looking at the code to figure out what needs to be whitelisted to allow your theme to pull in these posts from the client-side without hitting the Force Login redirect.

    Maybe you could try whitelisting the entire wp-admin directory?

    /**
     * Filter Force Login to allow exceptions for specific URLs.
     *
     * @return array An array of URLs. Must be absolute.
     **/
    function my_forcelogin_whitelist( $whitelist ) {
      $whitelist[] = site_url('/');
      // whitelist any URL within the specified directory
      if( in_array('wp-admin', explode('/', $_SERVER['REQUEST_URI'])) ) {
        $whitelist[] = site_url($_SERVER['REQUEST_URI']);
      }
      return $whitelist;
    }
    add_filter('v_forcelogin_whitelist', 'my_forcelogin_whitelist', 10, 1)

    @kevin

    Thanks. That worked.. Finally. 🙂

    Plugin Author Kevin Vess

    (@kevinvess)

    Great! I’m glad you got it working.

    Don’t forget to rate and review my plugin to let others know how you like it. Thanks!

    Hi, how can i change default behavior of plugin to allow
    access to all pages and post, and then exclude only page/post
    with specific id or with this: !is_user_logged_in() && is_author()

    I want to limit my access only to single posts in chosen category
    and to author.php template
    KInd regards,
    Gabrielle

    Plugin Author Kevin Vess

    (@kevinvess)

    @rgb4u

    If I understand correctly, you want to allow public access to all content by default, and only require certain pages or posts to be accessible by logged-in users?

    Instead of using a category and/or author as the condition for redirecting users to a login screen, just mark those specific posts as “Private.”

    https://codex.wordpress.org/Content_Visibility

    Default WordPress functionality allows all published content as accessible and gives you the ability to mark any specific page or post as “Private,” which will make that content viewable by logged-in users only.

    How do I whitelist the homepage of the website ?

    Plugin Author Kevin Vess

    (@kevinvess)

    @hrishikeshnb

    The FAQ explains how to whitelist a URL:
    https://wordpress.org/plugins/wp-force-login/faq/

    Try:

    /**
     * Filter Force Login to allow exceptions for specific URLs.
     *
     * @return array An array of URLs. Must be absolute.
     **/
    function my_forcelogin_whitelist( $whitelist ) {
      $whitelist[] = home_url( '/' );
      return $whitelist;
    }
    add_filter('v_forcelogin_whitelist', 'my_forcelogin_whitelist', 10, 1);

Viewing 11 replies - 16 through 26 (of 26 total)
  • The topic ‘Allow access to a custom page’ is closed to new replies.