0 ) { $ids[] = $id; } } return array_values( array_unique( $ids ) ); } /** * Normalize ability input to an array. * * @param mixed $input Raw ability input. * @param string $ability Ability name for error context. * * @return array|\WP_Error */ public static function input_array( $input, string $ability ) { if ( null === $input ) { return array(); } if ( is_array( $input ) ) { return $input; } return Errors::invalid( sprintf( /* translators: %s: ability name. */ __( 'Invalid input for ability "%s". Input must be an object.', 'learnpress' ), $ability ) ); } /** * Normalize status input into a unique sanitized status list. * * @param mixed $input String, CSV string, array, or null. * * @return array */ public static function status_list( $input ): array { if ( null === $input || '' === $input ) { return array(); } $values = is_array( $input ) ? $input : ( false !== strpos( (string) $input, ',' ) ? explode( ',', (string) $input ) : array( (string) $input ) ); $out = array(); foreach ( $values as $value ) { $status = LP_Helper::sanitize_params_submitted( (string) $value, 'key' ); if ( '' !== $status ) { $out[] = $status; } } return array_values( array_unique( $out ) ); } }