Multiple issues with S2Member, S2 roles don't get applied

Hello,

I’ve just “inherited” a website that is using S2Member. I have installed the S2Member tester few days ago and it passes all checks. The website S2 Member used to work, then it stopped.

I have mainly two issues with it:

  1. Existing users, including those who had previously paid and subscribed to the website (then subscription expired and now they are resubscribing again) don’t get S2 roles applied after they pay. The logs say: “Storing IPN signup vars into a Transient Queue” as it should. Here’s an example, where I have asterisked private informations:
# IPN log
LOG ENTRY: Sat Mar 5th, 2016 @ precisely 12:18 pm UTC
PHP v5.5.9-1ubuntu4.14 :: WordPress v4.4.2 :: s2Member v160303
Memory 14.96 MB :: Real Memory 15.50 MB :: Peak Memory 15.19 MB :: Real Peak Memory 15.50 MB
www.pricefxgroup.com/?s2member_paypal_notify=1
User-Agent: PayPal IPN ( htt***www.paypal.com/ipn ) => Must make this a non link else I cannot post here!
Array
(
    [mc_gross] => 50.00
    [invoice] => 56dace5234647~151.62.111.157
    [protection_eligibility] => Ineligible
    [payer_id] => 6V3R7Z6TNXG64
    [tax] => 0.00
    [payment_date] => 04:18:31 Mar 05, 2016 PST
    [payment_status] => Completed
    [charset] => windows-1252
    [first_name] => S****o
    [option_selection1] => www_pricefxgroup_com  => had to replace dots with _ else I couldn't post.
    [option_selection2] => 151.62.111.***
    [mc_fee] => 2.05
    [notify_version] => 3.8
    [custom] => www_pricefxgroup_com
    [payer_status] => verified
    [business] => premium@pricefxgroup.com
    [quantity] => 1
    [verify_sign] => Av8RT.d3Re8HSAcsT90DP9VsMmJEAT5aRmN6BNVMEc6B15fWjNDaKP2S
    [payer_email] => ***********@live.it
    [option_name1] => Originating Domain
    [option_name2] => Customer IP Address
    [txn_id] => 2B681562KV412723J
    [payment_type] => instant
    [last_name] => C*******e
    [receiver_email] => d******1@gmail.com
    [payment_fee] => 
    [receiver_id] => KU********XD4
    [txn_type] => web_accept
    [item_name] => Accesso per tre mesi, senza rinnovo automatico
    [mc_currency] => EUR
    [item_number] => 2::3 M
    [residence_country] => IT
    [handling_amount] => 0.00
    [transaction_subject] => 
    [payment_gross] => 
    [shipping] => 0.00
    [ipn_track_id] => 4ca59992ac4f6
    [s2member_log] => Array
        (
            [0] => IPN received on: Sat Mar 5, 2016 12:18:41 pm UTC
            [1] => s2Member POST vars verified through a POST back to PayPal.
            [2] => s2Member originating domain (`$_SERVER["HTTP_HOST"]`) validated.
            [3] => s2Member `txn_type` identified as ( `web_accept|subscr_signup` ).
            [4] => s2Member `txn_type` identified as ( `web_accept|subscr_signup` ) w/o update vars.
            [5] => Signup Confirmation Email sent to: "S*********e" <s********e@live.it>.
            [6] => Storing `payment` for Subscription via ( `web_accept` ).
            [7] => Creating an IPN response for `subscr_payment`. This will go into a Transient Queue; and be processed during registration.
            [8] => Storing IPN signup vars into a Transient Queue. These will be processed on registration.
        )

    [subscr_gateway] => paypal
    [subscr_id] => 2B68*********2723J
    [subscr_baid] => 2B68*********2723J
    [subscr_cid] => 2B68*********2723J
    [eotper] => 3 M
    [ccaps] => 
    [level] => 2
    [ip] => 151.62.111.***
    [period1] => 0 D
    [mc_amount1] => 0.00
    [period3] => 3 M
    [mc_amount3] => 50.00
    [initial_term] => 0 D
    [initial] => 50.00
    [regular] => 50.00
    [regular_term] => 3 M
    [recurring] => 0
    [currency] => EUR
    [currency_symbol] => €
)

