Support » Plugin: Jetpack - WP Security, Backup, Speed, & Growth » Deprecated: WC_Abstract_Legacy_Order::get_product_from_item is deprecated since

  • Resolved jforme

    (@jforme)


    I am facing this error in WooCommerce Checkout page in my local development site, not able to provide the link.

    Deprecated: WC_Abstract_Legacy_Order::get_product_from_item is deprecated since version 4.4.0! Use $item->get_product() instead. in C:\Utilities\laragon\www\arteescorp\wp-includes\functions.php on line 4773

    Then I investigated and found that the following file is the problem.

    C:\Utilities\laragon\www\arteescorp\wp-content\plugins\jetpack\modules\woocommerce-analytics\classes\class-jetpack-woocommerce-analytics-universal.php (1 hit)
    Line 283: $product = $order->get_product_from_item( $order_item );

    I went ahead and changed line 283 to this and problem went away, please fix the plugin to take care of this issue.

    Line 283: $product = $order_item->get_product();

    Wanted to report as it could be helpful for others.

    Thanks.

Viewing 9 replies - 1 through 9 (of 9 total)
  • Plugin Contributor James Huff

    (@macmanx)

    Volunteer Moderator

    What is the URL of the site with the problem, and what version of Jetpack and WooCommerce are you running?

    forgetme

    (@forgetme)

    @macmanx
    I’m seeing this as well in my debug logs, I followed the path mentioned above and sure enough it is Jetpack causing this.

    URL for my site is: https://forgetmeknot.co

    WordPress 5.5
    Woocommerce 4.4.1
    Jetpack 8.8.2

    Original Code (Lines 281-283):

    
    		// loop through products in the order and queue a purchase event.
    		foreach ( $order->get_items() as $order_item_id => $order_item ) {
    			$product = $order->get_product_from_item( $order_item );
    
    Plugin Support KokkieH

    (@kokkieh)

    Hi there,

    Just to clarify, are you seeing this error in the debug logs only, or on the site itself? Put differently, what’s the symptoms of the issue/what doesn’t work the way it should?

    And what steps can we follow on our end to replicate this?

    Once I have those details for our developers I’ll make sure this is reported to them.

    @jforme if you have a GitHub account you’re also welcome to report it yourself at https://github.com/Automattic/jetpack/issues/new?template=bug_report.md, and you can even create your own pull-request to submit your fix if you wanted to.

    I am getting the error on the checkout page. After an order is submitted.
    I am still in the stripe test phase so this is not public yet but I expected to go live tomorrow.

    Deprecated: WC_Abstract_Legacy_Order::get_product_from_item is deprecated since version 4.4.0! Use $item->get_product() instead. in (My root dir)\wp-includes\functions.php on line 4773

    I made the exact change that @jforme posted (thank you), refreshed the checkout page and the error was gone. I then ran another test order without error. That live specifically is causing issues. I have recently installed and updated most everything for this site.
    Elementor Version 3.0.3
    Elementor Pro Version 2.10.3
    Google Analytics for WordPress by MonsterInsights Version 7.12.2
    Jetpack by WordPress.com Version 8.8.2
    WooCommerce Version 4.4.1
    WooCommerce Admin Version 1.4.0
    WooCommerce Services Version 1.24.1
    WooCommerce Stripe Gateway Version 4.5.2

    Plugin Support KokkieH

    (@kokkieh)

    I’m not able to replicate this issue on a test site, but I’ve reported it to our developers in https://github.com/Automattic/jetpack/issues/17071 so they can take a closer look.

    I am getting this same error on my INVOICE.

    Deprecated: WC_Abstract_Legacy_Order::get_product_from_item is deprecated since version 4.4.0! Use $item->get_product() instead. in /hermes/walnacweb06/walnacweb06al/b1319/pow.yarlungrecords/htdocs/yarlungrecords-site/wp-includes/functions.php on line 4773

    Plugin Contributor James Huff

    (@macmanx)

    Volunteer Moderator

    Please follow along at https://github.com/Automattic/jetpack/issues/17071 for any updates.

    elevatenet

    (@elevatenet)

    Testing with Microsoft Edge
    Ran updates on the page and the errors returned, it seems the updated removed my code fix:

    Deprecated: WC_Abstract_Legacy_Order::get_product_from_item is deprecated since version 4.4.0! Use $item->get_product() instead. in **(Server folder location)**\wp-includes\functions.php on line 4773

    Deprecated: WC_Abstract_Legacy_Order::get_product_from_item is deprecated since version 4.4.0! Use $item->get_product() instead. in **(Server folder location)**\wp-includes\functions.php on line 4773

    Deprecated: WC_Abstract_Legacy_Order::get_product_from_item is deprecated since version 4.4.0! Use $item->get_product() instead. in **(Server folder location)**\wp-includes\functions.php on line 4773

    As noted above – \wp-content\plugins\jetpack\modules\woocommerce-analytics\classes\class-jetpack-woocommerce-analytics-universal.php

    Line 283: $product = $order->get_product_from_item( $order_item );

    I changed line 283 to: Line 283: $product = $order_item->get_product();

    Once again, once the code was changed / saved and the page refreshed the errors were gone.
    Placed a new test order without error.
    Please fix before releasing the next update. I do not want to have to keep fixing the code because of updates. Thank you

Viewing 9 replies - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.