summaryrefslogtreecommitdiff
blob: 6faec4816760ec107142bdc0edfe78bdc67bc2ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

/*
 * Helper functions that are called from API even when module is inactive should be added here.
 * This file will be included in module-extras.php.
 */

if ( ! function_exists( 'jetpack_verification_validate' ) ) {
	function jetpack_verification_validate( $verification_services_codes ) {
		foreach ( $verification_services_codes as $key => $code ) {
			// Parse html meta tag if it does not look like a valid code
			if ( ! preg_match( '/^[a-z0-9_-]+$/i', $code ) ) {
				$code = jetpack_verification_get_code( $code );
			}

			$code = esc_attr( trim( $code ) );

			// limit length to 100 chars.
			$code = substr( $code, 0, 100 );

			/**
			 * Fire after each Verification code was validated.
			 *
			 * @module verification-tools
			 *
			 * @since 3.0.0
			 *
			 * @param string $key Verification service name.
			 * @param string $code Verification service code provided in field in the Tools menu.
			 */
			do_action( 'jetpack_site_verification_validate', $key, $code );

			$verification_services_codes[ $key ] = $code;
		}
		return $verification_services_codes;
	}
}

if ( ! function_exists( 'jetpack_verification_get_code' ) ) {
	function jetpack_verification_get_code( $code ) {
		$pattern = '/content=["\']?([^"\' ]*)["\' ]/is';
		preg_match( $pattern, $code, $match );
		if ( $match ) {
			return urldecode( $match[1] );
		} else {
			return false;
		}
	}
}