Forum Replies Created
-
AuthorPosts
-
August 25, 2025 at 12:11 am in reply to: Subdomain access and main domain access compatibility #31339
The Assurer
ModeratorBoth the main domain and the subdomain must either have their own instances of WordPress or running WordPress Multisite. Both the main domain and the subdomain must have their own installs of SWPM. The subdomain copy of SWPM will have its own tables.
August 24, 2025 at 12:02 am in reply to: Subdomain access and main domain access compatibility #31337The Assurer
ModeratorSWPM does not support WordPress Multisite installations. Each sub-site must have its own instance of SWPM.
August 23, 2025 at 12:17 am in reply to: Different partial protection custom messages for logged-out vs expired members #31334The Assurer
ModeratorYou’re right — the [swpm_protected] shortcode lets you show a single custom message (custom_msg) when access is denied, but it does not differentiate why access was denied (logged-out vs. logged-in but expired).
Out of the box, the plugin does not have a shortcode that displays different messages for expired members versus logged-out visitors. Both cases fall under “not authorized to view.”
Available Options
- Use [swpm_show_if_logged_in] / [swpm_show_if_notlogged_in]
You can wrap content in these conditionals to separate logged-in from logged-out visitors. For example:[swpm_show_if_notlogged_in]
Please log in or sign up to view this content.
[/swpm_show_if_notlogged_in][swpm_show_if_logged_in]
[swpm_protected for=”3-4″ account_status=”active” custom_msg=”Your Premium membership has expired. Please renew to regain access.”]
Premium content here…
[/swpm_protected]
[/swpm_show_if_logged_in]Logged-out visitors will see the first message.
Logged-in users will hit the [swpm_protected] check — active members see content, expired members see your “renew” message.
👉 This setup effectively gives you the split behavior you’re looking for.
- Custom PHP shortcode (if you want more control)
If you’d like to detect “expired” more directly, you can create a custom shortcode that checks the current member’s status. The plugin provides helper functions like:SwpmMemberUtils::is_member_logged_in();
SwpmMemberUtils::get_user_info_by_id($member_id);A small custom addon could output one message for account_status=expired and another for not logged in.
✅ The first shortcode-only method should solve your case without coding.
The Assurer
ModeratorThe core Simple Membership plugin doesn’t have a built-in feature to automatically “convert” a free membership into a paid one after a month.
However, you can achieve this with an upgrade path:
- Create two membership levels:
Level A: “Free Trial” (duration = 1 month).
Level B: “Paid Monthly” or “Paid Annual”. - Set the free level to expire in 1 month
In the Membership Level settings, set the Access Duration to “1 month” so that members on the free level automatically expire after that period. - Provide an upgrade link or button
Once the free membership expires, the member will no longer have access. You can:
Add upgrade buttons on a “Membership Expired” page.
Use the membership upgrade feature so logged-in users can switch to the paid plan anytime during or after the trial. - Optional: Automate upgrade reminders
If you want automatic emails prompting users to upgrade before expiry, you’ll need the Email Broadcast Addon or a connected email marketing tool to send these reminders.
If you want the upgrade to happen automatically without user action, that’s not a standard feature — it would require custom development or a more advanced membership/subscription platform.
ALTERNATIVELY, you can setup a trial subscription via the payment gateway…
How to Offer Customers a Free Trial Period on Your Membership Site
https://simple-membership-plugin.com/offer-customers-free-trial-period/August 3, 2025 at 1:01 am in reply to: Member Profile Fields & Subscription Tracking / Monitoring #30844The Assurer
Moderator1. Are custom fields available for the member profile? My use case requires capturing a member’s specific user name that they use on another platform.
Yes — the Simple Membership Plugin allows you to collect and store custom data for members, but this capability requires its Form Builder Addon (a premium add‑on)—not the free core plugin alone.
Yes, using the Form Builder Addon, you can:
Add a custom text field (e.g. “Other Platform Username”) to both the registration form and the edit profile form.
Mark it as required, optional, read‑only, or even admin‑only depending on how you want it displayed or edited.2. When people cancel their membership or recurring subscription, what kind of reporting is available? My use case would require that once someone’s membership expires, I would need to remove their access on another platform. Having a report that helps track these sorts of things would be really helpful.
When a member cancels or their membership expires, the Simple Membership plugin offers several ways to help you track that status and act on it—especially if you need to remove access on another platform. Here’s what’s available:
1. Built-in Status Tracking (Admin Panel)
From the WordPress dashboard under Simple Membership → Members, you can:
Filter the member list by status (e.g., Active, Expired, Pending, Inactive).
Click to view individual member profiles, which include the expiry date and subscription status.
But:
This view doesn’t support CSV export or date-based filters natively.
It’s best for manual checks or small sites.2. Member Data Exporter Addon (Recommended for Automation)
To generate a report of expired or cancelled members, you’ll want the Member Data Exporter Addon (premium).
With it, you can:
Export a CSV of all members.
Filter by membership level, status, or custom fields.
See each user’s status, such as expired, inactive, or active.
👉 You can use the exported CSV to:
Feed into an automation system or script that syncs access with another platform.
Regularly audit expired accounts for cleanup.3. Custom Automation via Hooks (For Developers)
If you’re looking for real-time automation, you can use the plugin’s action hooks to trigger code when a member:
Cancels a subscription
Has their membership expire
Here are a few useful ones:
swpm_after_membership_level_changed
swpm_after_account_status_changed
swpm_after_membership_expired_event (in some setups)
These can be used in a custom plugin or theme’s functions.php to call external APIs or sync with another platform.The Assurer
ModeratorAre you using page caching plugins or server modules? And do you see the same behavior if you login using an incognito browser window?
The Assurer
ModeratorIt looks like you’re encountering a known Stripe subscription issue in the Simple Membership (SWPM) plugin, where webhook callbacks are not correctly processed, resulting in that swpm_<hash>|<buttonID> reference error. Here’s what’s going on, and how to fix it:
.Why You’re Seeing: Fatal error! Payment with ref_id swpm_<…>|1299 can’t be found
That ref_id is auto-generated by Simple Membership for internal reference, combining a unique hash with the payment button ID (e.g. 1299).The “can’t be found” error appears when SWPM receives a Stripe notification for a subscription payment but has not yet registered that payment internally. The payment record lookup fails, triggering that fatal error.
Common Cause: Webhook Not Configured Correctly
From multiple support reports, this error typically indicates missing or misconfigured webhook settings in your Stripe dashboard:You need to set up a webhook endpoint configured to receive specific Stripe events so SWPM can create the payment record.
- Confirm Webhook Setup
*Log into your Stripe dashboard.
*Go to Developers → Webhooks.
*Ensure your SWPM webhook endpoint URL exactly matches what’s provided in the Stripe Subscription Button creation settings in your WP admin area. - Verify Selected Events
*Ensure the following events are selected:
*invoice.payment_succeeded
*invoice.paid
*charge.refunded
*customer.subscription.updated
*customer.subscription.deleted
*Missing any of these can prevent the plugin from processing subscription lifecycle events properly.
Also remember to ensure the debug logs are turned on before performing further tests.
The Assurer
ModeratorSWPM does not provide Discretionary Access Control (DAC) to discrete files stored on your site. It only controls access to pages and posts; that are accessible through WordPress.
The Assurer
ModeratorWhen a user registers using the Simple Membership plugin (without the Form Builder Addon), only the default fields get stored and displayed in the member’s admin profile—fields like username, email, and membership level. Any additional fields you’ve added via the Form Builder Addon are saved in a separate custom_meta area and won’t appear unless you use that addon to both create and view them.
Where is the data actually going?
Default registration data (username, email, first/last name, etc.) is stored in the wp_swpm_members_tbl table and visible in the WordPress admin under WP Membership → Members.Custom fields, created with the Form Builder Addon, are saved in that same wp_swpm_members_tbl but inside a serialized field (custom meta). Without the addon’s admin interface to decode it, WordPress will show “Custom Fields” in the profile but leave them blank—because only the addon knows how to extract and display that data properly.
The Assurer
ModeratorIf you don’t check the “Email Activation” box for a paid membership level, the plugin expects users to complete their registration after paying—but without the email link step. Here’s what happens:
✅ Standard Paid-Membership Flow (without Email Activation)
- User selects a paid level and completes payment via your “Join Us” page.
- Once payment is confirmed, they get a unique registration link—either on the thank-you page or sent by email.
- Clicking that link takes them to the registration form, where they choose a username and password to finish the process.
- After choosing credentials, their account is created and automatically active, ready to log in to protected content.
📝 No email activation means they don’t need to click a confirmation link first. The plugin skips the “pending activation” step—it jumps straight to registration post-payment.
🔒 What You’re Not Getting with Email Activation Unchecked
- The user won’t receive an activation email and won’t have to verify their address.
- There’s no “Activation Pending” status; the account becomes active once they finish the registration via the provided link.
- If someone pays but doesn’t complete registration, you’re left with an account in limbo (just pending username/password setup).
The Assurer
ModeratorAt this time, the API addon is on a per-member basis. If you are trying to do something like create a directory of members, there is a premium addon for that:
https://simple-membership-plugin.com/simple-membership-member-directory-listing-addon/The Assurer
ModeratorYou set the account status to either active or pending. The registration email will still be sent after the import has completed.
The Assurer
ModeratorIn the CSV file, did you remember to set the account_state to active???
The Assurer
ModeratorPlease turn on the debug logs and try again. A message about the status of sent emails should appear in the logs.
The Assurer
Moderator@Mabel — Any support related issues regarding the Form Builder Addon should be directed to Premium Addon Support and a developer will contact you.
https://simple-membership-plugin.com/premium-addon-support/ - Use [swpm_show_if_logged_in] / [swpm_show_if_notlogged_in]
-
AuthorPosts