# double-opt-in/3.0.51/core/SanitizeHelper.class.php

Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification, version 3.0.51. 39 lines.

- Page: https://pluginprobe.com/plugins/double-opt-in/3.0.51/code/core/SanitizeHelper.class.php
- Raw: https://pluginprobe.com/plugins/double-opt-in/3.0.51/raw/core/SanitizeHelper.class.php
- Modified: 2024-10-08T06:33:24+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/double-opt-in/3.0.51/code/core/SanitizeHelper.class.php#L10-L20`.

```php
<?php

namespace forge12\contactform7\CF7DoubleOptIn;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

class SanitizeHelper {
	/**
	 * Sanitizes an array by sanitizing the keys and values recursively.
	 *
	 * @param array $data The array to be sanitized.
	 *
	 * @return array The sanitized array.
	 */
	public static function sanitize_array( $data ): array {
		if ( ! is_array( $data ) ) {
			return [];
		}

		$sanitized_data = [];
		foreach ( $data as $key => $value ) {
			if(!apply_filters('f12_cf7_doubleoptin_do_sanitize_key_'.$key, true) || $key === 'body') {
				$sanitized_data[$key] = $value;
				continue;
			}

			if ( is_array( $value ) ) {
				$sanitized_data[ sanitize_text_field( $key ) ] = self::sanitize_array( $value );
			} else {
				$sanitized_data[ sanitize_text_field( $key ) ] = wp_kses_post( $value );
			}
		}

		return $sanitized_data;
	}

}
```
