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.

EOT Not working for PayPal or CCBill

Home Forums Community Forum EOT Not working for PayPal or CCBill

This topic contains 24 replies, has 4 voices. Last updated by  Cristián Lávaque 4 years, 2 months ago.

Topic Author Topic
Posted: Monday Oct 8th, 2012 at 12:23 pm #27806

Hello. I was going through my users and noticed that there are some that have not been demoted after their subscriptions expired. This is an issue with both my PayPal & CCBill users. I have no idea how to remedy it, but I’m having to go demote them myself. I have the current stable version of S2Member installed. I also called CCBill and they said the datalink was working correctly. Please help.

List Of Topic Replies

Viewing 24 replies - 1 through 24 (of 24 total)
Author Replies
Author Replies
Posted: Tuesday Oct 9th, 2012 at 3:37 am #27857
Raam Dev
Username: Raam
Staff Member

s2Member sets the EOT time when it receives a message from PayPal/CCBill indicating that the users subscription is expiring (or their payment failed, or they manually canceled). When s2Member receives that message, it sets the Automatic EOT Time on their account. If you edit these users accounts, is there anything in the Automatic EOT Field? If not, that would indicate s2Member never received those messages from PayPal/CCBill and I would recommend double-checking your configuration (especially the IPN configuration).

Finally, if you haven’t already, I recommend enabling logging (Dashboard -› s2Member® -› PayPal® Options -› Account Details -› Logging and Dashboard -› s2Member® -› ccBill® Options -› Account Details -› Logging). After someone’s subscription expires and you expect s2Member to know about it, search the logs for that specific Transaction ID or Subscription ID and search for any messages s2Member has received.

Posted: Tuesday Oct 9th, 2012 at 9:15 am #27891

Thank you for your fast response, Raam.

Both IPN configurations are correct. There is no information in the EOT field of any members, though.

Logging has always been enabled. The only odd thing I see (not sure why it does this) is that all members have logging in ccbill-ipn.log and paypal-ipn.log no matter how they signed up. I see no error messages stating that there were issues communicating with either portal.

Any other suggestions?

I just attempted to put in EOT dates into the field for those that are expired/expiring and I got an error message about useres-list-in.inc.php. Also, I noticed this error message in all my user’s profiles:

Warning: Invalid argument supplied for foreach() in /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/custom-reg-fields.inc.php on line 294

Line 294 is this:

foreach(json_decode($GLOBALS[“WS_PLUGIN__”] [“s2member”] [“o”] [“custom_reg_Fields”], true) as $field)

I have no idea what that means or why there’s an error in it. Possibly causing the issue of EOT?

Posted: Wednesday Oct 10th, 2012 at 4:24 am #27952
Raam Dev
Username: Raam
Staff Member

Yes, it sounds like that could be the issue.

Have you modified any of the s2Member files?

What was the error message you received about users-list-in.inc.php?

Also please download this Server Check Tool, upload the PHP file to your WordPress directory, and then load the URL to the file in your browser. It will run a bunch of tests to determine if there’s anything amiss on the server-side.

Posted: Wednesday Oct 10th, 2012 at 4:40 pm #28020

I have not modified any of the s2member files.

The error message is:

Warning: Invalid argument supplied for foreach() in /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/users-list-in.inc.php on line 458

Warning: Cannot modify header information – headers already sent by (output started at /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/users-list-in.inc.php:458) in /home/content/25/8474825/html/americanmusclehunks/wp-includes/pluggable.php on line 881

I uploaded the server check tool php file to multiple directories in wordpress and loaded the URL, but they all came up with a bunch of gibberish. I’m no the most knowledgeable when it comes to ftp and which directory I should be uploading to, but it appeared that most of the gibberish was the same in each instance. However, what it is and if there are errors, I cannot tell.

I went back in to attempt to put an EOT in manually so I could get the error message and I still received the message, but I then was trying to manually demote the users and it still gave me the same error message above. Not sure if that is significant, but thought that you should know I cannot edit users in any way.

Posted: Thursday Oct 11th, 2012 at 6:24 am #28093

Christoper, “Warning: Cannot modify header information – headers already sent” happens when the script tries to modify the headers after something is echoed to the browser, even if it’s just a space or line-break.

