Version 4 > Developer Guides > Transition Guide for Developers > Plugins and Frameworks > Memberships

Memberships

The Membership tools allow you to maintain a database of members in various categories. Members can:

  • log in to private areas of your website, and access other privileged and member-only features
  • keep their membership info updated
  • maintain their listing in public and private directories
  • renew their membership when it expires
  • take advantage of member pricing on courses, events, and other sales
  • keep their registrations, e-learning, and purchases organized under one account

Table of Contents

Terms

user is a login identity, typically corresponding to a real person. They have a login ID and a password they use to access private areas of the website.

A user's access level determines what benefits they can access on the site. An access level of 1 is a regular user, or "registered guest". An access level of 2 is a full member of the organization. There are higher levels of access for staff and admins. An access level of 0 is the same as an anonymous visitor who hasn't logged in.

membership is a special relationship the user has with your organization, which is typically maintained by paying regular membership dues. Each membership will have a profile associated with it, describing the membership. A particular user can maintain more than one membership profile; for example they could have their own personal membership, plus they could maintain a 2nd membership profile on behalf of their company.

membership type is a category of membership. For example: company, individual, associate. Each type has its own fees and directories.

A membership directory is a browsable index of members, which can be organized alphabetically, geographically, or in other ways.

Secondary members are affiliated with another membership profile, but do not pay membership dues themselves. Typically this is because they belong to an organization that is itself a member.

Membership Status

Memberships have a status, which can be one of:

  • active (published) - membership is in good standing
  • submitted - membership application has been submitted and is awaiting approval
  • applying (draft) - the membership application is being compiled, but is not ready to submit
  • expired - the membership term has run out, and needs to be renewed
  • lapsed (canceled) - the membership was not renewed, and has been canceled
  • rejected - the membership application was not accepted

Only active memberships have the full benefits of membership, and will be included in directories.

Use the Membership tool in the profile to perform regular membership status changes (eg. approvals, renewals, expiries).

Membership Types

A membership type is general category of membership, with its own rules and pricing. Your membership types are listed in the membership overview along with summary of your membership statuses and numbers. Click on any membership type (or any type/status combination) to manage the respective profiles.

Creating a new membership type

To set up a new membership type, use the + new membership type tool. You only need to provide a name for the membership type to get started. Once it has been set up, you can take additional steps to configure the membership type.

Configuring a membership type

Click into the membership type to get a set of tools to manage it. By default, it displays a roster of the membership profiles under that type. Click into a profile to manage it, otherwise select a tool from the toolbar to configure the membership type.

Description

This is a description of the membership type and benefits of membership, which will be shown to anyone applying for membership.

Pricing

This is where you set your application fees. If applications are only accepted for a limited time, you can put a time window on the prices. To set different prices for new applications and renewals, set the access level of the price. Set the price access to "public" for new applications, "members" for pre-lapse renewal pricing, and "users" for post-lapse renewal pricing.

Settings

Use the configure tool to get to the membership type settings.

The Early renewal period and Late grace period determine when memberships can be renewed. It is the number of days prior to expiry and the number of days after expiry, respectively. (Not that your pricing table may have additional restrictions on dates that also have to be taken into consideration.)

The Profile title template defines how new profiles should be named. For example, [[first_name]] [[last_name]] is just the personal name of the member. [[last_name]], [[first_name]] reverses the order of the names. [[organization]] uses the organization/company name instead. [[first_name]] [[last_name]] ([[organization]]) uses both personal and company name. This determines the names of new membership profiles; it does not change existing ones.

The Profile sortkey template defines how new profiles should be sorted in directories. For example, [[last_name]] [[first_name]] sorts by last name first, whereas [[organization]] [[last_name]] sorts by organization/company name first, then last name.

Application Form

The application form for this membership type is displayed here. If there is no application form, it will offer to make one for you. Whether you are altering an existing form, or creating a new one from scratch, you will use the Forms module to manage the form. This will pop up in an overlay; close the overlay when you are done to return to Membership Management. (You can also use the Forms module to go directly to your application forms.)

Application forms have to be carefully constructed to ask questions that are appropriate to the membership type. The questions have to be named with codes that will be recognized as being relevant. Your profile settings are all relevant names, as well as generic contact and identity names like:

first_name
last_name
organization
address
city
province, state, or provstate
country
postal_code, zip_code, or pcode
phone, cell, mobile, or fax
email
website
language
login

