*/ public static function options(): array { return [ self::PENDING => self::label(self::PENDING), self::CONFIRMED => self::label(self::CONFIRMED), self::DECLINED => self::label(self::DECLINED), self::CANCELLED => self::label(self::CANCELLED), self::COMPLETED => self::label(self::COMPLETED), self::EXPIRED => self::label(self::EXPIRED), self::FAILED => self::label(self::FAILED), ]; } /** * @return string[] */ public static function all(): array { return array_keys(self::options()); } /** * @return string[] */ public static function terminal(): array { return [ self::DECLINED, self::CANCELLED, self::COMPLETED, self::EXPIRED, self::FAILED, ]; } public static function valid(string $status): bool { return in_array($status, self::all(), true); } public static function reservesCapacity(string $status): bool { return in_array($status, [ self::PENDING, self::CONFIRMED, self::COMPLETED, ], true); } /** * @return array */ public static function bulk(): array { return [ 'pending' => esc_html__('Pending', 'daytidy'), 'confirm' => esc_html__('Confirm', 'daytidy'), 'decline' => esc_html__('Decline', 'daytidy'), 'cancel' => esc_html__('Cancel', 'daytidy'), 'complete' => esc_html__('Complete', 'daytidy'), 'expire' => esc_html__('Expire', 'daytidy'), 'fail' => esc_html__('Fail', 'daytidy'), 'paid' => esc_html__('Paid', 'daytidy'), 'unpaid' => esc_html__('Unpaid', 'daytidy'), 'payment_pending' => esc_html__('Payment Pending', 'daytidy'), 'payment_failed' => esc_html__('Payment Failed', 'daytidy'), 'payment_not_required' => esc_html__('Payment Not Required', 'daytidy'), 'refund' => esc_html__('Refund', 'daytidy'), ]; } }