However they remain at “subscriber” role and no field in the user table is getting filled. It used to.

This is the Paypal button being used:

# Button shortcode
[s2Member-PayPal-Button level="2" ccaps="" desc="Accesso per tre mesi, 
senza rinnovo automatico" ps="paypal" lc="IT" cc="EUR" dg="0" ns="1" 
custom="www_pricefxgroup_com" ta="0" tp="0" tt="D" ra="50" rp="3" rt="M"
 rr="BN" rrt="" rra="1" 
image="ht*****paypal_com/it_IT/i/btn/btn_xpressCheckout.gif" 
output="button" /]

Here’s core-rtn log:

# Core rtn
LOG ENTRY: Sat Mar 5th, 2016 @ precisely 12:18 pm UTC
PHP v5.5.9-1ubuntu4.14 :: WordPress v4.4.2 :: s2Member v160303
Memory 10.05 MB :: Real Memory 10.50 MB :: Peak Memory 10.20 MB :: Real Peak Memory 10.50 MB
www.pricefxgroup.com/?s2member_paypal_return=1&s2member_paypal_return_tra=fnIyOkdCY21Kd3YyZUMzajd5U05wVGQ0QXhZQXVRRTZaVkVWOjJiZDUzNmU5ZDVmOTVjZGQ4YjYzYTQxMmMyZmNiZjJlfBtwXooSAF2QwV8VIPuDu%5f6IbvwPy5D2y3dTykQu77aDYAkr8nGhYyQflJoVaDxZf6iq1mcI713yfwOWTsqePmGNK4HJuGA6GxiJD5w6wL4ZGHpcuasRlKE0REO%2dFnA4EXkrtkgQtgg2lnhPjqcUjjQd5CpDHteoNnuNNOYCiNek8kbmTSe5p0hiieHmWHGMGy0vTIQp53ToNOcwvz6NMFevLvcZ73vjKiA2PYLDZcPvvxC1OmseyYGeYTrppZ%2dlVCgslE1s81Hu3oEXk%5f1mVO1Am5P0eJhCL3jBiQDfV2XJ4Yc0%2dpl%5fLwcOI5CVV3GAf956Vnm%2dXlVUEjNV3l7v0GKh1xbLbEShXqU%5fdG0INaHjLhPwXBWJf5tJ1lQk1Eznig&tx=2B681562KV412723J&st=Completed&amt=50%2e00&cc=EUR&cm=www%2epricefxgroup%2ecom&item_number=2%3a%3a3%20M
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
Array
(
    [mc_gross] => 50.00
    [invoice] => 56dace5234647~151.62.111.***
    [protection_eligibility] => Ineligible
    [payer_id] => 6V3*****XG64
    [tax] => 0.00
    [payment_date] => 04:18:31 Mar 05, 2016 PST
    [payment_status] => Completed
    [charset] => windows-1252
    [first_name] => S***o
    [option_selection1] => www_pricefxgroup_com
    [option_selection2] => 151.62.111.***
    [mc_fee] => 2.05
    [custom] => www_pricefxgroup_com
    [payer_status] => verified
    [business] => premium@pricefxgroup.com
    [quantity] => 1
    [payer_email] => s**************e@live.it
    [option_name1] => Originating Domain
    [option_name2] => Customer IP Address
    [txn_id] => 2B68*********23J
    [payment_type] => instant
    [last_name] => C*********e
    [receiver_email] => d********1@gmail.com
    [receiver_id] => KU**********JXD4
    [txn_type] => web_accept
    [item_name] => Accesso per tre mesi, senza rinnovo automatico
    [mc_currency] => EUR
    [item_number] => 2::3 M
    [residence_country] => IT
    [handling_amount] => 0.00
    [shipping] => 0.00
    [s2member_log] => Array
        (
            [0] => Return-Data received on: Sat Mar 5, 2016 12:18:41 pm UTC
            [1] => s2Member POST vars verified through a POST back to PayPal.
            [2] => s2Member originating domain ( `$_SERVER["HTTP_HOST"]` ) validated.
            [3] => s2Member `txn_type` identified as ( `web_accept|subscr_signup|subscr_payment` ).
            [4] => s2Member `txn_type` identified as ( `web_accept|subscr_signup|subscr_payment` ) w/o update vars.
            [5] => Registration Cookies set on ( `web_accept|subscr_signup|subscr_payment` ) w/o update vars.
            [6] => Transient Tracking Cookie set on ( `web_accept|subscr_signup|subscr_payment` ) w/o update vars.
            [7] => Redirecting Customer to Registration Page (after displaying a quick thank-you message). They need to Register now.
        )

    [subscr_gateway] => paypal
    [subscr_id] => 2B68*********23J
    [subscr_baid] => 2B68*********23J
    [subscr_cid] => 2B68*********23J
    [eotper] => 3 M
    [ccaps] => 
    [level] => 2
    [ip] => 151.62.111.***
    [period1] => 0 D
    [mc_amount1] => 0.00
    [period3] => 3 M
    [mc_amount3] => 50.00
    [initial_term] => 0 D
    [initial] => 50.00
    [regular] => 50.00
    [regular_term] => 3 M
    [recurring] => 0
    [currency] => EUR
    [currency_symbol] => €
    [s2member_paypal_return_tra] => fnIyOkdCY21Kd3YyZUMzajd5U05wVGQ0QXhZQXVRRTZaVkVWOjJiZDUzNmU5ZDVmOTVjZGQ4YjYzYTQxMmMyZmN<snip>)