The s2Member file mentioned in the error must have been modified in some way (maybe a failed upload?) because the original in the distribution doesn’t cause this error.

Could you please re-upload that file from the s2Member zip file and try again?

I hope that helps. :)

Posted: Thursday Oct 11th, 2012 at 10:24 am #28135

Christian, that didn’t do anything. I replaced the users-list-in.inc.php file and still get the same warning.

Next option?

EDIT:

I actually went back after posting this and reinstalled the ENTIRE plug-in as well as the Pro files and I’m STILL getting the error messages, unable to update users, and don’t have EOT demoting…

Posted: Friday Oct 12th, 2012 at 7:42 am #28214

Could you please send me your site’s info? I’d like to try creating a test user account and editing its profile to add an EOT time. s2Member® » Private Contact Form

I actually went back after posting this and reinstalled the ENTIRE plug-in as well as the Pro files and I’m STILL getting the error messages, unable to update users, and don’t have EOT demoting…

Have you checked if there is a plugin conflict causing this? You’d do it deactivating the other plugins one by one, checking after each if the problem continues.

I uploaded the server check tool php file to multiple directories in wordpress and loaded the URL, but they all came up with a bunch of gibberish.

In your email, could you include the URL to the server check tool you uploaded, please?

Thanks!

Posted: Friday Oct 12th, 2012 at 3:13 pm #28264

Sent you the email. I deleted the server check tool, but I got it off these forums. It was server check 120703 I believe.

Posted: Saturday Oct 13th, 2012 at 8:04 am #28316

Thanks, got it.

I created a test user and went to the profile page. In the custom fields section I noticed the error:

Warning: Invalid argument supplied for foreach() in /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/custom-reg-fields.inc.php on line 294

And then when saving the profile got the blank page with the errors:

Warning: Invalid argument supplied for foreach() in /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/users-list-in.inc.php on line 458

Warning: Cannot modify header information - headers already sent by (output started at /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/users-list-in.inc.php:458) in /home/content/25/8474825/html/americanmusclehunks/wp-includes/pluggable.php on line 881

The problem was when saving the changes, not the EOT field in particular, even if you don’t change anything, I got that.

I looked in both files mentioned, and noticed the same foreach for [hilite mono]$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["custom_reg_fields"][/hilite]. I think the problem is not with the code itself, but with one of the fields in the array.

So I went to look at the fields you created, and the interface to create/edit them is missing from your admin panel. [hilite path]Dashboard -› s2Member® -› General Options -› Registration/Profile Fields[/hilite]

There’s definitely something wrong there.

First I’d like to make sure it’s not the theme or a plugin causing that to be missing, so could you test deactivating the other plugins and changing the theme to the deafult one for a moment and refresh the page to see if you now see the custom fields interface?

If not, since you don’t have the interface, you’ll need to edit them in the database… Go to your phpMyAdmin and browse the options table to find the s2Member fields. If your users don’t have these populated, then you can just delete them, but if your users already filled them out, you may want to try fixing them.

I hope that helps!

Posted: Sunday Oct 14th, 2012 at 5:20 pm #28388

I tried changing the theme and deactivating the plug-ins, but didn’t get the options back under custom fields. I’m on the editing of phpMyAdmin. However, you’re over my head at this point. I have no idea where that is located or what table to which you are referring. Additional direction would be greatly appreciated.

Why would this field not be avail for editing in the UI? I have another site that it has the options available. They are hosted the same and everything. Is there a way to fix this installation to have those options?

Posted: Monday Oct 15th, 2012 at 8:57 am #28414

It has to be something that altered your installation, that’s why I suspected a plugin conflict. But deativating all your plugins/theme didn’t return that.

If the files were altered/corrupted for some reason, re-uploading them would have helped, but didn’t.

I really don’t know why your custom profile fields aren’t there.

About phpMyAdmin, it’s an interface to manage the databases in your server. Web hosts usually make it available, ask them about it.

But if you don’t know what it is, it may be best if you got a developer to assist you to solve this. You can post a job in freelancers websites (e.g. jobs.wordpress.net, elance.com, odesk.com).

