JezK
Edit File: OrderStatus.php
<?php declare( strict_types = 1 ); namespace Automattic\WooCommerce\Enums; /** * Enum class for all the order statuses. * * For a full documentation on the public order statuses, please refer to the following link: * https://woocommerce.com/document/managing-orders/order-statuses/ */ final class OrderStatus { /** * The order has been received, but no payment has been made. * * @var string */ public const PENDING = 'pending'; /** * The customer’s payment failed or was declined, and no payment has been successfully made. * * @var string */ public const FAILED = 'failed'; /** * The order is awaiting payment confirmation. * * @var string */ public const ON_HOLD = 'on-hold'; /** * Order fulfilled and complete. * * @var string */ public const COMPLETED = 'completed'; /** * Payment has been received (paid), and the stock has been reduced. * * @var string */ public const PROCESSING = 'processing'; /** * Orders are automatically put in the Refunded status when an admin or shop manager has fully refunded the order’s value after payment. * * @var string */ public const REFUNDED = 'refunded'; /** * The order was canceled by an admin or the customer. * * @var string */ public const CANCELLED = 'cancelled'; /** * The order is in the trash. * * @var string */ public const TRASH = 'trash'; /** * The order is a draft (legacy status). * * @var string */ public const NEW = 'new'; /** * The order is an automatically generated draft. * * @var string */ public const AUTO_DRAFT = 'auto-draft'; /** * Draft orders are created when customers start the checkout process while the block version of the checkout is in place. * * @var string */ public const DRAFT = 'draft'; /** * Checkout Draft orders are created when customers start the checkout process while the block version of the checkout is in place. * * @var string */ public const CHECKOUT_DRAFT = 'checkout-draft'; /** * Array of all the valid order statuses for a complete payment. * * @var string[] */ public const PAYMENT_COMPLETE_STATUSES = array( self::ON_HOLD, self::PENDING, self::FAILED, self::CANCELLED, ); /** * Returns every order status value defined by this enum, as a flat list of unprefixed slugs. * * It differs from the statuses WooCommerce registers in both directions. It carries * self::TRASH, self::NEW, self::AUTO_DRAFT and self::DRAFT, which wc_get_order_statuses() does * not return by default, and it cannot carry statuses an extension registers. * WC_Abstract_Order::set_status() accepts self::TRASH and self::AUTO_DRAFT even so, exempting * them from its own validation. * * self::CHECKOUT_DRAFT sits on the helper's side of that line: WooCommerce adds it through the * `wc_order_statuses` filter, and the Store API assigns it to live orders during checkout. * * For the registered statuses, use wc_get_order_statuses(). It returns a value => label map * keyed on the `wc-` prefixed slug, so comparing its keys with this enum's values needs * OrderUtil::remove_status_prefix(). OrderInternalStatus lists the seven core statuses in * prefixed form. * * @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, ); } }