I have read that S2Member should attach a customer ID to the user so it can match it with the payment transaction. None of this happens.

  1. I have the same identical issue with newly created users who didn’t exist at all, yet they still get the “Storing IPN signup vars into a Transient Queue” despite they register after the payment (!!!).
    If you want I may post their IPN logs etc, but they are basically identical to the above.

Best regards

Still getting people registering left and right, and not a single of them gets assigned a S2Member role!

OK, I’ll bite.

You have almost certainly got a conflict with another plugin. You’ve got two captchas on your registration form for a start!

Hello Tim,

thank you for replying!

Could you please hint me which kind of plugin could potentially be in conflict?

Here’s the full, interactive list of every installed plugin. I am going to remove it when I’ve (hopefully!) got a reply.

Best regards,
Dario

Just taken a look. I don’t see a list there!

I apologize, Tim.

The domain registrar decided that the best time to switch the domain to another host was exactly right before you clicked.

Now it works.

Well, the only way to be sure is to deactivate them all, switch to a default theme, and see if the problem disappears. If it does, you had a conflict. Then reactivate things one by one and test each time to see when the problem recurs. (Ideally, you want to do this on a test site.)

But these are the plugins I’d suggest looking at particularly closely. I’m not suggesting there’s anything inherently wrong with them; just that they seem more likely to cause a conflict:

Ez Overlay 1.0
FancyBox for WordPress 3.0.6
Really Simple CAPTCHA 1.8.0.1
SI CAPTCHA Anti-Spam 2.7.7.7 (Why do you have two CAPTCHAs?)
Stop Spammers Spam Control 6.15
WP Tabs Slides 2.0.3
Acunetix WP Security 4.0.5
PayPal Donations 1.9.2
W3 Total Cache 0.9.4.1 (I’d start with this one; you need to get its settings right, or else use Comet Cache, which I highly recommend)
WP-Polls 2.72
WP-PostRatings 1.83.2

Thank you!

Several of the plugins you mentioned are in the “disabled plugins” list. In particular, W3TC is usually a protagonist at trouble making so I disable it at the first sign of issues and so it’s disabled.

As for the 2 CAPTCHAs, they were installed because there are two other plugins that require each of them otherwise they don’t activate. Anyway I am going to do as you suggest.

Best regards,
Dario