__( 'Quote request', 'cleannetic' ), self::PENDING => __( 'Pending', 'cleannetic' ), self::CONFIRMED => __( 'Confirmed', 'cleannetic' ), self::IN_PROGRESS => __( 'In progress', 'cleannetic' ), self::COMPLETED => __( 'Completed', 'cleannetic' ), self::CANCELLED => __( 'Cancelled', 'cleannetic' ), ] ); } public static function payment_labels(): array { return apply_filters( 'cleannetic_payment_statuses', [ self::PAYMENT_UNPAID => __( 'Unpaid', 'cleannetic' ), self::PAYMENT_PARTIAL => __( 'Partially paid', 'cleannetic' ), self::PAYMENT_PAID => __( 'Paid', 'cleannetic' ), self::PAYMENT_REFUNDED => __( 'Refunded', 'cleannetic' ), ] ); } public static function is_valid( string $status ): bool { return array_key_exists( $status, self::labels() ); } public static function is_valid_payment( string $payment_status ): bool { return array_key_exists( $payment_status, self::payment_labels() ); } public static function label( string $status ): string { return self::labels()[ $status ] ?? ucfirst( str_replace( '_', ' ', $status ) ); } public static function payment_label( string $payment_status ): string { return self::payment_labels()[ $payment_status ] ?? ucfirst( $payment_status ); } }