Posted: Monday Oct 15th, 2012 at 9:27 am #28419

I installed the Portable PMA plug-in which is the plugin for phpMyAdmin. I looked for an “options” table and found a couple, but none have anything about s2member. It’s quite discouraging that I paid for your product and it doesn’t work and now you’re telling me to go pay for someone to fix it. You have the admin log-in info for the website, could please go look and see about the fields?

Posted: Tuesday Oct 16th, 2012 at 8:28 am #28514

It’s quite discouraging that I paid for your product and it doesn’t work and now you’re telling me to go pay for someone to fix it.

s2Member, as it’s distributed, doesn’t have the problem you’re experiencing. You have another installation where it works fine and confirmed this. The problem you have is something particular to one installation, not s2Member.

Like I said, it could be a plugin conflict, or corrupt files, but you already checked that those weren’t the case. The other thing I can think of is something in the custom profile field entries in the database that could be causing this error, that’s why I suggested browsing it.

It’s not that I don’t want to give you support, I’m happy to help, it’s just that some things fall outside of what’s owed as support. Going into your database and fixing a problem particular to your site is an example, that’s why I suggested a freelancer after you said not knowing how to do it yourself. s2Member® » Support Policy » Fine Lines

I hope you understand. :/

I installed the Portable PMA plug-in which is the plugin for phpMyAdmin. I looked for an “options” table and found a couple, but none have anything about s2member.

You have the admin log-in info for the website, could please go look and see about the fields?

I went and looked in your database and in the [hilite mono]wp_options[/hilite] table, there’s a row for [hilite mono]ws_plugin__s2member_options[/hilite].

I don’t see custom profile fields defined there, but I did see your site’s name repeated a lot of times, in a weird way. They all seem to have slightly different typos, like a list for SEO purposes. Did you use/do anything to generate variations of the site’s name? It seems to have corrupted the s2Member options in the database.

Posted: Tuesday Oct 16th, 2012 at 9:57 am #28541

I went and looked at ws_plugin__s2member_options, thank you for telling me where it is. That is odd, but it is not surprising because when I installed s2member and imported the user database over from an old site it populated ALL of the options fields like that. I emphasize ALL because it was literally in every options field in the UI. I couldn’t figure it out for the life of me why it did that. Also, when a user goes to register it still has the name repeated like that on the registration page. If I delete the name in that phpMyAdmin section do you think it will help?

Here’s what else I was thinking: I have reinstalled s2member to try to fix the problem, but I only replaced the files via ftp. What if I were to completely deactivate and delete all the old files then reinstall do you think that will help? My only concern is that I will lose all the user info and settings and I don’t have time to go through and set up s2member again. Does the “deactivation safeguard” option save the info if all the files are completely wiped?

Posted: Tuesday Oct 16th, 2012 at 11:07 am #28568

Yeah, if you disable the Deactivation Safeguards, everything that s2Member stored in the database will be removed. And if you leave that enabled, then removing all the files or deactivating the plugin, will not remove that from the database.

The problem with removing everything would, indeed, be that all the s2Member related info tied to the user will be lost too (subscr. ID, s2Member Level role, EOT time).

One thing that could be tried is exporting the users with s2Member, then removing s2Member with Deactivation Safeguards disabled, and then reinstalling clean s2Member, and importing the users to update their profiles with the s2Member fields. You’d need to reconfigure s2Member, and the export tool may also fail because of the same reason the other areas did…

Just deleting the s2Member options from the database would most likely cause problems, too. One thing that you could try, though, would be using a script that queries the s2Member options from the database, and shows you the unserialized array, lets you edit the array to correct the site’s name everywhere, then saves the array, serialized back to wp_options.
http://codex.wordpress.org/Function_Reference/get_option
http://codex.wordpress.org/Function_Reference/update_option

You really need to find what’s doing that with the name of the site, or you’ll keep having problems even if you reinstalled s2Member. There is something, somewhere doing it. Did someone work on the site besides you?

Posted: Tuesday Oct 16th, 2012 at 1:39 pm #28578

Ok, I think I resolved the site name repetition issue. I also now have the custom registration field options again. Not sure why that was causing such an issue there. I am still not able to edit users without getting the error message:

