Pro Sites second blog sign-up issue

I'm having an issue with Pro Sites where a user who already has a site, attempted to sign up for a secondary site and use a different credit card. He went through the process of choosing a template, then his Pro SIte level, then he put in the site name and url and then the credit card information. Then the page showed up like a blog post and it appeared like nothing was done.

In the background, what happened was, his previous credit card with already active site was charged and a new site was created but the Pro Sites subscription data didn't exist. Please advice.

  • Nahid
    • Tech Support

    Hey Ben !
    Hope you are having a great day!

    Nahid here, following up from our last Live Chat session. We tried to replicate the reported issue on our test sites but couldn't. We followed the exact replication steps provided in the chat session and here's what we got:
    1. Stripe subscription data was updated in the right blog.
    2. The correct credit card was charged.
    3. The Pro Sites checkout thank you page displayed as expected.

    This does look like an issue specific to your site only. To determine the source of the issue, could you please back the site up or create a cloned staging site and go through the following troubleshooting tests?

    1. Plugin/theme conflict test: Try running a plugin/theme conflict test just to make sure no other plugin(s)/themes on your site is/are conflicting with Domain Mapping and causing the issue. The basic concept is to temporarily disable all the plugins (network-wide and site-wise activated) except Domain Mapping (and WPMU DEV Dashboard), switch to a default WordPress theme and check if the issue still persists. If it doesn't, please enable all plugins and the theme one after another to see activating which brings back the issue. This handy flowchart can help you do a plugin/theme conflict test.

    2. Enable debugging: If the plugin/theme conflict test doesn't help, please enable WP_DEBUG and provide us with the output of your debug.log file. You can enable debugging by putting the following constants in the wp-config.php file:

    // Enable WP_DEBUG mode
    define( 'WP_DEBUG', true );
    // Enable Debug logging to the /wp-content/debug.log file
    define( 'WP_DEBUG_LOG', true );
    // Disable display of errors and warnings
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );

    These constants must be added before the line "/* That's all, stop editing! Happy blogging. */" for them to work. Please make sure identical constants are replaced if they were already there previously.

    Enabling debugging in WordPress will log any errors that the site encounters in a log file named "debug.log" located in the "wp-content" folder. Please upload the debug.log file in a cloud storage platform like Dropbox and attach the shared link in your next response so that we can take a look into it. You can know more about WordPress debugging in this handy article.

    Note: it is highly recommended that you back the site up before going through the troubleshooting tests.

    Moreover, could you also let us know which Stripe API version are you using in your next response?

    Hope this helps. We'll be looking forward to hearing back from you. Thanks!

    Kind regards,

  • Nahid
    • Tech Support

    Hey Ben !
    Hope you are doing well today!

    Unfortunately, it'd not be possible for us to provide access into our test sites to our members. The report was tested by myself and one of my colleagues. I've mentioned my environment details and replication steps in detail here in order to help you review our replication tests:

    Environment Specifications:
    Web Server: Apache
    PHP Version: 7.2.0
    MySQL Version: 5.6
    WordPress Version: 4.9.5
    Theme: Twenty Seventeen 1.5
    Installed Plugins: Pro Sites 3.5.9 (with default settings) and WPMU DEV Dashboard 4.5.2.

    Replication Steps:
    1. Logged in to the network and signed up for a blog with a Visa card with Stripe as the gateway.
    2. Without logging out, signed up for a second blog with an American Express card with the same gateway.
    (Template from New Blog Templates was used in both the steps).

    Here's a screenshot showing that the subscription data had been updated in the respective blogs:

    With that said, would you be able to set up a cloned staging site for us to test so that you do not have to deconstruct your setup? You can do so by following this handy guide. Please run the troubleshooting tests mentioned in my previous response on the cloned staging site.

    Hope this helps. We'll be looking forward to hearing back from you. Thanks!

    Kind regards,

  • Ben
    • The Reaper


    In case you want to keep up with this issue, I have only been responding to here:

    And what I have found is that previous versions of pro-sites created the table pro_sites_stripe_customers differently putting a key index on the wrong tables...not sure what was going on. As a result when updates were made to the plugin, this table wasn't updated. Or it may have tried to be updated but proper error checking for it being updated was performed (I documented certain scenarios where an update to this table could fail based on existing subscription data existing with empty fields), there would be an error.

    Because try/fail style error statements are persistent in the coding behind the scenes...these bugs silently create problems because there was a false expectation that the database was set up or updated properly...QA never tested that the plugin perhaps previously set up the database differently when people originally installed it. You didn't test properly against people installing originally from a previous the lesson is...this needs to be tested as not everybody is installing from a clean install.

    Programming is hard, but good QA needs to sometimes remove all expectations, and use "try" statements around any block of code that has expectations of being rock-solid.

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.