'object', 'additionalProperties' => true, ); } /** * Sanitises a pricing block of this method. * * @param array $pricing Raw block. */ abstract public function sanitize( array $pricing ): array; /** * Non-negative decimal string with the store decimals. * * @param mixed $value Raw value. */ protected function non_negative_decimal( mixed $value ): string { $value = is_scalar( $value ) ? (string) $value : '0'; $float = max( 0.0, (float) wc_format_decimal( $value ) ); return (string) wc_format_decimal( $float, wc_get_price_decimals() ); } }