How it Works

There are a few scenarios possible with this add on. Each scenario shares these common features:

  • When users checkout for a main account (or are assigned one by and admin), a discount code is generated to allow sponsored members to sign up for the sponsored level for free.
  • If a user has a discount code assigned to them, it will show up on their membership account and confirmation pages.
  • Sponsored members will be linked to their sponsor through the pmpro_discount_codes_uses table.
  • If a sponsor’s account is cancelled, all of their sponsored members will have their accounts disabled as well.
  • If a sponsor’s account is reenabled at a later point, all of their sponsored members will have their accounts reenabled automatically.

Note that this Add On will only work with the Membership Checkout process included in Paid Memberships Pro. It is not compatible when using another checkout process for membership, such as WooCommerce

Popular Use Cases Include

  • Parent account completes checkout and receives a discount code with a specified number of uses (seats) to share with child accounts, who can register their own account at the specified level for charge.
  • Parent account selects the additional number of child accounts they would like to purchase at a specified price (N accounts * X price per account is added to parent’s price for membership). Parent account receives a discount code with the selected number of uses (seats) to share with child accounts, who can register their own account at the specified level for charge.
  • Parent account selects the number of child accounts they would like to purchase at checkout, then fills in account information for each child account. After successfully checking out, parent and child accounts are created and ready to use.

Installation

  1. PMPro Plus members can install the add on via the Memberships > Add Ons admin page.
  2. Or, download the plugin file and upload the ‘pmpro-sponsored-members’ directory to the ‘/wp-content/plugins/’ directory of your site.
  3. Activate the plugin through the ‘Plugins’ menu in WordPress.

Setting up the $pmprosm_sponsored_account_levels Array

This Add On must be configured via custom code in your helper PMPro Customizations plugin. You must declare a global $pmprosm_sponsored_account_levels array.

Required general array parameters:

  • main_level_id: The membership level ID for the primary or parent level; the ID must match the index. Accepts: any integer.
  • sponsored_level_id: The membership level ID of the sponsored level(s); Accepts: a single integer or an array of integers.
  • add_code_to_confirmation_email: Whether the code for sponsored levels should be added to the confirmation email sent to the original member after checkout. Accepts: ‘true’ or ‘false’.

Seat Cost and Billing

  • apply_seat_cost_to_initial_payment: The seat cost of each individual sponsored membership will be applied to the initial payment the original member pays at time of registration. Accepts: ‘true’ or ‘false’.
  • apply_seat_cost_to_billing_amount: The seat cost of each individual sponsored membership will be applied to the recurring payment of the original member. Accepts: ‘true’ or ‘false’.
  • seat_cost: The cost of each sponsored member, in dollars. If you want the sponsored memberships to be free, set seat_cost to 0. If seat_cost is left blank, the cost of each additional seat will be equal to the initial payment cost of the sponsored level according to the level settings. This array value is required for the “Additional Seats” checkout field to display. Accepts any integer.
  • seats: The number of sponsored accounts that should be generated for the main account. Omit the seats array value from the array if you want the parent member to choose the number of seats at checkout.
  • max_seats: The maximum number of sponsored members a parent account can request at checkout. This value is required for the “Additional Seats” checkout field to display. Accepts: any integer.
  • min_seats: The minimum number of sponsored members a parent account can request at checkout. If min_seats isn’t defined, the minimum number of seats will default to 1. Accepts: any integer.
  • discount_code: An associative array containing the details of the discount code that sponsored members will use to register (see example).

Note: max_seats and seat_cost must both be set to add the “Additional Seats” checkout field.


Sample $pmprosm_sponsored_account_levels Array


Importing Members with Sponsored Parent to Child Relationships

Assuming your Sponsored Members Add On is properly configured, you can leverage the Import Users from CSV Add On to import existing members with a parent to child relationship by following the steps below.

Note that before importing child accounts, you must first import your parent accounts. The import relies on an existing parent account’s User ID, Email Address, or unique User Login.
  1. Make sure you have properly configured the $pmprosm_sponsored_account_levels global array.
  2. In addition to the required columns as outlined in the Import Users from CSV Add On documentation, you must add the following columns to your CSV import file:
    • pmprosm_seats: This will set the user meta field that stores the number of seats available to a sponsoring/parent account. Leave blank or 0 for unlimited. This field should only be imported for a “Parent” account type.
    • pmprosm_sponsor: Set this field to the User ID, Email Address, or User Login for the Sponsor or Parent Account for this user. If the account is a “Parent” account type, leave this field blank.
  3. Complete the import according to the steps outlined in the Import Users from CSV Add On documentation.

Screenshots

Admin can view the child accounts for a given user on the Edit User page

Admin can view the Sponsor Code and update the number of seats available for a given user on the Edit User page

Users with a Sponsor Code can view their code, signup link, and current children on the Membership Account page