*/ public static function get(): array { return self::sanitize( get_option( self::OPTION, array() ) ); } /** * Persist sanitized settings. * * @param array $value Raw option payload. * * @return void */ public static function update( array $value ): void { update_option( self::OPTION, self::sanitize( $value ), 'no' ); } /** * Sanitize input values against defaults. * * @param mixed $value Raw value. * * @return array */ private static function sanitize( $value ): array { $config = self::defaults(); $sanitized = is_array( $value ) ? $value : array(); $config['google'] = self::sanitize_token( $sanitized['google'] ?? $config['google'] ); $config['bing'] = self::sanitize_token( $sanitized['bing'] ?? $config['bing'] ); $config['yandex'] = self::sanitize_token( $sanitized['yandex'] ?? $config['yandex'] ); $config['baidu'] = self::sanitize_token( $sanitized['baidu'] ?? $config['baidu'] ); $config['pinterest'] = self::sanitize_token( $sanitized['pinterest'] ?? $config['pinterest'] ); return $config; } /** * Default configuration. * * @return array */ private static function defaults(): array { return array( 'google' => '', 'bing' => '', 'yandex' => '', 'baidu' => '', 'pinterest' => '', ); } /** * Sanitize webmaster verification token. * * @param mixed $value Raw value. * * @return string */ private static function sanitize_token( $value ): string { if ( ! is_scalar( $value ) ) { return ''; } return sanitize_text_field( trim( (string) $value ) ); } }