Skip Navigation

[Resolved] Creating portal with protected cont (non-paid)

The Toolset Community Forum is closed, for technical support questions, please head on to our Toolset Professional Support (for paid clients), with any pre-sale or admin question please contact us here.
This support ticket is created 6 years, 5 months ago. There's a good chance that you are reading advice that it now obsolete.
This is the community support forum for Types plugin, which is part of Toolset. Toolset is a suite of plugins for developing WordPress sites without writing PHP.

Everyone can read this forum, but only Toolset clients and people who registered for Types community support can post in it.

Sun Mon Tue Wed Thu Fri Sat
8:00 – 12:00 8:00 – 12:00 8:00 – 12:00 8:00 – 12:00 8:00 – 12:00 - -
13:00 – 17:00 13:00 – 17:00 13:00 – 17:00 13:00 – 17:00 13:00 – 17:00 - -

Supporter timezone: America/New_York (GMT-04:00)

Author
Posts
#590996

We are looking to setup a portal, so we want to allow users to create a login and I want to allow a person with a login to be able to join one or more of several teams or groups in the portal. This is for a church that has several volunteer groups. The login page might look something like this hidden link

NOTE: We would also like for an Admin to be able to assign and remove groups from or to users. And setup new or remove existing users.

After they have joined or have been assigned to one or more groups, we would have them login and land on a page that lists the groups they belong to and by clicking on links can gain access to those groups. This page would look something like this hidden link

After clicking on one of the group buttons on the above example page, the arrives at a landing page for the group they clicked on. The group landing pages will be basic WordPress pages with information and links to external sites, to they don't need to be created or controlled by Toolset - but they do need to be password protected and only accessed by members who have permission to access them. These landing pages would look something like this example, hidden link Once again, since we only have around thirteen groups, we can create and maintain these pages manually.

So, which plugin(s) would I need for something like this and how would I approach setting this up?

Thank you for any advice you can provide.

#591274

Hi, you'll need to use at least the following plugins:
- Types: allows you to manage custom fields for posts and Users
- Views: allows you to display filtered lists of posts based on custom fields, as well as custom login forms
- CRED: allows you to create custom front-end User registration and edit User forms
- Access: allows you to restrict access to specific content based on User role or post group

The most effective way to manage access to specific posts or pages is to use post groups or User roles:
https://toolset.com/documentation/user-guides/limiting-read-access-specific-content/
However, assigning a User into a post group requires access to wp-admin. That means your Users could select specific post groups in their registration form, but the site Admin would have to manually add each User to those post groups in the backend. User roles are also useful for restricting access, but a User can only belong to one role so this doesn't really apply to your case - you would need to create a role for each possible combination of classes.

There are other ways to accomplish restrictions by using custom fields and conditional HTML: https://toolset.com/documentation/user-guides/conditional-html-output-in-views/
For example, you could use a repeating custom field on each User's profile to store the IDs of each post or page they should be able to access. This field can be managed with CRED, so your Users would be able to select classes or groups during registration. Then in your site's content you can use conditional HTML that tests the values of that repeating field for the current User, and if the current page or post's ID matches any of those repeating field values, then you can display the page content. If not, you can show a message that the User does not have access to this content.

NOTE: We would also like for an Admin to be able to assign and remove groups from or to users. And setup new or remove existing users.
Typically in WordPress terminology an Admin has full access to the back-end of the site and would be able to manage all aspects of Users there, including role and custom field values. If you do not want to allow this User access to the wp-admin dashboard, then a different role would be required. The User could use CRED forms to add or edit existing Users from the front-end of the site. However deleting Users is not currently possible from CRED on the front-end of the site. You could create an "inactive" User role and assign the User to this role instead, using CRED.

On the landing page, you will loop over each of the repeating field IDs for the current User and display links to each related class using Types shortcodes. More information about repeating fields here:
https://toolset.com/documentation/user-guides/repeating-fields/

This is just a general overview, and it's not really possible for me to go into all the details in one ticket. You'll probably have specific questions about each step in this process, so I encourage you to create new tickets for each question. Our support policy is to handle one issue per ticket, so thanks for your cooperation.

If you have not already done so, I also encourage you to visit the "Getting Started" links in our Documentation: https://toolset.com/documentation/
The membership site guide also has some pertinent information, though I don't think you'll be charging for membership so the WooCommerce content can be disregarded:
https://toolset.com/learn/create-membership-site-wordpress-using-toolset-plugins/
Good luck, and feel free to create as many tickets as you feel are necessary to get the information you need.

The forum ‘Types Community Support’ is closed to new topics and replies.

This ticket is now closed. If you're a WPML client and need related help, please open a new support ticket.