Commit b467483a8ef for woocommerce

commit b467483a8efe33644137277f952f6051c5f2fce2
Author: Asim Sulehria <de.asimhabib@gmail.com>
Date:   Mon May 4 20:54:35 2026 +0500

    Add get_all() helper method to Enum classes (#64436)

    * Add get_all() helper method to Enum classes

    Adds a static get_all() method to OrderStatus, OrderInternalStatus,
    ProductType, ProductStockStatus, CatalogVisibility, and ProductStatus.
    Since WooCommerce targets PHP 7.4 (no native enum cases()), callers
    currently build ad-hoc arrays of all values manually. get_all() provides
    a single, authoritative source so code can do in_array($v, OrderStatus::get_all())
    instead of repeating the full list at every call site.

    * Fix OrderStatus::get_all() to return all 12 status constants

    * Add @since 10.9.0 tags to new Enum get_all() methods

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---------

    Co-authored-by: Michael Pretty <prettyboymp@gmail.com>
    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    Co-authored-by: Michael Pretty <prettyboymp@users.noreply.github.com>

diff --git a/plugins/woocommerce/src/Enums/CatalogVisibility.php b/plugins/woocommerce/src/Enums/CatalogVisibility.php
index 51738bc7c1d..d9c1dff8a62 100644
--- a/plugins/woocommerce/src/Enums/CatalogVisibility.php
+++ b/plugins/woocommerce/src/Enums/CatalogVisibility.php
@@ -29,4 +29,20 @@ final class CatalogVisibility {
 	 * Product is invisible on both shop and search results, but can still be accessed directly.
 	 */
 	public const HIDDEN = 'hidden';
+
+	/**
+	 * Returns all catalog visibility values.
+	 *
+	 * @since 10.9.0
+	 *
+	 * @return string[]
+	 */
+	public static function get_all(): array {
+		return array(
+			self::VISIBLE,
+			self::CATALOG,
+			self::SEARCH,
+			self::HIDDEN,
+		);
+	}
 }
diff --git a/plugins/woocommerce/src/Enums/OrderInternalStatus.php b/plugins/woocommerce/src/Enums/OrderInternalStatus.php
index e17bfb16619..fa445fd7fa9 100644
--- a/plugins/woocommerce/src/Enums/OrderInternalStatus.php
+++ b/plugins/woocommerce/src/Enums/OrderInternalStatus.php
@@ -57,4 +57,23 @@ final class OrderInternalStatus {
 	 * @var string
 	 */
 	public const FAILED = 'wc-failed';
+
+	/**
+	 * Returns all internal order status values.
+	 *
+	 * @since 10.9.0
+	 *
+	 * @return string[]
+	 */
+	public static function get_all(): array {
+		return array(
+			self::PENDING,
+			self::PROCESSING,
+			self::ON_HOLD,
+			self::COMPLETED,
+			self::CANCELLED,
+			self::REFUNDED,
+			self::FAILED,
+		);
+	}
 }
diff --git a/plugins/woocommerce/src/Enums/OrderStatus.php b/plugins/woocommerce/src/Enums/OrderStatus.php
index 173c08e2067..bc596091a0c 100644
--- a/plugins/woocommerce/src/Enums/OrderStatus.php
+++ b/plugins/woocommerce/src/Enums/OrderStatus.php
@@ -106,4 +106,28 @@ final class OrderStatus {
 		self::FAILED,
 		self::CANCELLED,
 	);
+
+	/**
+	 * Returns all order status values defined in this class.
+	 *
+	 * @since 10.9.0
+	 *
+	 * @return string[]
+	 */
+	public static function get_all(): array {
+		return array(
+			self::PENDING,
+			self::FAILED,
+			self::ON_HOLD,
+			self::COMPLETED,
+			self::PROCESSING,
+			self::REFUNDED,
+			self::CANCELLED,
+			self::TRASH,
+			self::NEW,
+			self::AUTO_DRAFT,
+			self::DRAFT,
+			self::CHECKOUT_DRAFT,
+		);
+	}
 }
diff --git a/plugins/woocommerce/src/Enums/ProductStatus.php b/plugins/woocommerce/src/Enums/ProductStatus.php
index 22b91e3416f..fa0a627e72c 100644
--- a/plugins/woocommerce/src/Enums/ProductStatus.php
+++ b/plugins/woocommerce/src/Enums/ProductStatus.php
@@ -56,4 +56,23 @@ final class ProductStatus {
 	 * @var string
 	 */
 	public const FUTURE = 'future';
+
+	/**
+	 * Returns all product status values.
+	 *
+	 * @since 10.9.0
+	 *
+	 * @return string[]
+	 */
+	public static function get_all(): array {
+		return array(
+			self::AUTO_DRAFT,
+			self::DRAFT,
+			self::PENDING,
+			self::PRIVATE,
+			self::PUBLISH,
+			self::TRASH,
+			self::FUTURE,
+		);
+	}
 }
diff --git a/plugins/woocommerce/src/Enums/ProductStockStatus.php b/plugins/woocommerce/src/Enums/ProductStockStatus.php
index 37f6a5b6227..065e80a397c 100644
--- a/plugins/woocommerce/src/Enums/ProductStockStatus.php
+++ b/plugins/woocommerce/src/Enums/ProductStockStatus.php
@@ -35,4 +35,20 @@ final class ProductStockStatus {
 	 * @var string
 	 */
 	public const LOW_STOCK = 'lowstock';
+
+	/**
+	 * Returns all product stock status values.
+	 *
+	 * @since 10.9.0
+	 *
+	 * @return string[]
+	 */
+	public static function get_all(): array {
+		return array(
+			self::IN_STOCK,
+			self::OUT_OF_STOCK,
+			self::ON_BACKORDER,
+			self::LOW_STOCK,
+		);
+	}
 }
diff --git a/plugins/woocommerce/src/Enums/ProductType.php b/plugins/woocommerce/src/Enums/ProductType.php
index 7b2b973da50..a46489f0254 100644
--- a/plugins/woocommerce/src/Enums/ProductType.php
+++ b/plugins/woocommerce/src/Enums/ProductType.php
@@ -42,4 +42,21 @@ final class ProductType {
 	 * @var string
 	 */
 	public const VARIATION = 'variation';
+
+	/**
+	 * Returns all product type values.
+	 *
+	 * @since 10.9.0
+	 *
+	 * @return string[]
+	 */
+	public static function get_all(): array {
+		return array(
+			self::SIMPLE,
+			self::VARIABLE,
+			self::GROUPED,
+			self::EXTERNAL,
+			self::VARIATION,
+		);
+	}
 }