PriMoThemes — now s2Member® (official notice)

This is now a very OLD forum system. It's in READ-ONLY mode.
All community interaction now occurs at WP Sharks™. See: new forums @ WP Sharks™

Tip: Avoid multiple free trial periods

s2Member Plugin. A Membership plugin for WordPress®.

Tip: Avoid multiple free trial periods

Postby PseudoNyhm » July 12th, 2011, 2:07 pm

This is a scenario I've tested to avoid a hypothetical customer abuse case. It appears to work in sandbox testing, but any input on best practices or how to better handle this in the wild would be appreciated.

Scenario: My (hypothetical) service offers open registration (free Level 0) with premium subscription for Level 1 access. The (PayPal Standard) subscription offers a Free Trial Period, during which the user is Level 1, but has not yet paid. If the subscription lapses in payment (or is canceled), s2Member will demote the account back down to Level 0 (it is not desirable for my service to delete the account).

Problem: If a demoted user re-subscribes (back up to Level 1), they should not get another free trial. (If so, they could just keep canceling before the trial is over, then re-subscribing for more free time at Level 1.)

Solution: Call s2Member's s2member_paid_registration_time() to see if they have ever had a paid subscription. If so (this function returns non-zero), offer up a different PayPal button that does not provide a free trial period.

Details: Notice that s2Member does not (yet) provide shortcode for this method. I wrapped up some of this logic into my own function/shortcode (by modifying my theme's functions.php) to be called from my page content.

I hope this may be helpful to others. Feedback welcome.
User avatar
PseudoNyhm
Experienced User
Experienced User
 
Posts: 79
Joined: June 19, 2011

Re: Tip: Avoid multiple free trial periods

Postby Cristián Lávaque » July 12th, 2011, 10:45 pm

That's a very good approach. What I'm not sure of is if a time will be set for paid registration at Level 1 if the person just got the free trial and didn't actually get to pay. I'm not saying it doesn't, just that I haven't tried it or remember Jason mentioning it does. I'll email him asking his feedback.
Cristián Lávaque http://s2member.net
Is s2Member working for you? Please rate it Image at WordPress.org. Thanks! :)
User avatar
Cristián Lávaque
Developer
Developer
 
Posts: 6836
Joined: December 22, 2010

Re: Tip: Avoid multiple free trial periods

Postby PseudoNyhm » July 12th, 2011, 11:03 pm

That's a good catch, but I think it's OK.

According to the API documentation for s2member_paid_registration_time():

NOTE A Paid Registration Time, is NOT necessarily related specifically to a Payment. s2Member records a Paid Registration Time, anytime a User acquires paid Membership Level Access.


From my free trial subscription testing, I've found that s2Member sets the user to Level 1 immediately upon IPN signal (even though PDT is not supported for PayPal Standard with a free trial). Please let me know if I am interpreting this correctly.
User avatar
PseudoNyhm
Experienced User
Experienced User
 
Posts: 79
Joined: June 19, 2011

Re: Tip: Avoid multiple free trial periods

Postby Jason Caldwell » July 15th, 2011, 10:42 pm

Solution: Call s2Member's s2member_paid_registration_time() to see if they have ever had a paid subscription. If so (this function returns non-zero), offer up a different PayPal button that does not provide a free trial period.
Yes, that is correct, and this solution should work nicely. While s2Member does not make it possible to do this with a Shortcode (yet), I'll see what I can do. In the mean time, yes, I see no problem going about it this way through custom code of your own.

From my free trial subscription testing, I've found that s2Member sets the user to Level 1 immediately upon IPN signal (even though PDT is not supported for PayPal Standard with a free trial). Please let me know if I am interpreting this correctly.
Yes, that's correct. IPN is always processed. If it were up to me, we would process this through PDT too, so that instant access is possible immediately after checkout. Unfortunately though, PayPal's PDT service does not send s2Member enough information immediately after checkout when there is a free trial, so the Customer has to wait for the IPN routine to process and the email to be sent. So yes, you are correct.
~ Jason Caldwell / Lead Developer
& Zeitgeist Movie Advocate: http://www.zeitgeistmovie.com/