Check the question usage tab to see how your question names are being recognized and used. Application form questions that are being used in the construction of a profile will be marked with a green check. Questions that are ignored will be noted in red. This is not necessarily an error; some questions are only relevant for the application, and do not need to become part of the profile that is maintained by the user after their application is accepted. (Examples might include things such as references or sponsors, reasons for joining, how did you hear about us, and so on.) Profile settings that have no corresponding question on the application form are noted in amber. If you notice settings that ought to be imported, but are not, check for mismatches between the setting names and the question names in the red and amber items. Questions can be re-named in the form configuration area.

If you have a profile setting named application_data, the system will remember the original application form response and store it there. This will allow you recall the member's original application submission at any time, so all of the data in the application will be preserved and available to you.

Application forms that are specific to a membership type are kept under that membership type. Application forms can also be shared by multiple membership types by keeping them in a membership type group.

Communications

Standard e-mails that are sent to members, including welcome emails, expiry emails, and reminders, can all be managed here. More information is provided under E-mail Communciations, below.

Emails that are specific to one membership type should be created and maintained under that membership type. Emails that are shared by multiple membership types can be placed in the membership type group, instead.

To re-send emails, visit the notifications tool under the profile you want to send to. This tool will use the version of the notification that is most appropriate for that member's type.

Membership Type Groups

You can group your membership types into general categories. For example:

  • Regular Member
    • USA Member
    • International Member
  • Student Member
    • USA Student Member
    • International Student Member

The "groups" are also membership types, so all you are doing here is creating general membership types that contain more specific membership types. In the above example, the group "Student Member" is itself a member type that contains two other more specific member types "USA Student Member" and "International Student Member".

Groups allow you to share resources and settings within the group, as well as provide a convenient way to gang all the subgroups together for rosters and contact lists. If you have many membership types, but they all have the same forms and settings, you may find it useful to group all your membership types under a single group called "Memberships", and then keep your shared forms and emails in that group.

If the groups do not have their own pricing, they will function as organizational categories only. If you give them prices, they will function as regular membership categories, and will accept applications. For instance, the above membership group structure could also be organized this way:

  • Regular Member
    • International Member
  • Student Member
    • International Student Member

... assuming that USA members apply under the main categories, and international members under the subcategories. This results in a simpler membership structure (4 membership types instead of 6) but makes it harder to separate out the USA members only, since the main categories implicitly include the subcategories in their rosters and contact lists.

Sharing common forms, settings, and emails

Normally each membership type defines its own application forms and email notifications. If you have numerous membership types but they all share the same forms and emails, it's a nuisance to copy the forms and emails to each one and edit them all separately.

To share forms and emails in a membership group, put the items in the top (parent) group. All types in that group will automatically use the shared form or email, unless a more specific one has been provided. Similarly, if you have a shared form that you want to override in one particular case, all you need to do is defined a more specific form in that one particular type, and it will take precedence over the shared one.

If you don't have multiple groups or categories to divide your memberships into, just create a single group to hold all of them.

Shared Profile Settings

Profile settings are automatically shared between all of your membership types. If you have special settings that are used for one type only, then you can make those settings specific to that one type by including the type ID in the setting configuration.

For exanmple, say you have a general setting for all membership types, which is the member's organization. It might be defined with a configuration line in your Membership.conf configuration file like:

-.content.metadata.profile.organization.datatype = string
-.content.metadata.profile.organization.label = Company/Organization
-.content.metadata.profile.organization.size = 80 

To make this setting specific to one membership type only, put the membership type ID right before the .profile in the configuration, like this:

# job title setting
-.content.metadata.XXXX.profile.job_title.datatype = string
-.content.metadata.XXXX.profile.job_title.label = Title/Position
-.content.metadata.XXXX.profile.job_title.size = 80

where XXXX is the ID of the membership type. If you want to share that setting across a group of membership types, put the group ID there instead.

Membership Profiles

Each membership corresponds to a profile under its respective membership type. To find a profile, you can:

  • select a particular membership type (and optionally, status) to view a roster of those memberships
  • select combined roster to see a roster of all memberships in all types
  • use the search tool to search for all or part of a profile name

Click into any profile to preview its data and manage its settings.

View Profile

This displays the profile to the administrator.

Bio

Every profile can have a bio or write-up, which is used in directories. Edit the bio here.

Settings

The profile settings can be configured here. This includes settings that are specific to this membership type, as well as general settings that apply to all content in the CMS (such as access controls).

Photo/logo

