How to Force Users to Accept Terms of Service (TOS) Before Accessing your Site

Memberium Admin — 

Have you just introduced a new change in your Terms of Service, Privacy Policy, or you just want to make sure that your users are aware of a new change on your site? Do you want to require from all of your users to confirm that they are aware of the change as soon as they login?

In this article/guide, we’ll give you step-by-step instructions on how to achieve this. In the steps below, we’ll talk about how to require your users to accept your Terms of Service before they can proceed to the content of the site. Please note, this will not prevent users from manually going to another page on your site by typing in a specific URL and essentially bypassing your TOS page. For a more comprehensive solution, you may consider adding a plugin such as WP Terms Popup to your site. We have NOT tested this plugin and cannot provide support, but want to make you aware that such plugins exist.

Here’s a quick overview of what the whole process will look like once finished:

User will log in and it will be redirected to the /tos-check/ page. Then, depending on whether the user has already accepted Terms of Service or not, they will be redirected to either the Terms of Service page (where they can accept the TOS and move to the content of the site) or to their membership homepage (they’ll go to the membership homepage each time they log in after accepting the TOS).

 

Step 1
First of all, you would need to set a “redirect” parameter in [memb_loginform] shortcode you are using on the login page. In that redirect parameter, you would set a, let’s say /tos-check/ page. We’ll talk about this page in the next step…

Example:

[memb_loginform redirect="/tos-check/"]

Please note that this will override all membership level redirections you might have set already in your membership level options. However, on the next page, we will show you how to get them back.

 

Step 2
In this step, we’ll create /tos-check/ page. This page will be used to check whether the user has already accepted Terms of Service or no. On this page, we’ll put this code:

[memb_has_any_tag tagid=101]
If user has tag id 101, redirect to the membership homepage
[memb_redirect url="/wp-admin/"]
[else_memb_has_any_tag]
If not, redirect user to the page on which you have new Terms of Service
[memb_redirect url="/terms-of-service/"]
[/memb_has_any_tag]

In this code, if the user has tag id 101, it means the user has already accepted Terms of Service and they’ll be redirected to the membership homepage (taking them to /wp-admin/ will redirect them to their membership homepage setup in the membership setting.

If they don’t have the tag, the user will be redirected on /terms-of-service/ page on which we’ll put Terms of Service text, along with the accept button.

 

Step 3
At this point, we’ll create /terms-of-service/ page from the previous step. On this page, we’ll place your Terms of Service text, and at the bottom, we’ll put [memb_actionset_button] shortcode.

Here’s an example:

*** Terms of Service text here ***

[memb_actionset_button button_text="Accept Terms of Service" redirect_url="/wp-admin/" tag_ids=101]

What the [memb_actionset_button] will do is:
1) it will apply tag id 101 (to indicate the user accepted the TOS)
2) and it will also redirect the user to the /wp-admin/ (their membership homepage) once the user accepts the TOS.

Once that’s done, you can go ahead and create a test user using this documentation article and make sure everything works as you’ve intended. On the top of that (optional), you can also hide your menu items, so that your users can’t see menu items unless they’ve accepted the Terms of Service and this documentation article can help you on that.

Final Notes

You’ll most likely not be using tag ID “101” on your site. That tag ID is just a demo tag ID. You’ll want to create a new tag with a title like “Accepted TOS” or something similar and then use that ID in place of 101 in the examples above.

Lastly, if you ever make a change to your TOS, you can simply remove the tag from everyone in Infusionsoft which will force them to go through the process above again and accept any new changes.

  • Was this Helpful?
  • YesNo