Is the s2Member plugin working for you? Please rate s2Member at WordPress.org.
You'll need a WordPress.org account ( comes in handy ). Then rate s2Member here Image
.
User avatar
Jason Caldwell
Lead Developer
Lead Developer
 
Posts: 4045
Joined: May 3, 2010
Location: Georgia / USA

Re: Tip: Avoid multiple free trial periods

Postby drbyte » July 16th, 2011, 2:48 am

Hi

I can see how this work but I gave up on the FREE trial. Instead I offer a Trial membership where they have to pay first. If they are not satisfied within 3 days, then they can cancel and get a refund. We usually set a refund time between 5 to 7 business days.

It's still free if they cancel within the specified period.

Having said that, cancellation and full refund is subject to the following

Member has no prior membership (username, IP address, email address, and name) on file. If so, then they are not eligible to any refund PERIOD. (Terms of use)

Cancellation is fairly simple. After they click on the cancellation link which takes them to another page where they have to agree to some terms and other instructions, offer to put their account on hold instead of cancellation enter the Captcha code then they can cancel.

If you make it easy, they will cancel

:D
User avatar
drbyte
Experienced User
Experienced User
 
Posts: 269
Joined: May 6, 2010

Re: Tip: Avoid multiple free trial periods

Postby PseudoNyhm » July 16th, 2011, 9:00 am

drbyte, Thank you for this alternative approach. Do you then have to manually process each cancellation, or is there some automated way to process the refund?
User avatar
PseudoNyhm
Experienced User
Experienced User
 
Posts: 79
Joined: June 19, 2011

Re: Tip: Avoid multiple free trial periods

Postby drbyte » July 17th, 2011, 2:43 am

I suppose manually for now. Since we started offering the new system, we had 0 cancellations. We had some desperate people trying to sign in using different credit cards..Of course the transaction fails because there are no funds, and that's exactly what we were trying to avoid in the first place. I would not mind spending an hour or 2 to resolve some cancellations..it's my business after all. The only wish I have is for PayPal site to load faster looking over transactions.

If you are going to try this, make sure you cover it in the terms of use page. Mine is 2 pages long

We also have 3 extra fields where they have to agree before submitting the form

Must agree check box

I have read and agree to the site.com Terms and Conditions and certify that I am at least 18 years of age.

I have read and agree to the site.com Refund Policy

I acknowledge that this is a recurring transaction for $XX.xx per month

You can make it even harder to cancel. Example

"All cancellations must be made by telephone at 1-800-123-1234 for the U.S.A. and Canada or +1 +1 (888) 123-1234 for international members, seven (7) days a week, from 7:00AM to 10:00PM , Pacific Standard Time."


Hope this info helps. But yes, We need people who are responsible and willing to pay.
User avatar
drbyte
Experienced User
Experienced User
 
Posts: 269
Joined: May 6, 2010

Re: Tip: Avoid multiple free trial periods

Postby PseudoNyhm » July 17th, 2011, 8:23 am

Thanks for the advice. That's very useful information. It would be good if more people discussed how they integrate s2Member with their payment policy.

I plan to offer a free trial period (maybe 15 days), then charging a monthly recurring fee. From what I've read, PayPal does not initially process the credit card when there is a free trial. Does PP even do a cursory check that the card is valid? If there are no funds after the trial period, the first payment should fail and s2member will demote the user.
User avatar
PseudoNyhm
Experienced User
Experienced User
 
Posts: 79
Joined: June 19, 2011

Re: Tip: Avoid multiple free trial periods

Postby uurayan » July 20th, 2011, 2:11 pm

Can we please get this integrated into the next update? I think its kind of important that people can't just keep canceling and signing up for the free trial over and over.
User avatar
uurayan
Registered User
Registered User
 
Posts: 20
Joined: June 1, 2011

Re: Tip: Avoid multiple free trial periods