Every profile can include an image, such as a headshot or a company logo. Update that image here.

Files

Membership types can be set up to allow file uploads. If the member can upload certain files, those files can be reviewed, uploaded, downloaded, or removed here.

Contacts

Membership directories can optionally include geopgraphic or contact information on each profile. Manage the profile's contact record(s) here.

Note that the membership's billing info is kept under the account tab, and is not displayed in directories.

Contact information for directories can have different access controls. For example, it can be set to 'member' if you only want other members to be able to view the contact information, but not the public.

Membership

The membership tab displays the current membership status of this profile. The membership can be manually approved, renewed, or expired here. Use the edit button by the membership type to change the type. You can also manually adjust the expiry date, if necessary.

History

This displays a complete log of the membership history of this profile. You can add notes to this history, as needed. The log may include future entries, which are basically to-do items for the system marked "TASK:". If you delete those, those tasks will not get done automatically.

Notifications

There are a number of standard email notifications that are sent out to profiles automatically. If for any reason, you need to resend one of these to an individual profile, use the notifications tool. The send now tool will resend that notification immediately.

Notifications that are not available or not ready to send should first be setup from the communications tool, before you can resend them from here.

User

The User tab brings up the Login identity affiliated with this membership profile. This uses the Users module to manage the user. It also allows you to login as the user, if you need to enter the public website as them. If you do this you become that user, and are no longer the administrator, so your admin interface will temporarily become disabled. To return to your administrator account, log out as the user.

Account

The Account tab brings up the purchase history associated with this profile's owner. This uses the Payments module to manage the account. You can use this tool to enter payments, or re-send outstanding invoices.

Delete

The delete tool lets you remove the profile. You must decide how much personal information you want to retain, considering privacy laws as well as your own needs regarding your business records. You have 3 options, from least to most destructive (or alternately, from least privacy protection to most privacy protection):

  • archive membership, and preserve all data - the membership profile is completely preserved in your database, but in a canceled state that excludes it from regular reports
  • clear all personal data, but archive basic membership history - this deletes bios, images, files, directory contact info, and profile settings, but retains the profile name and history, as well as registration and purchase history.
  • permanently delete all membership data - this retains only the purchase and registration history for your own business records; otherwise, all information about the membership is deleted.

Additionally, you should also decide wither the user who owns that profile should be deleted or downgraded. Your options are:

  • delete - completely removes that login identity, so the user cannot log in anymore
  • disable - blocks future logins, but you could in principle restore login access later
  • downgrade - demotes the user from member access, but they can continue accessing the site as a guest

Member Directories

Membership Types can include indexes of the members in that type, allowing for a simple membership directory structure. For more complicated directories, you can setup and configure a member directory. A directory basically provides a custom index of membership profiles that can span multiple types.

To configure your directory, use the following settings:

  • Membership Types - this is a comma-separated list of membership type IDs. If you do not set this, it will include ALL of your membership types.
  • Filter - this is a bunch of parameters that define which profiles should be included in the directory. The parameters are encoded in the form param1=value1&param2=value2&.... The recognized parameters include content settings, metadata, and contact fields. Note that profiles that are not currently active, or have been hidden from indexes will not be included in directories.
  • Presentation Style
    • list generates a regular index/listing of profiles
    • alpha-menu breaks the listing out into alphabetized sub-pages
    • map tries to place profiles onto a map, allowing for geographic browsing.
    • geographic groups your profiles by geographic region (country, then province/state).
    • search goes straight to the advanced search tool to allow searching by name or place
    • treeview is an alphabetical index where individual letters can be expanded to view the profiles under them
    • none displays only the directory description and a link to the search tool
  • Profile Link Type
    • direct to link directly to the profiles' canonical URLs
    • indirect to display the profile on the membership directory page (this will keep the viewer on the same template as the directory page)

Additionally, directories have an advanced search tool that can be used to locate profiles by place (eg. city, state/province, postal code, country). You can also include profile settings to include in the search terms. To set the list of searchable fields, add configurations like the following to your Membership.conf file:

# search by place
search.fields += city
search.fields += provstate
search.fields += pcode
search.fields += country
# also include metadata
search.fields += specialty

Profiles are only included in directories if they are active and not hidden. To hide a profile, check off indexes in the Hide From setting in the profile configuration. You can forcibly re-include profiles in your directories by checking off the include hidden profiles setting in the directory configuration. This is useful in cases where members should be hidden from public directories, but you still want them included in member-only directories.