WP-Members™ FAQs

I activated the plugin and went to test it and it didn’t block my post?

Make sure you log out of the admin before you test.  If you are logged in as admin, you will be able to click through to view the post.  (To know if you are logged in, we suggest using the WP-Members™ login widget, included in the installation. However, you must have the widgets plugin and a widget enabled theme to use this feature.)

Also, for posts, be sure you are using the `<!–more–>` tag.  The blocking only takes place on single posts.  Without this tag, a full post would display on your home page or on an archive/category page.

Check your settings for both posts and pages. The default installation is to block posts by default but not pages.

How can I show the login status on the sidebar?

If your theme is widget enabled, activate the widgets plugin, then add the WP-Members™ widget to your sidebar.  If you do not have widgets, you can call the function by adding this to your sidebar:

&lt;?php wpmem_inc_sidebar(); ?&gt;

I’m really only using this to add user fields and have the login integrated into the site. I would rather that posts be unblocked by default.  How do I do that?

WP-Members™ gives you the ability to change the settings for how the plugin blocks content.  The default setting is to block posts and allow individual posts to be set to unblock at the post level.  You can change this setting so that all posts will be viewable by default.  If you then have a post that you want blocked to registered members only, you can set the post to block at the post level.

How do I block (or unblock) an individual post (or page)?

If you are using the default settings (as mentioned above), and you have a post that you want to be unblocked (viewable by any user, not just logged in users), on the Edit Post page add a Custom Field with the name “unblock” and set the value to “true” or “1″ (either will work).  This post will be now be viewable by anyone.  If you have set WP-Members™ to unblock by default and you want to block an individual post, use a Custom Field with the name “block” and set the value to “true” or “1″.  Important: custom fields are case-sensitive!  Be certain that you use all lowercase or it will not work.

How to I change the registration fields that are used and which ones are required?

These settings can be managed on the WP-Members™ admin panel found under Settings > WP-Members

Where do I find the users registration information?

WP-Members™ was designed to fully integrate with WordPress to allow maximum compatibility not only with WP, but also with other plugins that rely on WP user registration information, such as discussion forums, email newsletters, etc.  The user information is in the main WP users page under Users > Users, then click “Edit” under an individual user.  Any non-native WP fields (WP-Members™ custom fields) are added to the bottom of this page and are fully editable.  (Note: if you don’t have any registered users yet, i.e. a clean install, these fields will not display until there is data in them.)

New in 2.5: There is now a WP-Members™ bulk user edit panel where you can see a list of users, view key details such as email, phone, and country, as well as do bulk activations and exports.  This is found under the WP Users menu: Users > WP-Members.  For bulk user export, WP-Members™ keeps track of users that are exported so that you don’t have to export the full user list just to get a few new subscribers, but you can also export the full list.

Users are not being emailed their passwords, what is wrong?

WP-Members™ uses the native WP function wp_mail to email passwords. This is the same function the WP uses if you are using the WP registration process. If it’s not configured properly or for some other reason not working, neither will WP-Members’ registration process.

You can test this process by creating a new user via the WP admin panel. Go to Users > Add New in the menu and create a new user. Make sure when you do this “Send this password to the new user by email” is checked. If you do not get an email, then wp_mail is not working. If that is the case, you are probably going to have to do some troubleshooting to fix it. Try the WP support forums for this: http://wordpress.org/tags/wp_mail

Can I change the email address that messages are mailed from?

Most people are unaware that WP-Members™ uses the native function wp_mail, and that wp_mail sends messages from [email protected]  But it is easy to override this.  You can do it with a couple of filters added to your functions.php file or you can do it with a plugin.

Can I customize the way the login and registration forms look?

Yes! You can specify a custom style sheet for the default login and registration forms. These forms are tabless and customizable using CSS.

CSS can be applied to the legacy forms, but must be applied via an outside stylesheet (such as your theme), and since the forms are table-based, the customization options are limited.

The login and registration fields overlap my theme pages. How can I fix that?

WP-Members™ includes a default stylesheet that was developed using the (formerly) default TwentyTen theme.  Depending on the theme you are using, this may not fit your theme right out of the box. But the forms have been developed to be very flexible by relying on CSS for their layout (see above).  If you have issues of overlap or other issues with the form layout, these are addressed by customizing the CSS.

Can I customize the plugin?

It is not recommended to make direct code changes as they would need to be reimplemented in the event of a plugin upgrade.

