Commit 66a75447ea for woocommerce

commit 66a75447ea80b5ba1c430f4e382721ee7b2b8f03
Author: Michael Pretty <prettyboymp@users.noreply.github.com>
Date:   Mon Feb 9 11:16:09 2026 -0500

    Add @return PHPDoc annotations (batch 3) - reduces baseline by 149 errors (#63149)

    Add @return PHPDoc annotations to reduce PHPStan baseline (batch 3)

    Adds missing @return type annotations to 150 methods across 5 files:
    - class-wc-admin-notices.php (32 methods)
    - class-wc-coupon.php (31 methods)
    - class-wc-post-data.php (31 methods)
    - class-wc-helper.php (28 methods)
    - abstract-wc-order.php (28 methods)

    PHPStan baseline reduction: 16,767 → 16,618 (-149 errors)

    Part of: WOOPRD-2129

    Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

diff --git a/plugins/woocommerce/changelog/fix-phpstan-return-types-batch-3 b/plugins/woocommerce/changelog/fix-phpstan-return-types-batch-3
new file mode 100644
index 0000000000..41f3293e82
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-phpstan-return-types-batch-3
@@ -0,0 +1,4 @@
+Significance: patch
+Type: dev
+
+Add missing @return PHPDoc annotations to 5 files, reducing PHPStan baseline by 149 errors (batch 3).
diff --git a/plugins/woocommerce/includes/abstracts/abstract-wc-order.php b/plugins/woocommerce/includes/abstracts/abstract-wc-order.php
index 742949f2bb..ab1975c776 100644
--- a/plugins/woocommerce/includes/abstracts/abstract-wc-order.php
+++ b/plugins/woocommerce/includes/abstracts/abstract-wc-order.php
@@ -258,6 +258,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * @param Exception $e Exception object.
 	 * @param string    $message Message regarding exception thrown.
 	 * @since 3.7.0
+	 * @return void
 	 */
 	protected function handle_exception( $e, $message = 'Error' ) {
 		wc_get_logger()->error(
@@ -271,6 +272,8 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {

 	/**
 	 * Save all order items which are part of this order.
+	 *
+	 * @return void
 	 */
 	protected function save_items() {
 		$items_changed = false;
@@ -637,6 +640,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @since 3.0.0
 	 * @param int $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception thrown if parent ID does not exist or is invalid.
 	 */
 	public function set_parent_id( $value ) {
@@ -696,6 +700,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set order_version.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_version( $value ) {
@@ -706,6 +711,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set order_currency.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_currency( $value ) {
@@ -719,6 +725,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set prices_include_tax.
 	 *
 	 * @param bool $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_prices_include_tax( $value ) {
@@ -729,6 +736,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set date_created.
 	 *
 	 * @param  string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_date_created( $date = null ) {
@@ -739,6 +747,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set date_modified.
 	 *
 	 * @param  string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_date_modified( $date = null ) {
@@ -749,6 +758,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set discount_total.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_discount_total( $value ) {
@@ -759,6 +769,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set discount_tax.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_discount_tax( $value ) {
@@ -769,6 +780,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set shipping_total.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_shipping_total( $value ) {
@@ -779,6 +791,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set shipping_tax.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_shipping_tax( $value ) {
@@ -790,6 +803,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Set cart tax.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	public function set_cart_tax( $value ) {
@@ -801,6 +815,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Sets order tax (sum of cart and shipping tax). Used internally only.
 	 *
 	 * @param string $value Value to set.
+	 * @return void
 	 * @throws WC_Data_Exception Exception may be thrown if value is invalid.
 	 */
 	protected function set_total_tax( $value ) {
@@ -854,6 +869,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Remove all line items (products, coupons, shipping, taxes) from the order.
 	 *
 	 * @param string $type Order item type. Default null.
+	 * @return void
 	 */
 	public function remove_order_items( $type = null ) {

@@ -1158,6 +1174,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * @throws Exception When not able to apply coupon.
 	 *
 	 * @param string $billing_email Billing email of order.
+	 * @return void
 	 */
 	public function hold_applied_coupons( $billing_email ) {
 		$held_keys          = array();
@@ -1401,6 +1418,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * This method is public since WooCommerce 3.8.0.
 	 *
 	 * @since 3.2.0
+	 * @return void
 	 */
 	public function recalculate_coupons() {
 		// Reset line item totals.
@@ -1492,6 +1510,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @since 3.2.0
 	 * @param WC_Discounts $discounts Discounts class.
+	 * @return void
 	 */
 	protected function set_item_discount_amounts( $discounts ) {
 		$item_discounts = $discounts->get_discounts_by_item();
@@ -1520,6 +1539,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @since 3.2.0
 	 * @param WC_Discounts $discounts Discounts class.
+	 * @return void
 	 */
 	protected function set_coupon_discount_amounts( $discounts ) {
 		$coupons           = $this->get_items( 'coupon' );
@@ -1822,6 +1842,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * Will use the base country unless customer addresses are set.
 	 *
 	 * @param array $args Added in 3.0.0 to pass things like location.
+	 * @return void
 	 */
 	public function calculate_taxes( $args = array() ) {
 		do_action( 'woocommerce_order_before_calculate_taxes', $args, $this );
@@ -1873,6 +1894,8 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {

 	/**
 	 * Update tax lines for the order based on the line item taxes themselves.
+	 *
+	 * @return void
 	 */
 	public function update_taxes() {
 		$cart_taxes     = array();
@@ -2305,6 +2328,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @param array  $total_rows Reference to total rows array.
 	 * @param string $tax_display Excl or incl tax display mode.
+	 * @return void
 	 */
 	protected function add_order_item_totals_subtotal_row( &$total_rows, $tax_display ) {
 		$subtotal = $this->get_subtotal_to_display( false, $tax_display );
@@ -2323,6 +2347,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @param array  $total_rows Reference to total rows array.
 	 * @param string $tax_display Excl or incl tax display mode.
+	 * @return void
 	 */
 	protected function add_order_item_totals_discount_row( &$total_rows, $tax_display ) {
 		if ( $this->get_total_discount() > 0 ) {
@@ -2339,6 +2364,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @param array  $total_rows Reference to total rows array.
 	 * @param string $tax_display Excl or incl tax display mode.
+	 * @return void
 	 */
 	protected function add_order_item_totals_shipping_row( &$total_rows, $tax_display ) {
 		if ( $this->get_shipping_method() ) {
@@ -2356,6 +2382,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @param array  $total_rows Reference to total rows array.
 	 * @param string $tax_display Excl or incl tax display mode.
+	 * @return void
 	 */
 	protected function add_order_item_totals_fee_rows( &$total_rows, $tax_display ) {
 		$fees = $this->get_fees();
@@ -2379,6 +2406,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @param array  $total_rows Reference to total rows array.
 	 * @param string $tax_display Excl or incl tax display mode.
+	 * @return void
 	 */
 	protected function add_order_item_totals_tax_rows( &$total_rows, $tax_display ) {
 		// Tax for tax exclusive prices.
@@ -2406,6 +2434,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 *
 	 * @param array  $total_rows Reference to total rows array.
 	 * @param string $tax_display Excl or incl tax display mode.
+	 * @return void
 	 */
 	protected function add_order_item_totals_total_row( &$total_rows, $tax_display ) {
 		$total_rows['order_total'] = array(
@@ -2613,6 +2642,7 @@ abstract class WC_Abstract_Order extends WC_Abstract_Legacy_Order {
 	 * WARNING! If the Cost of Goods Sold feature is disabled this method will have no effect.
 	 *
 	 * @param float $value The value to set for this order.
+	 * @return void
 	 *
 	 * @internal This method is intended for data store usage only, the value set here will be overridden by calculate_cogs_total_value.
 	 */
diff --git a/plugins/woocommerce/includes/admin/class-wc-admin-notices.php b/plugins/woocommerce/includes/admin/class-wc-admin-notices.php
index 95e0e3587b..13b3081149 100644
--- a/plugins/woocommerce/includes/admin/class-wc-admin-notices.php
+++ b/plugins/woocommerce/includes/admin/class-wc-admin-notices.php
@@ -56,6 +56,8 @@ class WC_Admin_Notices {

 	/**
 	 * Initializes the class.
+	 *
+	 * @return void
 	 */
 	public static function init() {
 		self::$is_multisite = is_multisite();
@@ -94,6 +96,8 @@ class WC_Admin_Notices {

 	/**
 	 * Store the locally cached notices to DB.
+	 *
+	 * @return void
 	 */
 	public static function store_notices() {
 		$current_notices = self::get_notices();
@@ -136,6 +140,7 @@ class WC_Admin_Notices {
 	 * Set the locally cached notices array for the current site.
 	 *
 	 * @param array $notices New value for the locally cached notices array.
+	 * @return void
 	 */
 	private static function set_notices( array $notices ) {
 		if ( self::$is_multisite ) {
@@ -147,6 +152,8 @@ class WC_Admin_Notices {

 	/**
 	 * Remove all notices from the locally cached notices array.
+	 *
+	 * @return void
 	 */
 	public static function remove_all_notices() {
 		self::set_notices( array() );
@@ -154,6 +161,8 @@ class WC_Admin_Notices {

 	/**
 	 * Reset notices for themes when switched or a new version of WC is installed.
+	 *
+	 * @return void
 	 */
 	public static function reset_admin_notices() {
 		if ( ! self::is_ssl() ) {
@@ -171,6 +180,8 @@ class WC_Admin_Notices {
 	/**
 	 * Add an admin notice about unsupported webhooks with Legacy API payload if at least one of these exist
 	 * and the Legacy REST API plugin is not installed.
+	 *
+	 * @return void
 	 */
 	private static function maybe_add_legacy_api_removal_notice() {
 		if ( wc_get_container()->get( WebhookUtil::class )->get_legacy_webhooks_count() > 0 && ! WC()->legacy_rest_api_is_available() ) {
@@ -198,6 +209,7 @@ class WC_Admin_Notices {
 	 * Remove the admin notice about the unsupported webhooks if the Legacy REST API plugin is installed.
 	 *
 	 * @internal For exclusive usage of WooCommerce core, backwards compatibility not guaranteed.
+	 * @return void
 	 */
 	public static function maybe_remove_legacy_api_removal_notice() {
 		if ( self::has_notice( 'legacy_webhooks_unsupported_in_woo_90' ) && ( WC()->legacy_rest_api_is_available() || 0 === wc_get_container()->get( WebhookUtil::class )->get_legacy_webhooks_count() ) ) {
@@ -210,6 +222,7 @@ class WC_Admin_Notices {
 	 *
 	 * @param string $name Notice name.
 	 * @param bool   $force_save Force saving inside this method instead of at the 'shutdown'.
+	 * @return void
 	 */
 	public static function add_notice( $name, $force_save = false ) {
 		self::set_notices( array_unique( array_merge( self::get_notices(), array( $name ) ) ) );
@@ -225,6 +238,7 @@ class WC_Admin_Notices {
 	 *
 	 * @param string $name Notice name.
 	 * @param bool   $force_save Force saving inside this method instead of at the 'shutdown'.
+	 * @return void
 	 */
 	public static function remove_notice( $name, $force_save = false ) {
 		if ( self::has_notice( $name ) ) {
@@ -272,6 +286,8 @@ class WC_Admin_Notices {

 	/**
 	 * Hide a notice if the GET variable is set.
+	 *
+	 * @return void
 	 */
 	public static function hide_notices() {
 		if ( isset( $_GET['wc-hide-notice'] ) && isset( $_GET['_wc_notice_nonce'] ) ) {
@@ -303,6 +319,7 @@ class WC_Admin_Notices {
 	 * Hide a single notice.
 	 *
 	 * @param string $name Notice name.
+	 * @return void
 	 */
 	private static function hide_notice( $name ) {
 		self::remove_notice( $name );
@@ -327,6 +344,8 @@ class WC_Admin_Notices {

 	/**
 	 * Add notices + styles if needed.
+	 *
+	 * @return void
 	 */
 	public static function add_notices() {
 		$notices = self::get_notices();
@@ -368,6 +387,7 @@ class WC_Admin_Notices {
 	 *
 	 * @param string $name        Notice name.
 	 * @param string $notice_html Notice HTML.
+	 * @return void
 	 */
 	public static function add_custom_notice( $name, $notice_html ) {
 		self::add_notice( $name );
@@ -376,6 +396,8 @@ class WC_Admin_Notices {

 	/**
 	 * Output any stored custom notices.
+	 *
+	 * @return void
 	 */
 	public static function output_custom_notices() {
 		$notices = self::get_notices();
@@ -395,6 +417,8 @@ class WC_Admin_Notices {

 	/**
 	 * If we need to update the database, include a message with the DB update button.
+	 *
+	 * @return void
 	 */
 	public static function update_notice() {
 		$screen    = get_current_screen();
@@ -421,6 +445,7 @@ class WC_Admin_Notices {
 	 * If we have just installed, show a message with the install pages button.
 	 *
 	 * @deprecated 4.6.0
+	 * @return void
 	 */
 	public static function install_notice() {
 		_deprecated_function( __CLASS__ . '::' . __FUNCTION__, '4.6.0', esc_html__( 'Onboarding is maintained in WooCommerce Admin.', 'woocommerce' ) );
@@ -428,6 +453,8 @@ class WC_Admin_Notices {

 	/**
 	 * Show a notice highlighting bad template files.
+	 *
+	 * @return void
 	 */
 	public static function template_file_check_notice() {
 		$core_templates = WC_Admin_Status::scan_template_files( WC()->plugin_path() . '/templates' );
@@ -468,6 +495,7 @@ class WC_Admin_Notices {
 	 * Show a notice asking users to convert to shipping zones.
 	 *
 	 * @todo remove in 4.0.0
+	 * @return void
 	 */
 	public static function legacy_shipping_notice() {
 		$maybe_load_legacy_methods = array( 'flat_rate', 'free_shipping', 'international_delivery', 'local_delivery', 'local_pickup' );
@@ -489,6 +517,8 @@ class WC_Admin_Notices {

 	/**
 	 * No shipping methods.
+	 *
+	 * @return void
 	 */
 	public static function no_shipping_methods_notice() {
         // phpcs:ignore WordPress.Security.NonceVerification.Recommended
@@ -508,6 +538,8 @@ class WC_Admin_Notices {

 	/**
 	 * Notice shown when regenerating thumbnails background process is running.
+	 *
+	 * @return void
 	 */
 	public static function regenerating_thumbnails_notice() {
 		include __DIR__ . '/views/html-notice-regenerating-thumbnails.php';
@@ -515,6 +547,8 @@ class WC_Admin_Notices {

 	/**
 	 * Notice about secure connection.
+	 *
+	 * @return void
 	 */
 	public static function secure_connection_notice() {
 		if ( self::is_ssl() || get_user_meta( get_current_user_id(), 'dismissed_no_secure_connection_notice', true ) ) {
@@ -528,6 +562,7 @@ class WC_Admin_Notices {
 	 * Notice shown when regenerating thumbnails background process is running.
 	 *
 	 * @since 3.6.0
+	 * @return void
 	 */
 	public static function regenerating_lookup_table_notice() {
 		// See if this is still relevant.
@@ -543,6 +578,7 @@ class WC_Admin_Notices {
 	 * Add notice about minimum PHP and WordPress requirement.
 	 *
 	 * @since 3.6.5
+	 * @return void
 	 */
 	public static function add_min_version_notice() {
 		if ( version_compare( phpversion(), WC_NOTICE_MIN_PHP_VERSION, '<' ) || version_compare( get_bloginfo( 'version' ), WC_NOTICE_MIN_WP_VERSION, '<' ) ) {
@@ -565,6 +601,7 @@ class WC_Admin_Notices {
 	 * Add MaxMind missing license key notice.
 	 *
 	 * @since 3.9.0
+	 * @return void
 	 */
 	public static function add_maxmind_missing_license_key_notice() {
 		$default_address = get_option( 'woocommerce_default_customer_address' );
@@ -582,6 +619,8 @@ class WC_Admin_Notices {

 	/**
 	 *  Add notice about Redirect-only download method, nudging user to switch to a different method instead.
+	 *
+	 * @return void
 	 */
 	public static function add_redirect_download_method_notice() {
 		if ( 'redirect' === get_option( 'woocommerce_file_download_method' ) ) {
@@ -593,6 +632,8 @@ class WC_Admin_Notices {

 	/**
 	 * Notice about the completion of the product downloads sync, with further advice for the site operator.
+	 *
+	 * @return void
 	 */
 	public static function download_directories_sync_complete() {
 		$notice_dismissed = apply_filters(
@@ -613,6 +654,7 @@ class WC_Admin_Notices {
 	 * Display MaxMind missing license key notice.
 	 *
 	 * @since 3.9.0
+	 * @return void
 	 */
 	public static function maxmind_missing_license_key_notice() {
 		$user_dismissed_notice   = get_user_meta( get_current_user_id(), 'dismissed_maxmind_license_key_notice', true );
@@ -630,6 +672,7 @@ class WC_Admin_Notices {
 	 * Notice about Redirect-Only download method.
 	 *
 	 * @since 4.0
+	 * @return void
 	 */
 	public static function redirect_download_method_notice() {
 		if ( apply_filters( 'woocommerce_hide_redirect_method_nag', get_user_meta( get_current_user_id(), 'dismissed_redirect_download_method_notice', true ) ) ) {
@@ -644,6 +687,7 @@ class WC_Admin_Notices {
 	 * Notice about uploads directory begin unprotected.
 	 *
 	 * @since 4.2.0
+	 * @return void
 	 */
 	public static function uploads_directory_is_unprotected_notice() {
 		if ( get_user_meta( get_current_user_id(), 'dismissed_uploads_directory_is_unprotected_notice', true ) || self::is_uploads_directory_protected() ) {
@@ -656,6 +700,8 @@ class WC_Admin_Notices {

 	/**
 	 * Notice about base tables missing.
+	 *
+	 * @return void
 	 */
 	public static function base_tables_missing_notice() {
 		$notice_dismissed = apply_filters(
@@ -698,6 +744,7 @@ class WC_Admin_Notices {
 	 * Simplify Commerce is no longer in core.
 	 *
 	 * @deprecated 3.6.0 No longer shown.
+	 * @return void
 	 */
 	public static function simplify_commerce_notice() {
 		wc_deprecated_function( 'WC_Admin_Notices::simplify_commerce_notice', '3.6.0' );
@@ -707,6 +754,7 @@ class WC_Admin_Notices {
 	 * Show the Theme Check notice.
 	 *
 	 * @deprecated 3.3.0 No longer shown.
+	 * @return void
 	 */
 	public static function theme_check_notice() {
 		wc_deprecated_function( 'WC_Admin_Notices::theme_check_notice', '3.3.0' );
diff --git a/plugins/woocommerce/includes/admin/helper/class-wc-helper.php b/plugins/woocommerce/includes/admin/helper/class-wc-helper.php
index 5d2d57dd76..0b6445ead6 100644
--- a/plugins/woocommerce/includes/admin/helper/class-wc-helper.php
+++ b/plugins/woocommerce/includes/admin/helper/class-wc-helper.php
@@ -43,6 +43,8 @@ class WC_Helper {

 	/**
 	 * Loads the helper class, runs on init.
+	 *
+	 * @return void
 	 */
 	public static function load() {
 		self::includes();
@@ -57,6 +59,8 @@ class WC_Helper {

 	/**
 	 * Remove all notes signaling an error with the WCCOM API, when the request was successful.
+	 *
+	 * @return void
 	 */
 	protected static function remove_api_error_notice() {
 		try {
@@ -79,6 +83,8 @@ class WC_Helper {

 	/**
 	 * Adds at most one note signaling that there was an error with the WCCOM API.
+	 *
+	 * @return void
 	 */
 	protected static function add_api_error_notice() {
 		try {
@@ -132,6 +138,8 @@ class WC_Helper {

 	/**
 	 * Include supporting helper classes.
+	 *
+	 * @return void
 	 */
 	protected static function includes() {
 		include_once __DIR__ . '/class-wc-helper-options.php';
@@ -150,6 +158,8 @@ class WC_Helper {

 	/**
 	 * Render the helper section content based on context.
+	 *
+	 * @return void
 	 */
 	public static function render_helper_output() {
 		$auth           = WC_Helper_Options::get( 'auth' );
@@ -526,6 +536,8 @@ class WC_Helper {
 	 *
 	 * @param array  $subscriptions The subscriptions array, passed by ref.
 	 * @param string $filter The filter.
+	 *
+	 * @return void
 	 */
 	private static function _filter( &$subscriptions, $filter ) {
 		switch ( $filter ) {
@@ -569,6 +581,8 @@ class WC_Helper {

 	/**
 	 * Enqueue admin scripts and styles.
+	 *
+	 * @return void
 	 */
 	public static function admin_enqueue_scripts() {
 		$screen       = get_current_screen();
@@ -771,6 +785,8 @@ class WC_Helper {

 	/**
 	 * Maybe redirect to the new Marketplace installer.
+	 *
+	 * @return void
 	 */
 	private static function maybe_redirect_to_new_marketplace_installer() {
 		// phpcs:disable WordPress.Security.NonceVerification.Recommended
@@ -850,6 +866,8 @@ class WC_Helper {

 	/**
 	 * Initiate a new OAuth connection.
+	 *
+	 * @return never
 	 */
 	private static function _helper_auth_connect() {
 		if ( empty( $_GET['wc-helper-nonce'] ) || ! wp_verify_nonce( wp_unslash( $_GET['wc-helper-nonce'] ), 'connect' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
@@ -938,6 +956,8 @@ class WC_Helper {

 	/**
 	 * Return from WooCommerce.com OAuth flow.
+	 *
+	 * @return never
 	 */
 	private static function _helper_auth_return() {
 		if ( empty( $_GET['wc-helper-nonce'] ) || ! wp_verify_nonce( wp_unslash( $_GET['wc-helper-nonce'] ), 'connect' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
@@ -1034,6 +1054,8 @@ class WC_Helper {

 	/**
 	 * Disconnect from WooCommerce.com, clear OAuth tokens.
+	 *
+	 * @return never
 	 */
 	private static function _helper_auth_disconnect() {
 		if ( empty( $_GET['wc-helper-nonce'] ) || ! wp_verify_nonce( wp_unslash( $_GET['wc-helper-nonce'] ), 'disconnect' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
@@ -1062,6 +1084,8 @@ class WC_Helper {

 	/**
 	 * User hit the Refresh button, clear all caches.
+	 *
+	 * @return never
 	 */
 	private static function _helper_auth_refresh() {
 		if ( empty( $_GET['wc-helper-nonce'] ) || ! wp_verify_nonce( wp_unslash( $_GET['wc-helper-nonce'] ), 'refresh' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
@@ -1088,6 +1112,8 @@ class WC_Helper {
 	 * Flush helper authentication cache.
 	 *
 	 * @throws Exception If there is an error refreshing subscriptions.
+	 *
+	 * @return void
 	 */
 	public static function refresh_helper_subscriptions() {
 		/**
@@ -1104,6 +1130,8 @@ class WC_Helper {

 	/**
 	 * Active a product subscription.
+	 *
+	 * @return never
 	 */
 	private static function _helper_subscription_activate() {
 		$product_key = isset( $_GET['wc-helper-product-key'] ) ? wc_clean( wp_unslash( $_GET['wc-helper-product-key'] ) ) : '';
@@ -1223,6 +1251,8 @@ class WC_Helper {

 	/**
 	 * Deactivate a product subscription.
+	 *
+	 * @return never
 	 */
 	private static function helper_subscription_deactivate() {
 		$product_key = isset( $_GET['wc-helper-product-key'] ) ? wc_clean( wp_unslash( $_GET['wc-helper-product-key'] ) ) : '';
@@ -1335,6 +1365,8 @@ class WC_Helper {

 	/**
 	 * Deactivate a plugin.
+	 *
+	 * @return never
 	 */
 	private static function _helper_plugin_deactivate() {
 		$product_id  = isset( $_GET['wc-helper-product-id'] ) ? absint( $_GET['wc-helper-product-id'] ) : 0;
@@ -1578,6 +1610,8 @@ class WC_Helper {

 	/**
 	 * Obtain a list of data about locally installed Woo extensions.
+	 *
+	 * @return array
 	 */
 	public static function get_local_woo_plugins() {
 		if ( ! function_exists( 'get_plugins' ) ) {
@@ -1641,6 +1675,8 @@ class WC_Helper {

 	/**
 	 * Get locally installed Woo themes.
+	 *
+	 * @return array
 	 */
 	public static function get_local_woo_themes() {
 		$themes     = wp_get_themes();
@@ -2215,6 +2251,8 @@ class WC_Helper {
 	 * need to visit the Helper UI at all after installing a new extension.
 	 *
 	 * @param string $filename The filename of the activated plugin.
+	 *
+	 * @return void
 	 */
 	public static function activated_plugin( $filename ) {
 		$plugins = self::get_local_woo_plugins();
@@ -2279,6 +2317,8 @@ class WC_Helper {
 	 * need to visit the Helper UI at all after installing a new extension.
 	 *
 	 * @param string $product_id The product id of the activated theme.
+	 *
+	 * @return void
 	 */
 	public static function connect_theme( $product_id ) {
 		// Make sure we have a connection.
@@ -2347,6 +2387,8 @@ class WC_Helper {
 	 * associated with the extension.
 	 *
 	 * @param string $filename The filename of the deactivated plugin.
+	 *
+	 * @return void
 	 */
 	public static function deactivated_plugin( $filename ) {
 		$plugins = self::get_local_woo_plugins();
@@ -2426,6 +2468,8 @@ class WC_Helper {

 	/**
 	 * Various Helper-related admin notices.
+	 *
+	 * @return void
 	 */
 	public static function admin_notices() {
 		if ( apply_filters( 'woocommerce_helper_suppress_admin_notices', false ) ) {
@@ -2509,6 +2553,8 @@ class WC_Helper {

 	/**
 	 * Flush subscriptions cache.
+	 *
+	 * @return void
 	 */
 	public static function _flush_subscriptions_cache() {
 		delete_transient( '_woocommerce_helper_subscriptions' );
@@ -2516,6 +2562,8 @@ class WC_Helper {

 	/**
 	 * Flush product-usage-notice-rules cache.
+	 *
+	 * @return void
 	 */
 	public static function flush_product_usage_notice_rules_cache() {
 		delete_transient( '_woocommerce_helper_product_usage_notice_rules' );
@@ -2523,6 +2571,8 @@ class WC_Helper {

 	/**
 	 * Flush connection data cache.
+	 *
+	 * @return void
 	 */
 	public static function flush_connection_data_cache() {
 		delete_transient( self::CACHE_KEY_CONNECTION_DATA );
@@ -2530,6 +2580,8 @@ class WC_Helper {

 	/**
 	 * Flush auth cache.
+	 *
+	 * @return bool
 	 */
 	public static function _flush_authentication_cache() {
 		$request = WC_Helper_API::get(
@@ -2562,6 +2614,8 @@ class WC_Helper {

 	/**
 	 * Flush updates cache.
+	 *
+	 * @return void
 	 */
 	private static function _flush_updates_cache() {
 		WC_Helper_Updater::flush_updates_cache();
@@ -2596,6 +2650,8 @@ class WC_Helper {
 	 *
 	 * @param string $message Log message.
 	 * @param string $level Optional, defaults to info, valid levels: emergency|alert|critical|error|warning|notice|info|debug.
+	 *
+	 * @return void
 	 */
 	public static function log( $message, $level = 'info' ) {
 		if ( ! Constants::is_true( 'WP_DEBUG' ) ) {
diff --git a/plugins/woocommerce/includes/class-wc-coupon.php b/plugins/woocommerce/includes/class-wc-coupon.php
index fb083847b9..51ecd52595 100644
--- a/plugins/woocommerce/includes/class-wc-coupon.php
+++ b/plugins/woocommerce/includes/class-wc-coupon.php
@@ -167,6 +167,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 * If the object has an ID, read using the data store.
 	 *
 	 * @since 3.4.1
+	 * @return void
 	 */
 	protected function read_object_from_database() {
 		$this->data_store = WC_Data_Store::load( 'coupon' );
@@ -535,6 +536,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param string $code Coupon code.
+	 * @return void
 	 */
 	public function set_code( $code ) {
 		$this->set_prop( 'code', wc_format_coupon_code( $code ) );
@@ -545,6 +547,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param string $description Description.
+	 * @return void
 	 */
 	public function set_description( $description ) {
 		$this->set_prop( 'description', $description );
@@ -555,6 +558,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param string $status Status.
+	 * @return void
 	 */
 	public function set_status( $status ) {
 		$this->set_prop( 'status', $status );
@@ -565,6 +569,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param string $discount_type Discount type.
+	 * @return void
 	 */
 	public function set_discount_type( $discount_type ) {
 		$this->set_discount_type_core( $discount_type, true );
@@ -576,6 +581,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 * @since 10.3.0
 	 * @param string $discount_type Discount type.
 	 * @param bool   $verify_discount_type Whether to verify if the discount type is valid.
+	 * @return void
 	 */
 	private function set_discount_type_core( $discount_type, bool $verify_discount_type ) {
 		if ( 'percent_product' === $discount_type ) {
@@ -592,6 +598,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param float|string $amount Amount.
+	 * @return void
 	 */
 	public function set_amount( $amount ) {
 		$amount = wc_format_decimal( $amount );
@@ -616,6 +623,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since  3.0.0
 	 * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.
+	 * @return void
 	 */
 	public function set_date_expires( $date ) {
 		$this->set_date_prop( 'date_expires', $date );
@@ -626,6 +634,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since  3.0.0
 	 * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.
+	 * @return void
 	 */
 	public function set_date_created( $date ) {
 		$this->set_date_prop( 'date_created', $date );
@@ -636,6 +645,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since  3.0.0
 	 * @param string|integer|null $date UTC timestamp, or ISO 8601 DateTime. If the DateTime string has no timezone or offset, WordPress site timezone will be assumed. Null if there is no date.
+	 * @return void
 	 */
 	public function set_date_modified( $date ) {
 		$this->set_date_prop( 'date_modified', $date );
@@ -646,6 +656,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param int $usage_count Usage count.
+	 * @return void
 	 */
 	public function set_usage_count( $usage_count ) {
 		$this->set_prop( 'usage_count', absint( $usage_count ) );
@@ -656,6 +667,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param bool $is_individual_use If is for individual use.
+	 * @return void
 	 */
 	public function set_individual_use( $is_individual_use ) {
 		$this->set_prop( 'individual_use', (bool) $is_individual_use );
@@ -666,6 +678,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param array $product_ids Products IDs.
+	 * @return void
 	 */
 	public function set_product_ids( $product_ids ) {
 		$this->set_prop( 'product_ids', array_filter( wp_parse_id_list( (array) $product_ids ) ) );
@@ -676,6 +689,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param array $excluded_product_ids Exclude product IDs.
+	 * @return void
 	 */
 	public function set_excluded_product_ids( $excluded_product_ids ) {
 		$this->set_prop( 'excluded_product_ids', array_filter( wp_parse_id_list( (array) $excluded_product_ids ) ) );
@@ -686,6 +700,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param int $usage_limit Usage limit.
+	 * @return void
 	 */
 	public function set_usage_limit( $usage_limit ) {
 		$this->set_prop( 'usage_limit', absint( $usage_limit ) );
@@ -696,6 +711,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param int $usage_limit Usage limit.
+	 * @return void
 	 */
 	public function set_usage_limit_per_user( $usage_limit ) {
 		$this->set_prop( 'usage_limit_per_user', absint( $usage_limit ) );
@@ -706,6 +722,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param int|null $limit_usage_to_x_items Limit usage to X items.
+	 * @return void
 	 */
 	public function set_limit_usage_to_x_items( $limit_usage_to_x_items ) {
 		$this->set_prop( 'limit_usage_to_x_items', is_null( $limit_usage_to_x_items ) ? null : absint( $limit_usage_to_x_items ) );
@@ -716,6 +733,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param bool $free_shipping If grant free shipping.
+	 * @return void
 	 */
 	public function set_free_shipping( $free_shipping ) {
 		$this->set_prop( 'free_shipping', (bool) $free_shipping );
@@ -726,6 +744,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param array $product_categories List of product categories.
+	 * @return void
 	 */
 	public function set_product_categories( $product_categories ) {
 		$this->set_prop( 'product_categories', array_filter( wp_parse_id_list( (array) $product_categories ) ) );
@@ -736,6 +755,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param array $excluded_product_categories List of excluded product categories.
+	 * @return void
 	 */
 	public function set_excluded_product_categories( $excluded_product_categories ) {
 		$this->set_prop( 'excluded_product_categories', array_filter( wp_parse_id_list( (array) $excluded_product_categories ) ) );
@@ -746,6 +766,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param bool $exclude_sale_items If should exclude sale items.
+	 * @return void
 	 */
 	public function set_exclude_sale_items( $exclude_sale_items ) {
 		$this->set_prop( 'exclude_sale_items', (bool) $exclude_sale_items );
@@ -756,6 +777,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param float|string $amount Minimum amount.
+	 * @return void
 	 */
 	public function set_minimum_amount( $amount ) {
 		$this->set_prop( 'minimum_amount', wc_format_decimal( $amount ) );
@@ -766,6 +788,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param float|string $amount Maximum amount.
+	 * @return void
 	 */
 	public function set_maximum_amount( $amount ) {
 		if ( (float) $amount && (float) $this->get_minimum_amount() > (float) $amount ) {
@@ -780,6 +803,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param array $emails List of emails.
+	 * @return void
 	 */
 	public function set_email_restrictions( $emails = array() ) {
 		$emails = array_filter( array_map( 'sanitize_email', array_map( 'strtolower', (array) $emails ) ) );
@@ -796,6 +820,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @since 3.0.0
 	 * @param array $used_by List of user IDs.
+	 * @return void
 	 */
 	public function set_used_by( $used_by ) {
 		$this->set_prop( 'used_by', array_filter( $used_by ) );
@@ -806,6 +831,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @param boolean $virtual Whether it is virtual or not.
 	 * @since 3.2.0
+	 * @return void
 	 */
 	public function set_virtual( $virtual ) {
 		$this->set_prop( 'virtual', (bool) $virtual );
@@ -823,6 +849,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 * @since 3.0.0
 	 * @param string $code   Coupon code.
 	 * @param array  $coupon Array of coupon properties.
+	 * @return void
 	 */
 	public function read_manual_coupon( $code, $coupon ) {
 		foreach ( $coupon as $key => $value ) {
@@ -871,6 +898,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @param string   $used_by  Either user ID or billing email.
 	 * @param WC_Order $order  If provided, will clear the coupons held by this order.
+	 * @return void
 	 */
 	public function increase_usage_count( $used_by = '', $order = null ) {
 		if ( $this->get_id() && $this->data_store ) {
@@ -888,6 +916,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 * Decrease usage count for current coupon.
 	 *
 	 * @param string $used_by Either user ID or billing email.
+	 * @return void
 	 */
 	public function decrease_usage_count( $used_by = '' ) {
 		if ( $this->get_id() && $this->get_usage_count() > 0 && $this->data_store ) {
@@ -1009,6 +1038,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 *
 	 * @param int    $msg_code Message/error code.
 	 * @param string $notice_type Notice type.
+	 * @return void
 	 */
 	public function add_coupon_message( $msg_code, $notice_type = 'success' ) {
 		if ( $msg_code < 200 ) {
@@ -1326,6 +1356,7 @@ class WC_Coupon extends WC_Legacy_Coupon {
 	 * Sets the coupon parameters from a reapply information set generated with 'get_short_info'.
 	 *
 	 * @param string $info JSON string with reapply information as returned by 'get_short_info'.
+	 * @return void
 	 */
 	public function set_short_info( string $info ) {
 		$data = self::parse_short_info( $info );
diff --git a/plugins/woocommerce/includes/class-wc-post-data.php b/plugins/woocommerce/includes/class-wc-post-data.php
index 1dc1dfaabf..2b7635b007 100644
--- a/plugins/woocommerce/includes/class-wc-post-data.php
+++ b/plugins/woocommerce/includes/class-wc-post-data.php
@@ -33,6 +33,8 @@ class WC_Post_Data {

 	/**
 	 * Hook in methods.
+	 *
+	 * @return void
 	 */
 	public static function init() {
 		add_filter( 'post_type_link', array( __CLASS__, 'variation_post_link' ), 10, 2 );
@@ -103,6 +105,8 @@ class WC_Post_Data {

 	/**
 	 * Sync products queued to sync.
+	 *
+	 * @return void
 	 */
 	public static function do_deferred_product_sync() {
 		global $wc_deferred_product_sync;
@@ -117,6 +121,8 @@ class WC_Post_Data {
 	 * Sync a product.
 	 *
 	 * @param int $product_id Product ID.
+	 *
+	 * @return void
 	 */
 	public static function deferred_product_sync( $product_id ) {
 		$product = wc_get_product( $product_id );
@@ -132,6 +138,8 @@ class WC_Post_Data {
 	 * @param string  $new_status New status.
 	 * @param string  $old_status Old status.
 	 * @param WP_Post $post       Post data.
+	 *
+	 * @return void
 	 */
 	public static function transition_post_status( $new_status, $old_status, $post ) {
 		if ( ( ProductStatus::PUBLISH === $new_status || ProductStatus::PUBLISH === $old_status ) && in_array( $post->post_type, array( 'product', 'product_variation' ), true ) ) {
@@ -141,6 +149,8 @@ class WC_Post_Data {

 	/**
 	 * Delete product view transients when needed e.g. when post status changes, or visibility/stock status is modified.
+	 *
+	 * @return void
 	 */
 	public static function delete_product_query_transients() {
 		WC_Cache_Helper::get_transient_version( 'product_query', true );
@@ -154,6 +164,8 @@ class WC_Post_Data {
 	 * @param WC_Product $product Product data.
 	 * @param string     $from    Origin type.
 	 * @param string     $to      New type.
+	 *
+	 * @return void
 	 */
 	public static function product_type_changed( $product, $from, $to ) {
 		/**
@@ -179,6 +191,8 @@ class WC_Post_Data {
 	 * @param  int    $term_id  Term ID.
 	 * @param  int    $tt_id    Term taxonomy ID.
 	 * @param  string $taxonomy Taxonomy slug.
+	 *
+	 * @return void
 	 */
 	public static function edit_term( $term_id, $tt_id, $taxonomy ) {
 		if ( strpos( $taxonomy, 'pa_' ) === 0 ) {
@@ -194,6 +208,8 @@ class WC_Post_Data {
 	 * @param  int    $term_id  Term ID.
 	 * @param  int    $tt_id    Term taxonomy ID.
 	 * @param  string $taxonomy Taxonomy slug.
+	 *
+	 * @return void
 	 */
 	public static function edited_term( $term_id, $tt_id, $taxonomy ) {
 		if ( ! is_null( self::$editing_term ) && strpos( $taxonomy, 'pa_' ) === 0 ) {
@@ -324,6 +340,8 @@ class WC_Post_Data {
 	 * @since 9.8.0
 	 *
 	 * @param mixed $id ID of post being deleted.
+	 *
+	 * @return void
 	 */
 	public static function delete_post_data( $id ) {
 		$container = wc_get_container();
@@ -368,6 +386,8 @@ class WC_Post_Data {
 	 * Removes variations etc. belonging to a deleted post, and clears transients, if the user has permission.
 	 *
 	 * @param mixed $id ID of post being deleted.
+	 *
+	 * @return void
 	 */
 	public static function delete_post( $id ) {
 		$container = wc_get_container();
@@ -382,6 +402,8 @@ class WC_Post_Data {
 	 * Trash post.
 	 *
 	 * @param mixed $id Post ID.
+	 *
+	 * @return void
 	 */
 	public static function trash_post( $id ) {
 		if ( ! $id ) {
@@ -416,6 +438,8 @@ class WC_Post_Data {
 	 * Untrash post.
 	 *
 	 * @param mixed $id Post ID.
+	 *
+	 * @return void
 	 */
 	public static function untrash_post( $id ) {
 		if ( ! $id ) {
@@ -452,6 +476,8 @@ class WC_Post_Data {
 	 * Clear global unique id if it's not unique.
 	 *
 	 * @param mixed $id Post ID.
+	 *
+	 * @return void
 	 */
 	private static function clear_global_unique_id_if_necessary( $id ) {
 		$product = wc_get_product( $id );
@@ -476,6 +502,8 @@ class WC_Post_Data {
 	 *
 	 * @since 3.2.0
 	 * @param int $order_id Order ID.
+	 *
+	 * @return void
 	 */
 	public static function before_delete_order( $order_id ) {
 		if ( OrderUtil::is_order( $order_id, wc_get_order_types() ) ) {
@@ -510,6 +538,8 @@ class WC_Post_Data {
 	 * Remove item meta on permanent deletion.
 	 *
 	 * @param int $postid Post ID.
+	 *
+	 * @return void
 	 */
 	public static function delete_order_items( $postid ) {
 		global $wpdb;
@@ -534,6 +564,8 @@ class WC_Post_Data {
 	 * Remove downloadable permissions on permanent order deletion.
 	 *
 	 * @param int $postid Post ID.
+	 *
+	 * @return void
 	 */
 	public static function delete_order_downloadable_permissions( $postid ) {
 		if ( OrderUtil::is_order( $postid, wc_get_order_types() ) ) {
@@ -553,6 +585,8 @@ class WC_Post_Data {
 	 * @param  int    $object_id  Object ID.
 	 * @param  string $meta_key   Meta key.
 	 * @param  mixed  $meta_value Meta value.
+	 *
+	 * @return void
 	 */
 	public static function flush_object_meta_cache( $meta_id, $object_id, $meta_key, $meta_value ) {
 		WC_Cache_Helper::invalidate_cache_group( 'object_' . $object_id );
@@ -567,6 +601,8 @@ class WC_Post_Data {
 	 * @param array  $tt_ids    Term ids array.
 	 * @param string $taxonomy  Taxonomy name.
 	 * @param bool   $append    Are we appending or setting terms.
+	 *
+	 * @return void
 	 */
 	public static function force_default_term( $object_id, $terms, $tt_ids, $taxonomy, $append ) {
 		if ( ! $append && 'product_cat' === $taxonomy && empty( $tt_ids ) && 'product' === get_post_type( $object_id ) ) {
@@ -590,6 +626,8 @@ class WC_Post_Data {
 	 * @param array  $old_tt_ids  The old array of term taxonomy IDs.
 	 *
 	 * @since 10.4.0
+	 *
+	 * @return void
 	 */
 	public static function recount_terms_for_product_visibility_change( $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids ) {
 		if ( 'product_visibility' !== $taxonomy ) {
@@ -649,6 +687,8 @@ class WC_Post_Data {
 	 * @param  string $meta_key   Meta key.
 	 * @param  mixed  $meta_value Meta value.
 	 * @deprecated    3.3
+	 *
+	 * @return void
 	 */
 	public static function sync_product_stock_status( $meta_id, $object_id, $meta_key, $meta_value ) {}

@@ -659,6 +699,8 @@ class WC_Post_Data {
 	 * @param int   $product_id   Product ID.
 	 * @param int   $variation_id Variation ID. Optional product variation identifier.
 	 * @param array $downloads    Newly set files.
+	 *
+	 * @return void
 	 */
 	public static function process_product_file_download_paths( $product_id, $variation_id, $downloads ) {
 		wc_deprecated_function( __FUNCTION__, '3.3' );
@@ -674,6 +716,8 @@ class WC_Post_Data {
 	 * @param string $taxonomy   Taxonomy slug.
 	 * @param mixed  $append     Whether to append new terms to the old terms.
 	 * @param array  $old_tt_ids Old array of term taxonomy IDs.
+	 *
+	 * @return void
 	 */
 	public static function set_object_terms( $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids ) {
 		if ( in_array( get_post_type( $object_id ), array( 'product', 'product_variation' ), true ) ) {
@@ -686,6 +730,8 @@ class WC_Post_Data {
 	 *
 	 * @since 10.2.0
 	 * @param array $variation_ids Array of variation IDs.
+	 *
+	 * @return void
 	 */
 	private static function regenerate_variation_summaries( $variation_ids ) {
 		if ( empty( $variation_ids ) ) {
@@ -704,6 +750,8 @@ class WC_Post_Data {
 	 *
 	 * @since 10.2.0
 	 * @param int $variation_id Variation ID.
+	 *
+	 * @return void
 	 */
 	public static function regenerate_variation_attribute_summary( $variation_id ) {
 		global $wpdb;
@@ -767,6 +815,8 @@ class WC_Post_Data {
 	 * @param int    $attribute_id Attribute ID.
 	 * @param string $attribute    Attribute name.
 	 * @param string $old_slug     Old attribute slug.
+	 *
+	 * @return void
 	 */
 	public static function handle_global_attribute_updated( $attribute_id, $attribute, $old_slug ) {
 		// We use this trigger for both updates and deletions of global attributes.
@@ -825,6 +875,8 @@ class WC_Post_Data {
 	 *
 	 * @since 10.2.0
 	 * @param string $taxonomy Attribute taxonomy.
+	 *
+	 * @return void
 	 */
 	public static function regenerate_attribute_variation_summaries( $taxonomy ) {
 		// phpcs:disable WordPress.DB.SlowDBQuery.slow_db_query_meta_query
@@ -850,6 +902,8 @@ class WC_Post_Data {
 	 *
 	 * @since 10.2.0
 	 * @param WC_Product $product The variable product whose attributes were updated.
+	 *
+	 * @return void
 	 */
 	public static function on_product_attributes_updated( $product ) {
 		if ( $product->is_type( 'variable' ) ) {
@@ -892,6 +946,8 @@ class WC_Post_Data {
 	 *
 	 * @since 10.2.0
 	 * @param int $product_id Variable product ID.
+	 *
+	 * @return void
 	 */
 	public static function regenerate_product_variation_summaries( $product_id ) {
 		$product = wc_get_product( $product_id );
@@ -909,6 +965,8 @@ class WC_Post_Data {
 	 * @param int    $term_id  Term ID.
 	 * @param int    $tt_id    Term taxonomy ID.
 	 * @param string $taxonomy Taxonomy slug.
+	 *
+	 * @return void
 	 */
 	public static function handle_attribute_term_updated( $term_id, $tt_id, $taxonomy ) {
 		if ( strpos( $taxonomy, 'pa_' ) !== 0 ) {
@@ -962,6 +1020,8 @@ class WC_Post_Data {
 	 * @param int     $tt_id    Term taxonomy ID.
 	 * @param string  $taxonomy Taxonomy slug.
 	 * @param WP_Term $deleted_term Copy of the already-deleted term.
+	 *
+	 * @return void
 	 */
 	public static function handle_attribute_term_deleted( $term_id, $tt_id, $taxonomy, $deleted_term ) {
 		if ( strpos( $taxonomy, 'pa_' ) !== 0 ) {
@@ -1040,6 +1100,8 @@ class WC_Post_Data {
 	 * @since 10.2.0
 	 * @param string $taxonomy Taxonomy slug.
 	 * @param string $term_slug Term slug.
+	 *
+	 * @return void
 	 */
 	public static function regenerate_term_variation_summaries( $taxonomy, $term_slug ) {
 		global $wpdb;
diff --git a/plugins/woocommerce/phpstan-baseline.neon b/plugins/woocommerce/phpstan-baseline.neon
index c83435ea7e..3f7a933f93 100644
--- a/plugins/woocommerce/phpstan-baseline.neon
+++ b/plugins/woocommerce/phpstan-baseline.neon
@@ -672,54 +672,12 @@ parameters:
 			count: 1
 			path: includes/abstracts/abstract-wc-order.php

-		-
-			message: '#^Method WC_Abstract_Order\:\:add_order_item_totals_discount_row\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:add_order_item_totals_fee_rows\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:add_order_item_totals_shipping_row\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:add_order_item_totals_subtotal_row\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:add_order_item_totals_tax_rows\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:add_order_item_totals_total_row\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
 		-
 			message: '#^Method WC_Abstract_Order\:\:calculate_shipping\(\) should return float but returns string\.$#'
 			identifier: return.type
 			count: 1
 			path: includes/abstracts/abstract-wc-order.php

-		-
-			message: '#^Method WC_Abstract_Order\:\:calculate_taxes\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
 		-
 			message: '#^Method WC_Abstract_Order\:\:get_coupons\(\) should return array\<WC_Order_Item_Coupon\> but returns array\<WC_Order_Item\>\.$#'
 			identifier: return.type
@@ -750,132 +708,6 @@ parameters:
 			count: 1
 			path: includes/abstracts/abstract-wc-order.php

-		-
-			message: '#^Method WC_Abstract_Order\:\:handle_exception\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:hold_applied_coupons\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:recalculate_coupons\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:remove_order_items\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:save_items\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_cart_tax\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_cogs_total_value\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_coupon_discount_amounts\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_currency\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_date_created\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_date_modified\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_discount_tax\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_discount_total\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_item_discount_amounts\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_parent_id\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_prices_include_tax\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_shipping_tax\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_shipping_total\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_total_tax\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:set_version\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
-		-
-			message: '#^Method WC_Abstract_Order\:\:update_taxes\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/abstracts/abstract-wc-order.php
-
 		-
 			message: '#^One or more @param tags has an invalid name or invalid syntax\.$#'
 			identifier: phpDoc.parseError
@@ -2670,198 +2502,6 @@ parameters:
 			count: 1
 			path: includes/admin/class-wc-admin-meta-boxes.php

-		-
-			message: '#^Method WC_Admin_Notices\:\:add_custom_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:add_maxmind_missing_license_key_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:add_min_version_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:add_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:add_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:add_redirect_download_method_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:base_tables_missing_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:download_directories_sync_complete\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:hide_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:hide_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:init\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:install_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:legacy_shipping_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:maxmind_missing_license_key_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:maybe_add_legacy_api_removal_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:maybe_remove_legacy_api_removal_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:no_shipping_methods_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:output_custom_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:redirect_download_method_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:regenerating_lookup_table_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:regenerating_thumbnails_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:remove_all_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:remove_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:reset_admin_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:secure_connection_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:set_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:simplify_commerce_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:store_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:template_file_check_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:theme_check_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:update_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
-		-
-			message: '#^Method WC_Admin_Notices\:\:uploads_directory_is_unprotected_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/class-wc-admin-notices.php
-
 		-
 			message: '#^Parameter \#2 \$callback of function add_action expects callable\(\)\: mixed, array\{''WC_Admin_Notices'', mixed\} given\.$#'
 			identifier: argument.type
@@ -4350,261 +3990,93 @@ parameters:
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

-		-
-			message: '#^Argument of an invalid type array\|true supplied for foreach, only iterables are supported\.$#'
-			identifier: foreach.nonIterable
-			count: 2
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Binary operation "\." between ''activate\:'' and array\|string results in an error\.$#'
-			identifier: binaryOp.invalid
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Binary operation "\." between ''deactivate\:'' and array\|string results in an error\.$#'
-			identifier: binaryOp.invalid
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
-			identifier: method.notFound
-			count: 2
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Cannot access offset ''_filename'' on array\|bool\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Cannot access offset ''_filename'' on non\-empty\-array\|true\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Cannot access offset ''_type'' on non\-empty\-array\|true\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Cannot access offset ''product_id'' on array\|bool\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 2
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Cannot access offset ''product_id'' on non\-empty\-array\|true\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 3
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Cannot access offset ''product_name'' on array\|bool\.$#'
-			identifier: offsetAccess.nonOffsetAccessible
-			count: 7
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_filter\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_flush_authentication_cache\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_flush_subscriptions_cache\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_flush_updates_cache\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_get_extensions_update_notice\(\) never returns null so it can be removed from the return type\.$#'
-			identifier: return.unusedType
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_get_extensions_update_notice\(\) should return string\|null but empty return statement found\.$#'
-			identifier: return.empty
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_helper_auth_connect\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_helper_auth_disconnect\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_helper_auth_refresh\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_helper_auth_return\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_helper_plugin_deactivate\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:_helper_subscription_activate\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:activated_plugin\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:add_api_error_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:admin_enqueue_scripts\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:admin_notices\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:connect_theme\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:current_screen\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/admin/helper/class-wc-helper.php
-
-		-
-			message: '#^Method WC_Helper\:\:deactivated_plugin\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
+		-
+			message: '#^Argument of an invalid type array\|true supplied for foreach, only iterables are supported\.$#'
+			identifier: foreach.nonIterable
+			count: 2
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:fetch_helper_connection_info\(\) should return array\|WP_Error but returns array\|true\.$#'
-			identifier: return.type
+			message: '#^Binary operation "\." between ''activate\:'' and array\|string results in an error\.$#'
+			identifier: binaryOp.invalid
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:flush_connection_data_cache\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Binary operation "\." between ''deactivate\:'' and array\|string results in an error\.$#'
+			identifier: binaryOp.invalid
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:flush_product_usage_notice_rules_cache\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
+			message: '#^Call to an undefined method WC_Data_Store\:\:get_notes_with_name\(\)\.$#'
+			identifier: method.notFound
+			count: 2
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:get_current_filter\(\) should return string but returns array\|string\.$#'
-			identifier: return.type
+			message: '#^Cannot access offset ''_filename'' on array\|bool\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:get_local_woo_plugins\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access offset ''_filename'' on non\-empty\-array\|true\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:get_local_woo_themes\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access offset ''_type'' on non\-empty\-array\|true\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:helper_subscription_deactivate\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
+			message: '#^Cannot access offset ''product_id'' on array\|bool\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
+			count: 2
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:includes\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
+			message: '#^Cannot access offset ''product_id'' on non\-empty\-array\|true\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
+			count: 3
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:load\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
+			message: '#^Cannot access offset ''product_name'' on array\|bool\.$#'
+			identifier: offsetAccess.nonOffsetAccessible
+			count: 7
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:log\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method WC_Helper\:\:_get_extensions_update_notice\(\) never returns null so it can be removed from the return type\.$#'
+			identifier: return.unusedType
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:maybe_redirect_to_new_marketplace_installer\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method WC_Helper\:\:_get_extensions_update_notice\(\) should return string\|null but empty return statement found\.$#'
+			identifier: return.empty
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:refresh_helper_subscriptions\(\) has no return type specified\.$#'
+			message: '#^Method WC_Helper\:\:current_screen\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:remove_api_error_notice\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method WC_Helper\:\:fetch_helper_connection_info\(\) should return array\|WP_Error but returns array\|true\.$#'
+			identifier: return.type
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

 		-
-			message: '#^Method WC_Helper\:\:render_helper_output\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method WC_Helper\:\:get_current_filter\(\) should return string but returns array\|string\.$#'
+			identifier: return.type
 			count: 1
 			path: includes/admin/helper/class-wc-helper.php

@@ -11226,12 +10698,6 @@ parameters:
 			count: 2
 			path: includes/class-wc-cart.php

-		-
-			message: '#^Method WC_Cart\:\:check_cart_items\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-cart.php
-
 		-
 			message: '#^Binary operation "\+" between float\|int\|string and float results in an error\.$#'
 			identifier: binaryOp.invalid
@@ -11280,6 +10746,12 @@ parameters:
 			count: 2
 			path: includes/class-wc-cart.php

+		-
+			message: '#^Method WC_Cart\:\:check_cart_items\(\) has no return type specified\.$#'
+			identifier: missingType.return
+			count: 1
+			path: includes/class-wc-cart.php
+
 		-
 			message: '#^Parameter \#1 \$price of function wc_price expects float, float\|string given\.$#'
 			identifier: argument.type
@@ -11695,338 +11167,152 @@ parameters:
 			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Comments\:\:clear_transients\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Method WC_Comments\:\:delete_comments_count_cache\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Method WC_Comments\:\:exclude_order_comments_from_feed_join\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Method WC_Comments\:\:exclude_webhook_comments_from_feed_join\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Method WC_Comments\:\:get_average_rating_for_product\(\) should return float but returns int\|string\.$#'
-			identifier: return.type
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Method WC_Comments\:\:init\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Method WC_Comments\:\:validate_product_review_verified_owners\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Method WC_Comments\:\:wp_count_comments\(\) should return object but returns array\|object\.$#'
-			identifier: return.type
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Parameter \#1 \$post of function get_post_type expects int\|WP_Post\|null, string given\.$#'
-			identifier: argument.type
-			count: 5
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Parameter \#2 \$user_id of function wc_customer_bought_product expects int, string given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Parameter \#3 \$args of function wp_die expects array\{response\?\: int, link_url\?\: string, link_text\?\: string, back_link\?\: bool, text_direction\?\: string, charset\?\: string, code\?\: string, exit\?\: bool\}\|int, array\{code\: 403\} given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Parameter \#3 \$product_id of function wc_customer_bought_product expects int, string given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Unreachable statement \- code above always terminates\.$#'
-			identifier: deadCode.unreachable
-			count: 1
-			path: includes/class-wc-comments.php
-
-		-
-			message: '#^Access to an undefined property WC_Countries\:\:\$countries\.$#'
-			identifier: property.notFound
-			count: 5
-			path: includes/class-wc-countries.php
-
-		-
-			message: '#^Access to an undefined property WC_Countries\:\:\$states\.$#'
-			identifier: property.notFound
-			count: 2
-			path: includes/class-wc-countries.php
-
-		-
-			message: '#^Method WC_Countries\:\:country_dropdown_options\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-countries.php
-
-		-
-			message: '#^Method WC_Countries\:\:load_country_states\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-countries.php
-
-		-
-			message: '#^Parameter \#2 \$str of function explode expects string, string\|null given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/class-wc-countries.php
-
-		-
-			message: '#^Parameter \#3 \$subject of function preg_replace expects array\<float\|int\|string\>\|string, string\|null given\.$#'
-			identifier: argument.type
-			count: 1
-			path: includes/class-wc-countries.php
-
-		-
-			message: '#^Access to an undefined property WC_Cart\:\:\$subtotal\.$#'
-			identifier: property.notFound
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Access to an undefined property WC_Cart\:\:\$subtotal_ex_tax\.$#'
-			identifier: property.notFound
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Call to an undefined method object\:\:decrease_usage_count\(\)\.$#'
-			identifier: method.notFound
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Call to an undefined method object\:\:increase_usage_count\(\)\.$#'
-			identifier: method.notFound
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Cannot access property \$name on WP_Error\|WP_Term\|null\.$#'
-			identifier: property.nonObject
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:add_coupon_message\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:decrease_usage_count\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:get_short_info\(\) should return string but returns string\|false\.$#'
-			identifier: return.type
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:increase_usage_count\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:read_manual_coupon\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:read_object_from_database\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:set_amount\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:set_code\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:set_date_created\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
-
-		-
-			message: '#^Method WC_Coupon\:\:set_date_expires\(\) has no return type specified\.$#'
+			message: '#^Method WC_Comments\:\:clear_transients\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_date_modified\(\) has no return type specified\.$#'
+			message: '#^Method WC_Comments\:\:delete_comments_count_cache\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_description\(\) has no return type specified\.$#'
+			message: '#^Method WC_Comments\:\:exclude_order_comments_from_feed_join\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_discount_type\(\) has no return type specified\.$#'
+			message: '#^Method WC_Comments\:\:exclude_webhook_comments_from_feed_join\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_discount_type_core\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method WC_Comments\:\:get_average_rating_for_product\(\) should return float but returns int\|string\.$#'
+			identifier: return.type
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_email_restrictions\(\) has no return type specified\.$#'
+			message: '#^Method WC_Comments\:\:init\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_exclude_sale_items\(\) has no return type specified\.$#'
+			message: '#^Method WC_Comments\:\:validate_product_review_verified_owners\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_excluded_product_categories\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method WC_Comments\:\:wp_count_comments\(\) should return object but returns array\|object\.$#'
+			identifier: return.type
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_excluded_product_ids\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-coupon.php
+			message: '#^Parameter \#1 \$post of function get_post_type expects int\|WP_Post\|null, string given\.$#'
+			identifier: argument.type
+			count: 5
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_free_shipping\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#2 \$user_id of function wc_customer_bought_product expects int, string given\.$#'
+			identifier: argument.type
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_individual_use\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#3 \$args of function wp_die expects array\{response\?\: int, link_url\?\: string, link_text\?\: string, back_link\?\: bool, text_direction\?\: string, charset\?\: string, code\?\: string, exit\?\: bool\}\|int, array\{code\: 403\} given\.$#'
+			identifier: argument.type
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_limit_usage_to_x_items\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#3 \$product_id of function wc_customer_bought_product expects int, string given\.$#'
+			identifier: argument.type
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php

 		-
-			message: '#^Method WC_Coupon\:\:set_maximum_amount\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Unreachable statement \- code above always terminates\.$#'
+			identifier: deadCode.unreachable
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-comments.php
+
+		-
+			message: '#^Access to an undefined property WC_Countries\:\:\$countries\.$#'
+			identifier: property.notFound
+			count: 5
+			path: includes/class-wc-countries.php
+
+		-
+			message: '#^Access to an undefined property WC_Countries\:\:\$states\.$#'
+			identifier: property.notFound
+			count: 2
+			path: includes/class-wc-countries.php

 		-
-			message: '#^Method WC_Coupon\:\:set_minimum_amount\(\) has no return type specified\.$#'
+			message: '#^Method WC_Countries\:\:country_dropdown_options\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-countries.php

 		-
-			message: '#^Method WC_Coupon\:\:set_product_categories\(\) has no return type specified\.$#'
+			message: '#^Method WC_Countries\:\:load_country_states\(\) has no return type specified\.$#'
 			identifier: missingType.return
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-countries.php

 		-
-			message: '#^Method WC_Coupon\:\:set_product_ids\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#2 \$str of function explode expects string, string\|null given\.$#'
+			identifier: argument.type
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-countries.php

 		-
-			message: '#^Method WC_Coupon\:\:set_short_info\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Parameter \#3 \$subject of function preg_replace expects array\<float\|int\|string\>\|string, string\|null given\.$#'
+			identifier: argument.type
 			count: 1
-			path: includes/class-wc-coupon.php
+			path: includes/class-wc-countries.php

 		-
-			message: '#^Method WC_Coupon\:\:set_status\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Access to an undefined property WC_Cart\:\:\$subtotal\.$#'
+			identifier: property.notFound
 			count: 1
 			path: includes/class-wc-coupon.php

 		-
-			message: '#^Method WC_Coupon\:\:set_usage_count\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Access to an undefined property WC_Cart\:\:\$subtotal_ex_tax\.$#'
+			identifier: property.notFound
 			count: 1
 			path: includes/class-wc-coupon.php

 		-
-			message: '#^Method WC_Coupon\:\:set_usage_limit\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Call to an undefined method object\:\:decrease_usage_count\(\)\.$#'
+			identifier: method.notFound
 			count: 1
 			path: includes/class-wc-coupon.php

 		-
-			message: '#^Method WC_Coupon\:\:set_usage_limit_per_user\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Call to an undefined method object\:\:increase_usage_count\(\)\.$#'
+			identifier: method.notFound
 			count: 1
 			path: includes/class-wc-coupon.php

 		-
-			message: '#^Method WC_Coupon\:\:set_used_by\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Cannot access property \$name on WP_Error\|WP_Term\|null\.$#'
+			identifier: property.nonObject
 			count: 1
 			path: includes/class-wc-coupon.php

 		-
-			message: '#^Method WC_Coupon\:\:set_virtual\(\) has no return type specified\.$#'
-			identifier: missingType.return
+			message: '#^Method WC_Coupon\:\:get_short_info\(\) should return string but returns string\|false\.$#'
+			identifier: return.type
 			count: 1
 			path: includes/class-wc-coupon.php

@@ -14742,192 +14028,6 @@ parameters:
 			count: 1
 			path: includes/class-wc-post-data.php

-		-
-			message: '#^Method WC_Post_Data\:\:before_delete_order\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:clear_global_unique_id_if_necessary\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:deferred_product_sync\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:delete_order_downloadable_permissions\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:delete_order_items\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:delete_post\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:delete_post_data\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:delete_product_query_transients\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:do_deferred_product_sync\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:edit_term\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:edited_term\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:flush_object_meta_cache\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:force_default_term\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:handle_attribute_term_deleted\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:handle_attribute_term_updated\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:handle_global_attribute_updated\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:init\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:on_product_attributes_updated\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:process_product_file_download_paths\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:product_type_changed\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:recount_terms_for_product_visibility_change\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:regenerate_attribute_variation_summaries\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:regenerate_product_variation_summaries\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:regenerate_term_variation_summaries\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:regenerate_variation_attribute_summary\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:regenerate_variation_summaries\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:set_object_terms\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:sync_product_stock_status\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:transition_post_status\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:trash_post\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
-		-
-			message: '#^Method WC_Post_Data\:\:untrash_post\(\) has no return type specified\.$#'
-			identifier: missingType.return
-			count: 1
-			path: includes/class-wc-post-data.php
-
 		-
 			message: '#^Offset ''attribute_name'' does not exist on string\.$#'
 			identifier: offsetAccess.notFound