Investigation completed.~ My findings are listed below.
I verified that
$_GET vars are NOT the issue.
Instead, it seems that you may have another plugin on your site that is interfering with the WordPress core framework functions
get_transient() and
set_transient(). On your installation, nothing happens upon return from checkout, because the temporary Express Checkout TOKEN that s2Member stores as a WordPress transient value is no longer available. This is not normal, and my guess is that another plugin you're running is somehow filtering and/or discarding the Express Checkout Token
( i.e. the Transient database entry ) long before it should.
This is a plugin conflict.Suggestion resolution.You already have the PHP Execution plugin installed
( so you're good there ).
I've created a Test Page on your site that reproduces this bug on your installation.
Inside the Test Page that I created
( it's a Draft ), I've added this code.
- Code: Select all
<?php
$array = array(1,3,4);
$token = "ExpressCheckoutToken";
set_transient("s2m_".md5("s2member_transient_express_checkout_".$token), $array, 10800);
print_r(get_transient("s2m_".md5("s2member_transient_express_checkout_".$token)));
?>
Upon previewing this page, you should see:
array(1,2,3).
Now, to complete the test, comment this line out:
- Code: Select all
<?php
$array = array(1,3,4);
$token = "ExpressCheckoutToken";
print_r(get_transient("s2m_".md5("s2member_transient_express_checkout_".$token)));
?>
Preview the page again, you should still see:
array(1,2,3). If you don't still see this, and right now, you won't, because of this bug on your installation; then it means something else is discarding the Transient value when it should NOT be. So to find the bug, try disabling other plugins one at a time until this test succeeds; and you consistently see:
array(1,2,3), even with the line commented out.
I would start by eliminating any caching plugins, as these would be the most likely culprits.
Not always, but it might be a good place to start.