Jason Coleman
Forum Replies Created
-
Hi, CommonTater. Thanks for using PMPro. Sorry for the issue you’ve run int.
so I turned off that level
What do you mean by this? Did you update the price? Or set the level to hidden? When you do either of those things, PMPro does NOT automatically cancel the associated subscriptions for users who previously signed up for the level.
To cancel those subscriptions, you can edit the users and then change their level from the edit user page, and check the box to “cancel the existing subscription at the gateway”. This will change the user’s level and cancel their subscription.
You can also find the subscriptions at the gateway and cancel them there. This will cancel the subscription, then send an IPN/webhook to your site that PMPro should read and cancel their membership on the site. If you want them to retain access, but just cancel the payment part, then using the method above is better
Why would a subscriber be charged for a renewal in 2023, given that they were not charged in 2022?
Depending on how your levels are set up with trials, prorating, our cancel on next payment date add on, there are cases where a user checking out pays for the current and following years. We’d have to see your setup to figure out exactly what happened.
How can I ensure that this does not happen again?
You should log into PayPal and look for subscription there that you don’t want to have and make sure they are cancelled at the gateway. The recurring orders are initiated by PayPal.
Can I delete a membership level that has subscribers? And would this prevent them from being charged again? What level would they have?
You can delete levels. It WON’T delete the associated subscriptions. (It used to, but more often people were accidentally cancelling those subs they didn’t want to.) If you delete a user’s level, they won’t have any level.
You can use the PMPro Toolkit add on to both cancel all of the subs and move those users from one level to another. You can find the add on on GitHub as well if you don’t have access through our site.
https://www.paidmembershipspro.com/add-ons/pmpro-toolkit/
Look for these options under Tools > Toolkit Scripts after activating the plugin.
- Cancel all members with ____ level ID . WILL also cancel any recurring subscriptions.
- Give all non-members ____ level ID .
Some more information on deleting levels here: https://www.paidmembershipspro.com/documentation/membership-levels/delete-membership-level/
I’m fairly certain that return URL issue is due to not having all pages configured for PMPro. Make sure to do that. I’m going to mark this ticket as resolved. If you have further issues or questions, feel free to open a new one.
This is a Paid plugin.
The plugin (and all of our code) is made available for free on .org here or on GitHub. If you are paying member through our website, I encourage you to request a refund through our contact form.
You can review our terms of service here: https://www.paidmembershipspro.com/terms-of-service/
And in our license https://github.com/strangerstudios/paid-memberships-pro/blob/dev/license.txt
This plugin is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
We try our best avoid issues on upgrade, but at the end of the day PMPro is one pieces of software in a website that you own and manage and we can’t account for everything.
You might want to look into fully hosted platforms. It seems your expectations are off for running self-managed WordPress.
Generally, you want to create new pages for each of the PMPro functions/pages. Go to Memberships > Settings > Page Settings and make sure there is a page for each, with the appropriate shortcode on each page.
Then the typically flow is to send folks to the levels page, let them choose a level, then they checkout, then they simultaneously are registered as a WP user and get a PMPro membership.
You can put some of the shortcodes on individual pages, but things will break if you don’t have a stand alone page for each function.
Once you set PMPro up with all the pages, you can put the pmpro_checkout shortcode/block on any page and set a default level for it. This will then show a checkout form inline there.
Our add on for Sign Up shortcodes has some additional features to create abbreviated versions of the registration form. You can check it out here: https://www.paidmembershipspro.com/add-ons/pmpro-signup-shortcode/Let me know if this helps.
Hi, Hazirahs.
But now I found that membership subscription order made through Woocommerce is not showing any expiring info at all
This is expected. As long as you have the pmpro-woocommerce add on active, PMPro basically gives the user the associated levels “forever”, but has code to sync with WC Subs to add/remove levels as WC Subs are added/cancelled.
I hope that makes sense. So in some places in the PMPro admin, the membership expires “Never” but really it’s going to be cancelled when/if the WC Sub is cancelled.
I don’t think it’s straightforward for us to have our admin and frontend screens smart enough to know how WC Subs is being used and show the correct information, but you might be able to write some custom code to help out in areas for your specific site.
we can customize the time period for the subscription redeemed through a discount code
In general, when using PMPro with WooCommerce for checkout, anything that happens at checkout needs a WC Extension to tweak. There might be a WC plugin that allows you to have different subscription intervals when using a discount code. As a work around, you might be able to create a different subscription that requires a discount code and funnel users into that. I am not sure. That might be a question the WC Subs team could help with more.
Good luck with the site. Let me know if this helps.
If you need it, we have an article on troubleshooting cron issues. https://www.paidmembershipspro.com/troubleshooting-issues-with-wp-cron-and-other-scheduled-services/
Users will have their membership removed in 3 cases:
- If an admin changes their level (not applicable here I think, but including for completeness).
- If the membership is linked to a recurring subscription, it will be cancelled when the recurring subscription is cancelled at the gateway. Depending on your gateway, this might only happen after 1-3 failed payments and retries. It’s generally good to allow the gateway to retry payments (it sometimes works), but if you’d rather cancel after the first failed payment, we have short code gist for that: https://www.paidmembershipspro.com/automatically-cancel-membership-after-x-failed-payments/
- If the membership level has an “expiration date”, then members past the expiration date will have their membership cancelled when the membership_expired cron job runs. The cron job runs every hours. Make sure that WP Cron is running fine on your site. Then also note that for memberships set to expire in “1 day”, in practice this means for the rest of today and until the end of tomorrow (based on the site’s timezone). So if you check out at 6pm Monday, you have access until 12:01 AM Wednesday morning. You can use a 24 hour expiration if you really want to expire on the dot 24 hours from checkout.
Let me know if this helps.
Good luck with the project. I’m going to resolve this thread. If you need further help, feel free to open a new one.
If you get into writing custom code for this, often the most challenging bit is figuring out where to hook in your limit and how to notify the user of the limit. That’s going to depend on what a “download” really is, what plugin you are using to manage them.
But once you do that coding the limit per level is fairly straightforward. You can set up an array to store the limits or a big if/then/switch like:
// Get the limit based on their membership level. if ( pmpro_hasMembershipLevel( array( 1, 2 ) ) ) { // Levels 1 and 2 get 5 downloads. $limit = 5; } elseif ( pmpro_hasMembershipLevel( 3 ) ) { // Level 3 has "unlimited" downloads. $limit = 99999; } else { // Default to no downloads. $limit = 0; } // Get (from user meta or plugin DBs) how many downloads used. $used = ...; // Check vs limit. if ( $used >= $limit ) { // Throw a warning somehow } else { // Do nothing. Allow the download. }Marije, thanks for your patience here. Have you been able to figure things out.
I think we need more detail about what you are trying to do with your site to give you the best feedback and advice. I don’t see the membership products on your site. (The dog treats look awesome.)
The 1 membership per cart issue is a feature, not a bug. With core PMPro, users can only have one membership level at a time. And so we want to make sure they only check out for one membership at a time, otherwise the code doesn’t know what to do and basically gives/removes all the levels back to back.
We do have a “Multiple Memberships per User” add on that removes this limitation. You can find that on our site or our GitHub repositories. The add on would replace that bit of code Jarryd shared to allow multiple products at WC checkout, and the add on also knows how to handle that so users can have multiple levels at once.
But I suspect you may not be selling memberships. In which case PMPro might not be the solution for you. If you want to do a kind of recurring dog treat box, the WooCommerce extensions for subscriptions might be a better solution for you.Let me know if this helps.
Make sure you have a checkout page set in the Memberships > Settings > Page Settings page. All pages there should be set.
Have your lawyers contact us.
Good luck with the site.
Ultimately you should use the plugin that’s working best for you. I am curious why the “payment success rate” was so low with PMPro.
What report was showing you these errors? The Stripe dashboard? What were the specific errors shown? Can you find the failed payments in the “Events” or “Logs” section of Stripe and let us know what you find?
If you used Stripe Connect (linked through the button vs API keys), and you share with us the business name and URL, we might be able to find the failed payments on our end too to investigate.
A couple thoughts.
- Make sure you have Stripe webhooks set up per our instructions.
- Try the Stripe Checkout “accept payments offsite (Stripe Checkout)” option from the payment settings page.
- Look for those failed payments and share the error messages.
- Has the absolute/actual number of checkouts gone up since switching? It’s possible spammers had found your PMPro based site and spammed your checkout. This is also a problem, but a different one, and it would look like a whole lot of failed payments. You could try PMPro along with all of the spam protection suggestions we make. Just did a video on it here (https://www.youtube.com/watch?v=a20WiL3Q-KA) and we have a doc here (https://www.paidmembershipspro.com/how-to-stop-spam/).
- Can you let us know what country and currency you are operating in? Some countries have unique regulations that could interfere with things and we can test for that.
- What is your typical level pricing set up? Knowing this can help us test things too.
That is correct. You should see that recaptcha logo in the bottom right of the screen.
We did refactor how we load recaptcha’s at checkout. This shouldn’t have affected things on your site, but it’s possible there is a conflict now that wasn’t there before. (A lot of the complexity of our recaptcha code is making sure it works if there are other plugins on your site that also want to use recaptcha/etc.)
If you share the URL of your site, I can take a look. It might be a visual bug.
If you use the debug bar in a browser like Chrome, you can see if the page is loading scripts from recaptcha. Right click on the site, click “inspect element”. Then go to the “Sources” tab of the debug bar. Then find http://www.google.com in the list, click the caret to open it up and look for recaptcha there.
If you see that, then the page is at least *trying* to load the recaptcha scripts. There might still be some other issue blocking things.
Also test a checkout to see if you are getting “recaptcha required” type warnings.
Thanks for your understanding. I hope we can figure this out quickly for you.
I probably should have just written a PR for the TEC addon. That’s cool it’s on their GitHub. I’ll see if someone on our team can help.
So currently, there is no way to add multiple levels, until they modify the Members Only Tickets add on?
Correct. The form needs to be updated to save an array of level ids or include that extra code to convert something like “1,2,3” to an array. The PMPro function doesn’t accept things like “1,2,3” by default.
Because I was on a roll here, I wrote a gist that should use the PMPro filters to support calls like pmpro_hasMembershipLevel(“1,2”)/etc.
This is untested. Let me know if it works. You can add the code via the Code Snippets plugin or in a custom plugin.
https://gist.github.com/ideadude/756cfd6d8b60993552b6146db900ce38
I wouldn’t plan to use that code ongoing. TEC should update their add on. You can see how to split the string into an array in there.