Postby Jason Caldwell » July 20th, 2011, 2:29 pm

Thanks for the vote on this feature.
I'll see what we can do in the next release.
~ Jason Caldwell / Lead Developer
& Zeitgeist Movie Advocate: http://www.zeitgeistmovie.com/

Is the s2Member plugin working for you? Please rate s2Member at WordPress.org.
You'll need a WordPress.org account ( comes in handy ). Then rate s2Member here Image
.
User avatar
Jason Caldwell
Lead Developer
Lead Developer
 
Posts: 4045
Joined: May 3, 2010
Location: Georgia / USA

Re: Tip: Avoid multiple free trial periods

Postby drbyte » July 20th, 2011, 6:13 pm

Thank you Jason

I believe the best way to address the FREE trial would be allowing first subscribes to get some materials but not all. In some cases, allowing them to download let's say a 5 pages PDF file. If they are on a free trial then all what they get is 2 pages. If they want to read the rest then they have to pay.

In my case, I need a person to write us an action script where it needs to be integrated to the flash player where when a member is on level 0 then 10 min that all they can watch..they can do that for a month if they want to, but if they want to watch the full video then they have to become a level 1> member.

Don't know how that can be integrated with S2M, but I'm sure it can be done. Maybe Jason can come up with a flash player that can do the above and charge $100 for it.....Right Jason...Hell I will pay $200 for it as long it's setup to work with flash media server and wowza.

:)
User avatar
drbyte
Experienced User
Experienced User
 
Posts: 269
Joined: May 6, 2010

Re: Tip: Avoid multiple free trial periods

Postby Cristián Lávaque » July 21st, 2011, 12:09 am

drbyte wrote:In my case, I need a person to write us an action script where it needs to be integrated to the flash player where when a member is on level 0 then 10 min that all they can watch..they can do that for a month if they want to, but if they want to watch the full video then they have to become a level 1> member.


Couldn't you just save the first 10 mins of every video into a separate file and serve those if the person is still in the trial period? You could just use a conditional for the file var instead of editing the player, right?
Cristián Lávaque http://s2member.net
Is s2Member working for you? Please rate it Image at WordPress.org. Thanks! :)
User avatar
Cristián Lávaque
Developer
Developer
 
Posts: 6836
Joined: December 22, 2010

Re: Tip: Avoid multiple free trial periods

Postby bitofgrace » September 8th, 2011, 3:59 pm

I am facing the same "hypothetical" scenario.
The larger concern in my case is that our customers are already habitually attempting access to trial period by using fresh and temporary email addresses, names, even IPs.

Will this time call workaround catch only exact matches?

:?
User avatar
bitofgrace
Registered User
Registered User
 
Posts: 64
Joined: September 8, 2011

Re: Tip: Avoid multiple free trial periods

Postby drbyte » September 8th, 2011, 10:52 pm

Hi

I don't think there is a way around this issue.

Can you afford giving free trials?

If you are a start up business with limited cash flow then most likely the answer to the above question is no.

If what you sell is good then you will have no problem selling it. Just make sure you cover all corners with your terms and conditions page.

Sam
User avatar
drbyte
Experienced User
Experienced User
 
Posts: 269
Joined: May 6, 2010

Re: Tip: Avoid multiple free trial periods

Postby PseudoNyhm » September 9th, 2011, 8:20 am

For the record, I am no longer relying on PayPal to manage the free trial period. In sandbox testing, I found it to be unreliable (and it doesn't signal s2Member of the initial purchase, either). Now I'm calling s2member_registration_time() to determine how long a user has been registered. Unfortunately, this does not use the s2Member Levels to guard access (until they purchase a subscription), so extra coding is required.

As drbyte recommends, it is a breach of my terms to attempt to gain multiple free trial periods.
User avatar
PseudoNyhm
Experienced User
Experienced User
 
Posts: 79
Joined: June 19, 2011


Return to s2Member Plugin

Who is online

Users browsing this forum: Google [Bot] and 1 guest

cron