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.
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.
- PMPro Plus members can install the add on via the Memberships > Add Ons admin page.
- Or, download the plugin file and upload the ‘pmpro-sponsored-members’ directory to the ‘/wp-content/plugins/’ directory of your site.
- Activate the plugin through the ‘Plugins’ menu in WordPress.
Setting up the
This Add On must be configured via custom code in your helper PMPro Customizations plugin. You must declare a global
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_costto 0. If
seat_costis 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
seatsarray 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_seatsisn’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).
seat_cost must both be set to add the “Additional Seats” checkout field.
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.
- Make sure you have properly configured the
- 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.
- Complete the import according to the steps outlined in the Import Users from CSV Add On documentation.