From 7ef4fef53a44da906eca8c1e74a4ff8af9a067b0 Mon Sep 17 00:00:00 2001 From: Willington Vega Date: Wed, 25 Jan 2023 20:25:27 -0500 Subject: [PATCH] Fix dynamic property creation warning in `class-woocommerce.php` (#36545) Declares $api as a public property to the WooCommerce class in order to avoid a deprecation warning that will eventually be an error in upcoming PHP versions. --- ...namic-property-creation-in-woocommerce-class | 4 ++++ .../woocommerce/includes/class-woocommerce.php | 7 +++++++ .../php/includes/class-woocommerce-test.php | 17 +++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 plugins/woocommerce/changelog/fix-35763-dynamic-property-creation-in-woocommerce-class create mode 100644 plugins/woocommerce/tests/php/includes/class-woocommerce-test.php diff --git a/plugins/woocommerce/changelog/fix-35763-dynamic-property-creation-in-woocommerce-class b/plugins/woocommerce/changelog/fix-35763-dynamic-property-creation-in-woocommerce-class new file mode 100644 index 00000000000..c085174dd96 --- /dev/null +++ b/plugins/woocommerce/changelog/fix-35763-dynamic-property-creation-in-woocommerce-class @@ -0,0 +1,4 @@ +Significance: patch +Type: fix + +Define a public `api` property in the WooCommerce class to prevent a PHP deprecation warning diff --git a/plugins/woocommerce/includes/class-woocommerce.php b/plugins/woocommerce/includes/class-woocommerce.php index de40de7fc70..7e3ece0d6bb 100644 --- a/plugins/woocommerce/includes/class-woocommerce.php +++ b/plugins/woocommerce/includes/class-woocommerce.php @@ -65,6 +65,13 @@ final class WooCommerce { */ public $query = null; + /** + * API instance + * + * @var WC_API + */ + public $api; + /** * Product factory instance. * diff --git a/plugins/woocommerce/tests/php/includes/class-woocommerce-test.php b/plugins/woocommerce/tests/php/includes/class-woocommerce-test.php new file mode 100644 index 00000000000..a048cd20669 --- /dev/null +++ b/plugins/woocommerce/tests/php/includes/class-woocommerce-test.php @@ -0,0 +1,17 @@ +assertTrue( $property->isPublic() ); + $this->assertInstanceOf( WC_API::class, $property->getValue( WC() ) ); + } +}