latest stable versions: v150827 (changelog)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

About: Jason Owens

Sorry, I've not written a description yet. I'll get to it soon!


Topics I've Started


My Latest Replies (From Various Topics)

Viewing 6 replies - 1 through 6 (of 6 total)
Author Replies
Author Replies
Posted: Wednesday Dec 11th, 2013 at 9:16 am #61817
Jason Owens
Username: owens310

Claudio,
Thank you so much for the fix you proposed. I tried it, and it worked.

Last night I upgraded to version 131126, and my entire site was completely useless.

I could not even access the admin screen to login. Everything on my site went white! It was completely debilitating.

I was able to figure out how to disable plugins (just use cPanel to rename the s2member folder to something like s2member-disabled). Once I disabled s2member, the site started working again with the exception of not being able to enroll new members or login existing premium members.

While trying to solve this problem this morning I found the error log and then realized I started receiving “…Only variables can be passed… /wp-content/plugins/s2member/includes/classes/css-js-themes.inc.php on line 57” errors. Googling this phrase led me to this thread on the forum.

Bang! Problem solved.

Thanks so much for everyone’s contribution here. If it weren’t for you, I’d still be banging my head.

Jason

  • This reply was modified 3 years ago by  Jason Owens.
Posted: Friday Feb 17th, 2012 at 12:40 am #5443
Jason Owens
Username: owens310

Well, the button code obviously didn’t post the way it should. It looked fine in the preview, but didn’t post.

Posted: Friday Feb 17th, 2012 at 12:37 am #5442
Jason Owens
Username: owens310

This is all good, and leading to a conclusion. This last bit of clarification will be extremely helpful as your preceding posts have been quite helpful. I really appreciate your help with this.

If it’s a Recurring Profile or Subscription, then s2Member will need the “Subscription ID”, or a “Recurring Profile ID” in the User’s Paid Subscr. ID field, in your new site. 

The site’s subscription database has absolutely no field titled Subscription ID. The only thing that I have is the Transaction ID. In the code that handles the processing of the Post data, I can see the Subscription ID field being read and passed back to out to PayPal, but, of the two, only the Transaction ID is saved to the subscription database. I do not even see any mention of a field titled Recurring Profile ID, but more on this in a minute.

A Transaction ID works also, but only in cases where the original transaction was a “Buy Now” purchase. 

I don’t know how to determine if I have “Buy Now” functionality in my code (see code near bottom). I do know that users absolutely HAD to be logged into the system in order to make a purchase.

If the original transaction was a Subscription or a Recurring Profile, s2Member needs to reference the original ID associated with the Subscription or Recurring Profile, because that’s what PayPal is going to send in any future IPNs. 

The only ID that I can see consistently used between PayPal and the site’s subscription database is a field called User_ID. It happens to be passed to PayPal under the “invoice” label, but gets renamed as User_ID before being saved. I do not feel this is a viable replacement for our Recurring Profile ID because it is not generated by PayPal.

With that as background please help me with the following questions:
1) How can I determine if I had “Buy Now” functionality in the original purchase? If I can prove that the transaction was “Buy Now compatible”, then I should be good to go with a transaction ID, right? (see code below).
2) If the situation is not “Buy Now compatible”, then I clearly need a PayPal generated alpha-numeric in the form of a Subscription ID or a Recurring Profile ID. I have neither, so it appears that the “Buy Now” example is my only hope in the short term.
3) If we can not prove Buy Now compatibility then I suppose I could create a new column in the subscription database and attempt to capture the Subscription ID (if any exists) as the monthly renewals process.

Button Code

$pagecode .= '

<img src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
';
$pagecode .= '

';
$pagecode .= '
















';
Posted: Thursday Feb 16th, 2012 at 11:45 am #5372
Jason Owens
Username: owens310

Jason,
I have done a little more research this morning. Matt at PayPal technical support mentioned that the only solution they recommend for people in my situation is to redirect PayPal’s subscription renewal post to my new system. While this was his solid recommendation, he had no offer of example code.

The architecture is as follows:
Use my old system to accept and verify the renewal post from PayPal (The verification from my site should satisfy PayPal as it is looking for this verification).
Once satisfying PalPal, echo/redirect the post data to my new site.

In forming the echo/redirect of the post data, couldn’t we straighten out the Custom and item_number issues which you referenced earlier?

I don’t need to be a code hero here. If you have something quicker and easier to offer, I’m all ears.

Posted: Thursday Feb 16th, 2012 at 9:50 am #5367
Jason Owens
Username: owens310

Jason,
Thanks for the reply. Let me see if I understand what you are saying.
1) It is possible to import users with their associated Subscription IDs (in my case I found transaction IDs, and I believe these are compatible).
2) I need to go to the Profile on the appropriate PayPal account, turn on the IPN, and set the URL to the appropriate value (i.e. mysite.com/?s2member_paypal_notify=1).

In theory, if PayPal were sending IPNs then S2Member should be able to handle the transactions from here. The communication link would be established. There are two problems, though.
3) PayPal may not send communication to my new default IPN URL because the original transaction may have been “hard coded” with a transaction-based notify_url which would override my default IPN that I just turned on (i.e. mysite.com/?s2member_paypal_notify=1).
4) Even if #3 is not a problem, s2Member is still looking for specific values to be transmitted (“custom” value and item_number). These values, like the notify_url string, would have been established in the original subscription transaction.

Given these limitations it appears you advocate just managing existing members by adjusting the EOT by hand in the users profile in s2Member. New members after the transition should be golden as all communication between s2Member and PayPal will be handled well. Members from the previous system are simply treated as legacy issues.

So that is my recap of what I heard you say. If I missed anything, please clarify.

Now I’ll turn the focus to what I have learned in the interim.

You mentioned earlier about the possibility of my old site using PayPal button integration. I’m not certain that it did in the sense that button code is used today, but I found the code used to pass information to PayPal for the original transactions. It does appear that the notify_url was hardcoded (input type=”hidden” name=”notify_url” value=”http://oldurl.com/paypal_process.html&#8221; /).

I am still running my old site in parallel to my new site. Last night I found several members who were due for renewal in the early hours of this AM. I have them all imported into the new site using s2Member. I already had their EOT in the appropriate location in their respective user profiles. I added their subscriber ID (it was called the transaction id in my old system). Given that I had changed the default IPN URL I had hoped that PayPal would communicate to my new site and adjust the members’ EOT. That was not the case, though. Not one of my members renewed in my new system. They did renew on the old system. My head is going down the path that the hard coded notify_url is my problem. Given this, I can’t be the first person to experience this issue. There has to be some solution. Any thoughts?

Posted: Thursday Feb 9th, 2012 at 8:23 pm #4696
Jason Owens
Username: owens310

Jason,
Thanks for your response. It was exactly what I needed. I was able to find the correlating offenders inside the wp_usermeta table. I was able to remove them, and now my counts line up.

Many thanks!
Jason O.

Viewing 6 replies - 1 through 6 (of 6 total)

Old Forums (READ-ONLY): The community now lives at WP Sharks™. If you have an s2Member® Pro question, please use our new Support System.

Contacting s2Member: Please use our Support Center for bug reports, pre-sale questions & technical assistance.