BUG: Conflict w/ Approvals and Addon Packages.
Describe the bug The site requires Approval of the First Level before signing up for paying levels. After approval, member signs up for the Second Level. Now that user is a member of Second Level user can not purchase Addon Packages (that should be accessible to their level)
To Reproduce Steps to reproduce the behavior:
- Enable, PMPro, Approvals Add On, Addon Package Add On
- First Level - Requires Approval? > YES. Admin must approve new members for this level.
- Second Level - Requires Approval? > YES. User must have an approved membership for a different level.
- Second Level - Which Level? (select the First Level)
- Create Addon Page - Require Second Level
- Sign up New Members with First Level and approve them
- Change member for to Second Level (purchase or change in admin)
- Return to buy Addon Package
Screenshots

Expected behavior Approved Member of one level, then purchases the second level (which requires first level approval) Members of the second level should be able to purchase Addon Package.
Isolating the problem (mark completed items with an [x]):
- [x] I have deactivated other plugins and confirmed this bug occurs when only Paid Memberships Pro plugin is active.
- [x] This bug happens with a default WordPress theme active, or Memberlite.
- [x] I can reproduce this bug consistently using the steps above.
WordPress Environment
WP 5.8, PMPro 2.6.1.1, Approvals 1.4, Addon Packages 0.8
The workaround here would be to ensure that the AP level that is assigned doesn't require approval for another level:
-
You may use the
pmproap_text_level_idfilter to adjust the default level for Addon Packages. Make sure that the post/thing you're buying has this level. -
Do not set this level to require approval for another level to checkout but rather "Approval by Admin".
I think a gist for this "issue" would be better as I can imagine not everyone would want to bypass approvals by default and would be more than happy to require approval. You may use the pmpro_approvals_level_restrict_checkout filter and set this to false if the $_REQUEST['AP'] isn't empty.