How to stop members from receiving an account without paying?

As a visitor, if I go through the subscription process and cancel out of the payment I still receive an account to the website.

Is it possible to not have an account be created at all if payment isn't made?

If not, do I have to develop a visitor subscription or am I simply setting the visitor member type in "Default subscription for registered users".

I'd prefer that they don't receive any access to the website versus having access to the custom dashboard.


  • Patrick
    • Support Monkey

    Hi there @Ensemble

    Welcome to the forums, glad to have you aboard!

    Subscription payment & assignment is handled by the Membership plugin immediately after the registration has occurred, and that is handled by your WordPress install.

    If a user interrupts the process just before payment, their account would have already been created as they would have clicked the "Signup" button on your registration form.

    So yes, it is advisable to create an access level for visitors that you assign at the "Stranger access level" setting under the General tab of Membership > Options. That takes care of those who interrupt the process before clicking "Submit".

    For those who do create an account, but don't go through the payment process, create a default subscription and include your stranger access level in it.

    You can make the access level & default subscription as restrictive as you like. If a user does not complete the payment process, they'll be assigned the default, and will have the same restricted access as not-logged-in visitors.

    I hope this helps! And thanks for being a member :slight_smile:

  • Ensemble
    • WPMU DEV Initiate

    Thanks for that speedy reply.

    I appreciate it! - That worked like a charm.

    Last question; I need to restrict access to the dashboard as a whole via the back-end or at least my custom widgets. They are for member eyes only. They aren't visible in the access level area because they are custom.

    Is there an if statement I can utilize to ask the access level of a logged in user? I will try and wrap my custom widgets in the if statement and hide them if they are a visitor.

    Something like this but checking not only the loggin but for membership type:

    if ( is_user_logged_in() && SOMETHING HERE INDICATING MEMBER LEVEL ) {
    } else {
    	echo 'You do not have access to this area. Subscribe here.';

    Let me know if I should be opening up a new thread - I don't want to get too many purposes for answered questions!


  • Ash
    • WordPress Hacker

    Hi @Ensemble

    Would you please try like this?

    if ( is_user_logged_in() && ( current_user_on_level(ID1) || current_user_on_level(ID2) || current_user_on_level(ID3) || SO ON... ) ) {
    } else {
    	echo 'You do not have access to this area. Subscribe here.';

    Hope it helps :slight_smile: Please feel free to ask more question if you have.


Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.