I only want the login form to show in place of protected content and have a separate registration page. How can I do that?

If you turn off the registration in the plugin options, the registration form will not show on protected content posts/pages or the members area. Specify a registration page following the plugin instructions and set this page’s location in the plugin settings.

I need customized registration fields. How can I add/subtract fields?

The registration fields used by the plugin are stored in an array in the WP options table. NEW in version 2.6: New text, text area, and checkbox fields can be added in the Fields admin panel in the plugin’s settings menu. Alternatively, a description of how to customize the fields programmatically is available in this post.

  • andy

    Hi,

    I really like the plugin

    Is there any way of having the member register and then be routed to a paypal page.

    I could do something with the gravity forms plugin I have but something seamless as part of wp-members would be the ideal solution.

    Many thanks and any help gratefully received!

    -andy

  • Elle

    Can WP-Members block a certain post category to show only to members instead of just individual posts?

    • http://butlerblog.com Chad

      It can – the plugin has a number of action and filter hooks (full list here). There is a filter hook for whether something is blocked or not – wpmem_block. You can set a criteria (such as category == something) and change the value of $block to true or false based on that criteria.

  • Neil

    Hello,

    I am looking for a plugin that will permit members varying levels of access.
    Site I am intending to build will be open for the most part but have Gold, Silver & Bronze access areas (for information and downloads) depending upon the level chosen by members enroling. Is this possible with the plugin please and could members then subsequently upgrade (or be upgraded by administrator) to the next level?

    Grateful for any help

    Many Thanks
    Neil

    • LupoBello

      Neil; As Chad explained this is possible through manipulating the wpmem_block() function (located in wp-members-core.php). However more is necessary as I will sketch here.

      My solution is a work-around which requires editing the ..core.php — not something to be recommended and which could be wiped out when updating to a new release. Unfortunately, this appears necessary because the function wpmem_securify() (also located in ..core.php) and which relies on wpmem_block() is “joined at the hip” with checking whether someone is logged in.
      For this reason, it would be desirable if these could be decoupled – something that perhaps Chad can do in a future release.

      For now:
      In my own site, I needed a limited member type – called BBmember- which had more access than a visitor but less than a full member.

      1. I creates an additional user field “BBmember_yes_no”. You can assign users to the right level using the dashboard
      2. In the function wpmem_securify, I made this change ~line 113
      //if( !is_user_logged_in() && wpmem_block() == true ) { ORIGINAL
      if( wpmem_block() == true ) { // userlogged in check moved to wpmem_block()

      // this is the decoupling I mentioned.

      3. I modified the function wpmemblock(
      to be like this ~line 360
      {

      // code to check is user is a BBmember
      $current_user = wp_get_current_user();
      $the_user_id = $current_user->ID;
      $key = ‘BBmember_yes_no’;
      $single = true;
      $BBmember = get_user_meta($the_user_id,$key,$single);

      $block = false; // determines whether the item itself has a general block

      //if($BBmember == ‘yes’) { $block = true; }
      if( is_single() ) {
      //$not_mem_area = 1;
      if( WPMEM_BLOCK_POSTS == 1 && ! get_post_custom_values( ‘unblock’ ) ) { $block = true; }
      if( WPMEM_BLOCK_POSTS == 0 && get_post_custom_values( ‘block’ ) ) { $block = true; }
      }

      if( WPMEM_BLOCK_PAGES == 1 && ! get_post_custom_values( ‘unblock’ ) ) { $block = true; }
      if( WPMEM_BLOCK_PAGES == 0 && get_post_custom_values( ‘block’ ) ) { $block = true; }

      if( is_user_logged_in() && ! $BBmember == ‘yes’) { $block = false; }
      if($BBmember == ‘yes’ && (is_page( ‘place-ad’ ) || is_page( ‘edit-ad’ ))) { $block = false; }

      return apply_filters( ‘wpmem_block’, $block );
      }

      Notes.
      1.You will have to mimic this by creating your user levels (gold, silver,..);
      2. the conditionals are in the last line of wpmem_block() (basically a list of pages which is accessible to one level rather than another).
      This is awkward and not very dynamic. But it works for my limited need. Again, hopefully Chad will choose to implement this functionality in a more elegant way for everybody’s benefit some time in the future

      I hope this helps.
      Elle.

      ps I am vacationing with very limited access to InterNet. Am unlikely to contribute further in the near future.

      • Neil

        Hello Elle,

        Many thanks for taking the time and trouble to respond.
        Really useful and very much appreciated

        Thanks again
        Neil

      • http://butlerblog.com Chad

        I appreciate you sharing this. However, you are doing WAY too much work to accomplish your task (and as you mentioned, you shouldn’t be editing the core files).

        hopefully Chad will choose to implement this functionality in a more elegant way for everybody’s benefit some time in the future

        The functionality is actually already there.

        As Chad explained this is possible through manipulating the wpmem_block() function (located in wp-members-core.php).

        Actually, this is not the case. What you want to be using is the wpmem_block FILTER. Using the filter hook located in the wpmem_block function, you have the opportunity to filter its value. That is ALL you need to do for this. You do not need wpmem_securify to determine login state – there is a simple WordPress function for that – is_user_logged_in() which returns a true/false boolean, so there is no “decoupling” necessary.

        So to answer both of these issues, everything you need can be done in a filter function. You only really need three things:

        • Setting a post’s level in a custom field (post meta)
        • Setting a user’s level (adding a field for this will add a user meta, setting this field to not display makes it “admin use only” if necessary)
        • A filter function to compare the above and filter wpmem_block, returning true or false accordingly.

        This might sound foreign to you if you are not familiar with WordPress hooks and functions, but it is really not that complicated – and it is MUCH better than making changes to the code itself. And it gives the plugin ultimate flexibility.

        So a framework might looks something like this:

        // filter the value of wpmem_block with the function my_level_check
        add_filter( 'wpmem_block', 'my_level_check' );
        
        // the filter function
        function my_level_check( $block )
        {
        	// check if user is logged in
        	if( is_user_logged_in() ) {
        	
        		// if so, get the user id
        		global $user_ID;
        		
        		// check the user level
        		// NOTE: this non-working sample code, you
        		// would need to create the appropriate 
        		// "access_level" field
        		$wpmem_user_level = get_user_meta( $user_ID, 'access_level', 'true' );
        		
        		// get the post object
        		global $post;
        		
        		// check the post required access level
        		// NOTE: like the above, you'd need to 
        		// set a custom field for the post
        		// to store the appropriate meta
        		$wpmem_post_level = get_post_meta( $post->ID, 'required_level', 'true' );
        		
        		// NOW you can compare the post level with the user's access level.
        		// You could do this any number of ways, I'm just providing a very 
        		// simple example - you can get as complicated as necessary.
        		if( $wpmem_post_level == 'gold' && $wpmem_user_level == 'gold' ) {
        			
        			$block = false;
        			
        		} elseif( $wpmem_post_level == 'gold' && $wpmem_user_level == 'silver' ) {
        		
        			$block = true;
        			
        		}
        		
        	}
        	
        	// return the value for $block, here it is unchanged if the user
        	// is not logged in, otherwise, it will be filtered based on
        	// our criteria above.
        	
        	return $block;
        	
        }

        A working function would be added to your functions.php file in your child theme. It may look complicated, but strip away the comments and you’ll see that there really is not that much code needed to do what you are looking to do.

        (As I mentioned, this is not plug-and-play. This is just a framework example to show you how it should/could be done. It’s up to you to create/set the needed elements for the posts and the users.)

  • Claudiu

    I do have a problem when I put 2 shortcodes in the same page. I’d like to put both register and login form on the same page but the last form contain the first one as well.
    If I use login form first and register in the second place the first login form is displayed and the register form contain a login and a register form. How can that be fixed in order to have only one login form.

    • http://butlerblog.com Chad

      The update that I am releasing tonight actually will allow you to use more than one of the “page” shortcodes on a page. HOWEVER – when it comes to the current version, the instructions in the readme file indicate that you cannot use more than one of these on a page. Also, even with the update, the fact that you “can” use more than one of these on a page doesn’t mean you “should.” They are intended to be single pages and they have both a logged in and logged out state, the logged in state would be redundant if you had more than one on a page.

      The default installation of the plugin provides both a login form and a registration form for both blocked pages and the members area page, so there really isn’t a need to use these two shortcodes together anyway.

  • Claudiu

    The plugins is very useful but it has some lack of usability.
    For instance a login form doesn’t have a password recovery tool meanwhile a members-area does have.
    In another example I want to help people register on a site but after the registration is complete the form should disappear and a login form should came across. I have a full width theme and I can’t use login form in sidebar but only in content of pages.
    In other words if I use members-area in one page, witch is the most useful and non-redundant page I can’t logout.
    It could be a little confusing for users to make so many clicks in order to logout or recover a password.
    Beyond all this “critics” the plugin is very useful.
    Best regards

  • ThoPhan

    i want to redirect to home page after login. How can i do?

  • http://www.phacient.com Patrick Healy

    Hi, Installed the plugin and it seems to work fine with one exception:

    When a new user registers and is activated they are unable to login through any other means than http://www.mydomain.com/wp-admin

    When they hit protected content and the login box comes up or if they try and log in through the sidebar widget they get “Login Failed!
    You entered an invalid username or password.”

    I have tried this with a dummy account and even changed the password and I get nothing. When I try to sign in on the front end with my admin password it even rejects me. The only way to get in is http://www.mydomain.com/wp-admin and I would rather not give these registrants access to the back side of WP.

    Any ideas? Using Genesis with the Agency child theme.

    • http://butlerblog.com Chad

      Are you using some type of cacheing plugin? If so, you may want to test with that disabled and see if you have a conflict there. Otherwise, I would suggest disabling other plugins to see if there is something else in conflict. It sounds to me like you may have a plugin or theme element that is jumping in front of the login process.

      • http://www.phacient.com Patrick

        Thanks for this. I was able to overcome the problem by disabling the Chap Secure Login plugin. I don’t like not having this plugin installed but it seems to be the one that was butting heads with wp-members. I think it requires you to be logging in directly from the standard login screen. Thanks for the response and the advice. I really like this plugin a lot BTW. I am going to start using it for all of my sites that have private content that need registration. I’ve decided to avoid the “you can see this content” display by complimenting it with another plugin called Secret Content. You have to be logged in to see posts that are flagged by that plugin, otherwise you are oblivious to their existence. Really helpful.

  • http://visiv.ca George K

    I had two questions about the plugin.

    1) I want to use the plugin to handle registration & subscription renewal but I wanted to control the display (or hiding) of content through my template. Basically, I have a custom post type for protected content, and I was wondering if there was a function I could use in the template to get the users membership status. In another plugin I used there was a function is_member which allowed me to check membership status and display content accordingly.

    2) On the registration page, is there anyway to have default options selected and even remove the radio buttons in instances where there is only one option? The site I’m building only has one subscription option and one payment option (paypal). It seems like a waste to make the users click the radio button beside these two items when there is only one available option.

    • http://butlerblog.com Chad

      There is a subscription module, it is a premium add-on available at http://rocketgeek.com. If you want to filter based on a custom post type, you would need to do that using the wpmem_securify filter (see: http://rocketgeek.com/plugins/wp-members/users-guide/filter-hooks/wpmem_securify/). The wpmem_securify function is the primary function for determining if content is blocked or not. This filter hook comes at the end of the function so you could block the content based on the post type.

      As far as determining membership status, if you were using the subscription module, yes there is a function for determining if the user is expired or not. Otherwise, to just determine if the user is logged in or not, you can use is_user_logged_in().

      I’m not sure where you are getting the radio buttons from. Are we talking about WP-Members?

  • Andy Nickless

    Does WP Member have any way to restrict login details sharing?
    It seems to me that if someone publishes there account details on a forum, the member area idea would fail to protect content from non-members.

    • http://butlerblog.com Chad

      There really is no fool-proof method of preventing login sharing in this or any other plugin. But that is pretty much the case with most login systems. There is a stats add-on that provides granular data tied out to specific user accounts, so you can see what they are looking at, how often, and what IP they are logging in from and that would give you some idea how specific users are accessing.

  • http://www.popupkoor.nl Linda

    Hi,

    I’m using this plugin and am having many issues actually. It does tell users who’re not logged in that they need to be a registered user to reach the content. However, on the blocked pages, the content in the sidebar is not blocked.

    When doing Google searches a lot of the blocked content can be found and read by people who shouldn’t be.

    I believe there’s no way to create a page with all registered users and have a user a rofile paeg that can be viewed by other members.

    The plugin works great up to some point, but when you want to push it a little further, I feel it lacks a lot of functionality.

    If this plugin is able to do all that I stated above, any help would be very much appreciated. If I should be looking for another plugin, please let me know if you know of another good one. I’ve searched all over, but no plugin is as complete as I wish it’d be.

    Thanks so much!
    Linda

    • http://butlerblog.com Chad

      Hi Linda – thanks for your comments.

      “The plugin works great up to some point, but when you want to push it a little further, I feel it lacks a lot of functionality.”

      I would disagree. Maybe it’s just my lack of being able to communicate information, but this plugin is one of the most extensible out there. You can actually plugin to the plugin as it were. There are over 30 filter and action hooks and also many of the functions are pluggable. I would say there is very little that it can’t do. Certainly each of the issues you’ve described can be addressed.

      There is a very thorough User’s Guide available that covers most of the features (including the aforementioned hooks): http://rocketgeek.com/plugins/wp-members/users-guide/ While the majority of tutorials on the rocketgeek.com site are only available to paid members, all of the plugin’s documentation is available free (the tutorials take the information already available in the documentation and demonstrate practical application). In fact, the entire rocketgeek.com site is a working example of how customizable the plugin is.

      You are correct that sidebar content is not blocked in the plugin’s standard configuration. If you want to block sidebar content, there are several approaches. I think the best way to approach that is to create multiple widget areas with one of them being restricted to logged in users. I do have a premium tutorial on putting that together here: http://rocketgeek.com/tips-and-tricks/displaying-sidebar-widgets-based-on-login-status/. That process is similar to setting up different menus based on the user’s login status, which is described as a free tutorial here: http://rocketgeek.com/tips-and-tricks/creating-menus-based-on-login-status/.

      You could also block sidebar content using the login status shortcode if you enable your sidebar to allow shortcodes. That would allow you to restrict specific information based on login status. A working example of this is the “Join Today” sidebar content on rocketgeek.com. This shows only to users who are not logged in (kind of the opposite of restricting content to logged in users).

      Regarding the Google indexed content, my question would be is this content that was available to Google before implementation of the plugin? If that’s the case, there is your answer. Once content is indexed, it doesn’t matter if it’s behind a login or not – the bot already has it. If content is restricted from the point of creation, and it is properly behind the plugin (including restricting your RSS feed, as per the installation instructions), there would be no possible way for a bot to retrieve the content. The plugin actually empties the value of the WordPress function the_content before anything is sent downstream. Now, restricted pages and posts can be indexed as such, and any excerpt would be available, but if you have restricted content that comes after the excerpt showing up in search engines, then either (a) this was available before plugin install, or (b) you have missed something in setting up the plugin.

      There is nothing in the plugin that creates a profile page, but that is not to say that you can’t. The reason that the plugin doesn’t offer this is that is not part of the initial development area of the plugin – there are already other plugins that do that, so why recreate the wheel? But, based on the amount of demand for this functionality, I did release an add-on that is available to rocketgeek.com members (see: http://rocketgeek.com/plugins/wp-members/add-on-modules/). It is currently limited in functionality in my opinion, but once the 2.8 version of the plugin is completed and released, this module will be getting some upgrades as well.

      Hope that answers your questions/concerns.

      • http://www.popupkoor.nl Linda

        Thanks so much for the extensive reply! I’ll get into it and make this plugin work as I’d like to. Thanks again!

        • http://butlerblog.com Chad

          No problem – I hope you find it useful.

  • http://artonorder.com.au Franz

    How can i allow multiple email address for different users?

    • http://artonorder.com.au Franz

      what i mean is Multiple users with same email address

      • http://butlerblog.com Chad

        There is not a way to override that at present. However, I will be including some filter hooks in the upcoming 2.8 release that will allow users to override some of the default registration validation.

  • seth

    Hey,

    I need to make posts from a certain category private and I don’t know how, can anyone help?
    I saw that on the plugin site there is an article about this, but you have to register for this and it’s really expensive…

    • http://www.northweststclair.us/wordpress Steve

      I need the same thing.. It does however look like you will need to use some sort of “hook” which I have yet to understand where / how to add this feature into the category section of wordpress… We are running a website for the Fire Dept which needs limited community access but blocked areas that only our firefighters need access to… We are attempting to setup an category such as “training” that we can use as a private discussion area for our firefighters and admin personnel and have their login screens direct them to that category listing page or just use a link… Hopefully we can get some answers about using the “hooks” and categories without much more trouble… I would think this would be as easy as post and pages but obviously not. Any help for us newbees out there Chad?

      • http://butlerblog.com Chad

        Steve – that is something is covered with example code at the plugin’s support site rocketgeek.com. However, you don’t need that to block/unblock posts. That’s just discussing how to set an entire category as blocked by default.