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,
+ );
+ }
}