• I am running:

    WooCommerce
    WooCommerce Memberships
    WooCommerce Subscritptions
    WooCommerce Stripe Gatewey
    Kadence WooCommerce Email Designer
    My annual membership renewal drive is about to start – and I am running into a serious problem.

    (just to be sure – I have tested this with almost all plugins deactivated – and the only thing that triggers my problem is: Activate Kadence, or don’t activate Kadence. I also just updated to the brand-new version 1.5.7)

    The problem:

    With the Email Deisgner active, my “manual renewal” process in Subscriptions is breaking down.

    If a customer requests a manual renewal and goes through checkout, a renewal order is created, the payment on the payment gateway succeeds (customer card gets charged), but in the order notes, instead of the message “Order status changed from Pending payment to Completed.”, I get “Error during status transition. Invalid order.”
    At this point in time, the renewal process stops, a next payment date is not set, and the subscription remains on hold.
    Also, no emails are being sent, neither to the customer nor to the administrator.

    This happens ONLY on renewals orders (new subscription purchases or product purchases work fine, including sending of emails).

    This happens ONLY if the renewal goes through the checkout process (= it is a manual renewal or it is an early renewal) – fully automated renewals do not encounter the problem.

    Any way how to analyze this or get it fixed? (my annual renewal drive is supposed to start on Friday…

    The page I need help with: [log in to see the link]

Viewing 9 replies - 1 through 9 (of 9 total)
  • hannah

    (@hannahritner)

    Hi,
    Thanks for reaching out and apologies for the delay. I will check in with our dev team and see if they can determine the issue.
    Thanks for your patience!

    Kindly,
    Hannah

    Hi,
    We also use our plugin for manual renewals on our website without any issues; I can’t think of any way our plugin would be the cause. Can you please send what is in your PHP error logs?

    Ben

    Thread Starter braunsch

    (@braunsch)

    Did not get the PHP error logs (yet) – but I found this here when preparing a WordPress log. Not sure if this helps.

    I will see that I get PHP logs as well

    [01-Oct-2022 00:07:07 UTC] status was called incorrectly. Order properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action('wc_ajax_checkout'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_Stripe->process_payment, WC_Stripe_Payment_Gateway->process_response, WC_Order->payment_complete, apply_filters('woocommerce_payment_complete_order_status'), WP_Hook->apply_filters, sp_autocomplete_paid_virtual_orders, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
    [01-Oct-2022 00:07:07 UTC] status was called incorrectly. Order properties should not be accessed directly. Backtrace: require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action('wc_ajax_checkout'), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_Stripe->process_payment, WC_Stripe_Payment_Gateway->process_response, WC_Order->payment_complete, apply_filters('woocommerce_payment_complete_order_status'), WP_Hook->apply_filters, sp_autocomplete_paid_virtual_orders, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
    Thread Starter braunsch

    (@braunsch)

    Another addition: Created the PHP log – it has three lines:
    [01-Oct-2022 01:23:36 UTC] status was called incorrectly. Order properties should not be accessed directly. Backtrace: require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), do_action(‘template_redirect’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action(‘wc_ajax_checkout’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_Stripe->process_payment, WC_Stripe_Payment_Gateway->process_response, WC_Order->payment_complete, apply_filters(‘woocommerce_payment_complete_order_status’), WP_Hook->apply_filters, sp_autocomplete_paid_virtual_orders, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
    [01-Oct-2022 01:23:36 UTC] status was called incorrectly. Order properties should not be accessed directly. Backtrace: require(‘wp-blog-header.php’), require_once(‘wp-includes/template-loader.php’), do_action(‘template_redirect’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::do_wc_ajax, do_action(‘wc_ajax_checkout’), WP_Hook->do_action, WP_Hook->apply_filters, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_Stripe->process_payment, WC_Stripe_Payment_Gateway->process_response, WC_Order->payment_complete, apply_filters(‘woocommerce_payment_complete_order_status’), WP_Hook->apply_filters, sp_autocomplete_paid_virtual_orders, WC_Abstract_Legacy_Order->__get, wc_doing_it_wrong. This message was added in version 3.0.
    [01-Oct-2022 01:23:36 UTC] The WC_Abstract_Legacy_Order::get_product_from_item function is deprecated since version 4.4.0. Replace with $item->get_product().`

    Thread Starter braunsch

    (@braunsch)

    Hello Ben –

    More testing from my side.
    I have another plugin (“WooCommerce Auto-complete orders” – which prevents all my orders for virtual products, like memberships, from hanging in “Processing” status.

    Once I deactivate that plugin I am not getting any message in my PHP error log.

    To further my testing, I activated every plugin related to WooCommerce – including Stripe (using “Cash on Delivery” instead). Unfortunately, my error did not go away: Manual renewal orders for subscriptions show the message “Error during status transition. Invalid order.” when Kadence Email Designer is active – and “Order status changed from Pending payment to Completed.” if I deactivate Kadence WooCommerce Email Designer.

    Hmm, that is odd. I can’t recreate the issue. I tried setting up a subscription product and manually renewing.

    The error you are seeing comes from https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/includes/class-wc-order.php#L432

    Our plugin doesn’t have any code that interacts with order status transition. But the error you are seeing clearly happens during the order status transition and somehow the order is “invalid”.

    Have you tested with just our plugin and woocommerce active? Whats a path I can use to recreate this?

    Thread Starter braunsch

    (@braunsch)

    I have tested this with every plugin deactivated except for
    – WooCommerce
    – WooCommerce Memberships
    – WooCommerce Subscriptions
    – Disable Emails

    This works. My order shows the message, “Payment to be made upon delivery. Order status changed from Pending payment to Processing”. My subscription is correctly updated. (note: I chose “Cash on Delivery” so that I could deactivate Stripe as well).

    Now I activate, as a 5th plugin,
    – Kadence WooCommerce Email Designer

    When repeating the renewal process, I get two order notes: The same as above, and a second one saying “Error during status transition. Invalid order”. The subscription is not updated and remains on hold.

    So, There isn’t much more I can deactivate…

    When you ask, “what’s a path I can use to recreate this?” – I can give you a test login to a staging system so that you can recreate this – but not sure how to send the credentials to you in a confidential manner.

    I appreciate your help!

    Georg

    Hey,

    I added Disable Emails just to make sure I was using the same setup as you. Still didn’t get any issues.

    I don’t want access that isn’t allowed on .org forums. I was just trying to make sure I understood the exact steps I needed to try and recreate on my own setup.

    Have you tried going to woocommerce > status > tools. There you can:

    1. Update database.
    2. Verify base database tables.

    Are you using any plugins that are not updated? Perhaps that is why I can’t recreate it.

    Ben

    Thread Starter braunsch

    (@braunsch)

    Hello Ben –

    Thank you for your continued support!

    I just ran a “Verify Database”, and I also ran an “Update Database – even though the database version matches the WooCommerce version.
    System and ll plug-ins are on the latest available patch level:

    WordPress: 6.0.2
    WooCommerce 6.9.4
    WC Memberships 1.23.1
    WC Subscriptions 4.5.1
    Kadence 1.5.7

    Here is an interesting twist to this problem:

    I just exported my Kadence configuration, creating the “kadence-woomail-designer-export.json file.
    Then I reset the Email designer to all default settings.
    I ran my manual renewal – and it succeeded.

    Then, I re-imported the file with the configuration settings. Together with my settings, the error came back, too.

    This shows, to my mind, that the error is somewhere within the Kadence plugin – Apparently I have some configuration in my setup that broke, maybe with an update of the plugin. It also explains why you can’t recreate the error: I assume you just used the standard settings in the email designer plugin, and there, it works.

    Is there a way to send you my Kadence email configuration settings file?

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘Kadence Email Designer breaking manual subscription renewal process’ is closed to new replies.