Warning: Cannot modify header information – headers already sent by (output started at /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/users-list-in.inc.php:458) in /home/content/25/8474825/html/americanmusclehunks/wp-includes/pluggable.php on line 881

So I’m hoping this isn’t the reason my EOT is not updating and demoting users, but I’m sure it most likely is since it’s directly related to the users. So any ideas on how to repair this? I’ve tried everything suggested above.

Posted: Wednesday Oct 17th, 2012 at 8:27 am #28669

So I’m hoping this isn’t the reason my EOT is not updating and demoting users, but I’m sure it most likely is since it’s directly related to the users.

About that, it’s possible that your wp-cron is not working correctly. That may be caused by another plugin. Could you test this deactivating the other plugins and setting a test account’s EOT time in the past to see if the demotion happens soon after?

You can also use a normal cronjob instead of WP’s. [hilite path]Dashboard -› s2Member® -› PayPal® Options -› Automatic EOT Behavior -> Enable[/hilite]

Ok, I think I resolved the site name repetition issue. I also now have the custom registration field options again. Not sure why that was causing such an issue there.

I’m glad that part got solved.

I am still not able to edit users without getting the error message:

This time I didn’t see the error in the profile page, but did when saving the profile. The one I got says:

Warning: Cannot modify header information – headers already sent by (output started at /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/users-list-in.inc.php:1) in /home/content/25/8474825/html/americanmusclehunks/wp-includes/pluggable.php on line 881

It says the headers were already sent in line 1 of that file, so I’m guessing you may have a space or linebreak before the opening PHP tag there.

Posted: Wednesday Oct 17th, 2012 at 10:01 pm #28790

Not a plugin issue. All deactivated still has this error after input of EOT and updating:

Warning: Cannot modify header information – headers already sent by (output started at /home/content/25/8474825/html/americanmusclehunks/wp-content/plugins/s2member/includes/classes/users-list-in.inc.php:1) in /home/content/25/8474825/html/americanmusclehunks/wp-includes/pluggable.php on line 881

There’s no space or linebreak in the opening PHP tag. Next suggestion?

Posted: Thursday Oct 18th, 2012 at 8:58 am #28827

Right, I looked at the file too and it looks okay. I emailed Jason asking him about it.

Posted: Thursday Oct 18th, 2012 at 9:17 am #28831

Ok, thanks. :)

Posted: Wednesday Oct 24th, 2012 at 7:26 am #29495
Staff Member

Thanks for the heads up on this thread.

@ Christopher Downey

I’m very sorry to hear that you’re having so many problems. Based on Cristian’s investigation, it appears to me that you have a corrupted database. Or, at the very least, there is corruption in the Custom Registration/Profile Fields that you’ve configured for s2Member.

Cristian has pointed out that the UI panel is no longer able to load your existing configuration due to this corruption. In light of this, if you’d like us to review your installation and attempt to repair your database, please complete the steps below.

1. Backup your entire site. Including your entire WP file/directory structure and your MySQL database too.
2. Submit a Dashboard login and FTP access via this private contact form.
s2Member® » Private Contact Form

Posted: Wednesday Oct 24th, 2012 at 9:56 am #29515
Staff Member
We have your contact info and site details on file.
Thanks for the heads up on that Cristian. We’ll take a look at this tomorrow for you.
Posted: Wednesday Oct 24th, 2012 at 11:02 am #29520

Ok, I think everything is backed-up. Let me know if you are going to do anything drastic, though :)

Posted: Friday Oct 26th, 2012 at 6:18 am #29737

Christopher, I just tested this again, saving the test user’s profile and, instead of the “headers already sent” error, said “user updated”. So that seems to be take care of.

I saved an EOT time in the past for the test user, but didn’t see the demotion happen. You may want to check again tomorrow.

I still suspect wp-cron not working properly because of some other plugin’s fault. You should test deactivating other plugins to sort this out, or change s2Member’s auto EOT behavior to use your own cron-job, as I mentioned earlier. http://www.s2member.com/forums/topic/eot-not-working-for-paypal-or-ccbill/#post-28669

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

This topic is closed to new replies. Topics with no replies for 2 weeks are closed automatically.

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.