Completed
Push — master ( caa748...46d5e9 )
by David
01:05
created
src/vendor/composer/autoload_psr4.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@
 block discarded – undo
2 2
 
3 3
 // autoload_psr4.php @generated by Composer
4 4
 
5
-$vendorDir = dirname( ( __DIR__ ) );
6
-$baseDir   = dirname( $vendorDir );
5
+$vendorDir = dirname((__DIR__));
6
+$baseDir   = dirname($vendorDir);
7 7
 
8 8
 return array();
Please login to merge, or discard this patch.
src/vendor/composer/autoload_real.php 2 patches
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -4,52 +4,52 @@
 block discarded – undo
4 4
 
5 5
 class ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b {
6 6
 
7
-	private static $loader;
8
-
9
-	public static function loadClassLoader( $class ) {
10
-		if ( 'Composer\Autoload\ClassLoader' === $class ) {
11
-			require __DIR__ . '/ClassLoader.php';
12
-		}
13
-	}
14
-
15
-	/**
16
-	 * @return \Composer\Autoload\ClassLoader
17
-	 */
18
-	public static function getLoader() {
19
-		if ( null !== self::$loader ) {
20
-			return self::$loader;
21
-		}
22
-
23
-		require __DIR__ . '/platform_check.php';
24
-
25
-		spl_autoload_register( array( 'ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader' ), true, true );
26
-		self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
-		spl_autoload_unregister( array( 'ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader' ) );
28
-
29
-		$useStaticLoader = PHP_VERSION_ID >= 50600 && ! defined( 'HHVM_VERSION' ) && ( ! function_exists( 'zend_loader_file_encoded' ) || ! zend_loader_file_encoded() );
30
-		if ( $useStaticLoader ) {
31
-			require __DIR__ . '/autoload_static.php';
32
-
33
-			call_user_func( \Composer\Autoload\ComposerStaticInit30c84c47a44576eaa4b38cc478d5e11b::getInitializer( $loader ) );
34
-		} else {
35
-			$map = require __DIR__ . '/autoload_namespaces.php';
36
-			foreach ( $map as $namespace => $path ) {
37
-				$loader->set( $namespace, $path );
38
-			}
39
-
40
-			$map = require __DIR__ . '/autoload_psr4.php';
41
-			foreach ( $map as $namespace => $path ) {
42
-				$loader->setPsr4( $namespace, $path );
43
-			}
44
-
45
-			$classMap = require __DIR__ . '/autoload_classmap.php';
46
-			if ( $classMap ) {
47
-				$loader->addClassMap( $classMap );
48
-			}
49
-		}
50
-
51
-		$loader->register( true );
52
-
53
-		return $loader;
54
-	}
7
+    private static $loader;
8
+
9
+    public static function loadClassLoader( $class ) {
10
+        if ( 'Composer\Autoload\ClassLoader' === $class ) {
11
+            require __DIR__ . '/ClassLoader.php';
12
+        }
13
+    }
14
+
15
+    /**
16
+     * @return \Composer\Autoload\ClassLoader
17
+     */
18
+    public static function getLoader() {
19
+        if ( null !== self::$loader ) {
20
+            return self::$loader;
21
+        }
22
+
23
+        require __DIR__ . '/platform_check.php';
24
+
25
+        spl_autoload_register( array( 'ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader' ), true, true );
26
+        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+        spl_autoload_unregister( array( 'ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader' ) );
28
+
29
+        $useStaticLoader = PHP_VERSION_ID >= 50600 && ! defined( 'HHVM_VERSION' ) && ( ! function_exists( 'zend_loader_file_encoded' ) || ! zend_loader_file_encoded() );
30
+        if ( $useStaticLoader ) {
31
+            require __DIR__ . '/autoload_static.php';
32
+
33
+            call_user_func( \Composer\Autoload\ComposerStaticInit30c84c47a44576eaa4b38cc478d5e11b::getInitializer( $loader ) );
34
+        } else {
35
+            $map = require __DIR__ . '/autoload_namespaces.php';
36
+            foreach ( $map as $namespace => $path ) {
37
+                $loader->set( $namespace, $path );
38
+            }
39
+
40
+            $map = require __DIR__ . '/autoload_psr4.php';
41
+            foreach ( $map as $namespace => $path ) {
42
+                $loader->setPsr4( $namespace, $path );
43
+            }
44
+
45
+            $classMap = require __DIR__ . '/autoload_classmap.php';
46
+            if ( $classMap ) {
47
+                $loader->addClassMap( $classMap );
48
+            }
49
+        }
50
+
51
+        $loader->register( true );
52
+
53
+        return $loader;
54
+    }
55 55
 }
Please login to merge, or discard this patch.
Spacing   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -6,9 +6,9 @@  discard block
 block discarded – undo
6 6
 
7 7
 	private static $loader;
8 8
 
9
-	public static function loadClassLoader( $class ) {
10
-		if ( 'Composer\Autoload\ClassLoader' === $class ) {
11
-			require __DIR__ . '/ClassLoader.php';
9
+	public static function loadClassLoader($class) {
10
+		if ('Composer\Autoload\ClassLoader' === $class) {
11
+			require __DIR__.'/ClassLoader.php';
12 12
 		}
13 13
 	}
14 14
 
@@ -16,39 +16,39 @@  discard block
 block discarded – undo
16 16
 	 * @return \Composer\Autoload\ClassLoader
17 17
 	 */
18 18
 	public static function getLoader() {
19
-		if ( null !== self::$loader ) {
19
+		if (null !== self::$loader) {
20 20
 			return self::$loader;
21 21
 		}
22 22
 
23
-		require __DIR__ . '/platform_check.php';
23
+		require __DIR__.'/platform_check.php';
24 24
 
25
-		spl_autoload_register( array( 'ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader' ), true, true );
25
+		spl_autoload_register(array('ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader'), true, true);
26 26
 		self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
-		spl_autoload_unregister( array( 'ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader' ) );
27
+		spl_autoload_unregister(array('ComposerAutoloaderInit30c84c47a44576eaa4b38cc478d5e11b', 'loadClassLoader'));
28 28
 
29
-		$useStaticLoader = PHP_VERSION_ID >= 50600 && ! defined( 'HHVM_VERSION' ) && ( ! function_exists( 'zend_loader_file_encoded' ) || ! zend_loader_file_encoded() );
30
-		if ( $useStaticLoader ) {
31
-			require __DIR__ . '/autoload_static.php';
29
+		$useStaticLoader = PHP_VERSION_ID >= 50600 && ! defined('HHVM_VERSION') && ( ! function_exists('zend_loader_file_encoded') || ! zend_loader_file_encoded());
30
+		if ($useStaticLoader) {
31
+			require __DIR__.'/autoload_static.php';
32 32
 
33
-			call_user_func( \Composer\Autoload\ComposerStaticInit30c84c47a44576eaa4b38cc478d5e11b::getInitializer( $loader ) );
33
+			call_user_func(\Composer\Autoload\ComposerStaticInit30c84c47a44576eaa4b38cc478d5e11b::getInitializer($loader));
34 34
 		} else {
35
-			$map = require __DIR__ . '/autoload_namespaces.php';
36
-			foreach ( $map as $namespace => $path ) {
37
-				$loader->set( $namespace, $path );
35
+			$map = require __DIR__.'/autoload_namespaces.php';
36
+			foreach ($map as $namespace => $path) {
37
+				$loader->set($namespace, $path);
38 38
 			}
39 39
 
40
-			$map = require __DIR__ . '/autoload_psr4.php';
41
-			foreach ( $map as $namespace => $path ) {
42
-				$loader->setPsr4( $namespace, $path );
40
+			$map = require __DIR__.'/autoload_psr4.php';
41
+			foreach ($map as $namespace => $path) {
42
+				$loader->setPsr4($namespace, $path);
43 43
 			}
44 44
 
45
-			$classMap = require __DIR__ . '/autoload_classmap.php';
46
-			if ( $classMap ) {
47
-				$loader->addClassMap( $classMap );
45
+			$classMap = require __DIR__.'/autoload_classmap.php';
46
+			if ($classMap) {
47
+				$loader->addClassMap($classMap);
48 48
 			}
49 49
 		}
50 50
 
51
-		$loader->register( true );
51
+		$loader->register(true);
52 52
 
53 53
 		return $loader;
54 54
 	}
Please login to merge, or discard this patch.
src/wordlift-entity-type.php 2 patches
Indentation   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -10,8 +10,8 @@  discard block
 block discarded – undo
10 10
  */
11 11
 function wl_set_entity_main_type( $post_id, $type_uri ) {
12 12
 
13
-	Wordlift_Entity_Type_Service::get_instance()
14
-								->set( $post_id, $type_uri );
13
+    Wordlift_Entity_Type_Service::get_instance()
14
+                                ->set( $post_id, $type_uri );
15 15
 
16 16
 }
17 17
 
@@ -20,39 +20,39 @@  discard block
 block discarded – undo
20 20
  */
21 21
 function wl_print_entity_type_inline_js() {
22 22
 
23
-	$terms = get_terms( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array( 'get' => 'all' ) );
24
-
25
-	// Load the type data.
26
-	$schema_service = Wordlift_Schema_Service::get_instance();
27
-	$entity_types   = array_reduce(
28
-		$terms,
29
-		function ( $carry, $term ) use ( $schema_service ) {
30
-			$type = $schema_service->get_schema( $term->slug );
31
-
32
-			// Skip if no `uri`.
33
-			if ( empty( $type['uri'] ) ) {
34
-				return $carry;
35
-			}
36
-
37
-			$carry[] = array(
38
-				'label'     => $term->name,
39
-				'uri'       => $type['uri'],
40
-				'css'       => $type['css_class'],
41
-				'sameAs'    => isset( $type['same_as'] ) ? $type['same_as'] : array(),
42
-				'slug'      => $term->slug,
43
-				'templates' => ( isset( $type['templates'] ) ? $type['templates'] : array() ),
44
-			);
45
-
46
-			return $carry;
47
-		},
48
-		array()
49
-	);
50
-
51
-	// Hook to the Block Editor script.
52
-	wp_localize_script( 'wl-block-editor', '_wlEntityTypes', $entity_types );
53
-
54
-	// Hook to the Classic Editor script, see Wordlift_Admin_Post_Edit_Page.
55
-	wp_localize_script( 'wl-classic-editor', '_wlEntityTypes', $entity_types );
23
+    $terms = get_terms( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array( 'get' => 'all' ) );
24
+
25
+    // Load the type data.
26
+    $schema_service = Wordlift_Schema_Service::get_instance();
27
+    $entity_types   = array_reduce(
28
+        $terms,
29
+        function ( $carry, $term ) use ( $schema_service ) {
30
+            $type = $schema_service->get_schema( $term->slug );
31
+
32
+            // Skip if no `uri`.
33
+            if ( empty( $type['uri'] ) ) {
34
+                return $carry;
35
+            }
36
+
37
+            $carry[] = array(
38
+                'label'     => $term->name,
39
+                'uri'       => $type['uri'],
40
+                'css'       => $type['css_class'],
41
+                'sameAs'    => isset( $type['same_as'] ) ? $type['same_as'] : array(),
42
+                'slug'      => $term->slug,
43
+                'templates' => ( isset( $type['templates'] ) ? $type['templates'] : array() ),
44
+            );
45
+
46
+            return $carry;
47
+        },
48
+        array()
49
+    );
50
+
51
+    // Hook to the Block Editor script.
52
+    wp_localize_script( 'wl-block-editor', '_wlEntityTypes', $entity_types );
53
+
54
+    // Hook to the Classic Editor script, see Wordlift_Admin_Post_Edit_Page.
55
+    wp_localize_script( 'wl-classic-editor', '_wlEntityTypes', $entity_types );
56 56
 
57 57
 }
58 58
 
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -8,10 +8,10 @@  discard block
 block discarded – undo
8 8
  *
9 9
  * @deprecated use Wordlift_Entity_Type_Service::get_instance()->set( $post_id, $type_uri )
10 10
  */
11
-function wl_set_entity_main_type( $post_id, $type_uri ) {
11
+function wl_set_entity_main_type($post_id, $type_uri) {
12 12
 
13 13
 	Wordlift_Entity_Type_Service::get_instance()
14
-								->set( $post_id, $type_uri );
14
+								->set($post_id, $type_uri);
15 15
 
16 16
 }
17 17
 
@@ -20,17 +20,17 @@  discard block
 block discarded – undo
20 20
  */
21 21
 function wl_print_entity_type_inline_js() {
22 22
 
23
-	$terms = get_terms( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array( 'get' => 'all' ) );
23
+	$terms = get_terms(Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, array('get' => 'all'));
24 24
 
25 25
 	// Load the type data.
26 26
 	$schema_service = Wordlift_Schema_Service::get_instance();
27 27
 	$entity_types   = array_reduce(
28 28
 		$terms,
29
-		function ( $carry, $term ) use ( $schema_service ) {
30
-			$type = $schema_service->get_schema( $term->slug );
29
+		function($carry, $term) use ($schema_service) {
30
+			$type = $schema_service->get_schema($term->slug);
31 31
 
32 32
 			// Skip if no `uri`.
33
-			if ( empty( $type['uri'] ) ) {
33
+			if (empty($type['uri'])) {
34 34
 				return $carry;
35 35
 			}
36 36
 
@@ -38,9 +38,9 @@  discard block
 block discarded – undo
38 38
 				'label'     => $term->name,
39 39
 				'uri'       => $type['uri'],
40 40
 				'css'       => $type['css_class'],
41
-				'sameAs'    => isset( $type['same_as'] ) ? $type['same_as'] : array(),
41
+				'sameAs'    => isset($type['same_as']) ? $type['same_as'] : array(),
42 42
 				'slug'      => $term->slug,
43
-				'templates' => ( isset( $type['templates'] ) ? $type['templates'] : array() ),
43
+				'templates' => (isset($type['templates']) ? $type['templates'] : array()),
44 44
 			);
45 45
 
46 46
 			return $carry;
@@ -49,13 +49,13 @@  discard block
 block discarded – undo
49 49
 	);
50 50
 
51 51
 	// Hook to the Block Editor script.
52
-	wp_localize_script( 'wl-block-editor', '_wlEntityTypes', $entity_types );
52
+	wp_localize_script('wl-block-editor', '_wlEntityTypes', $entity_types);
53 53
 
54 54
 	// Hook to the Classic Editor script, see Wordlift_Admin_Post_Edit_Page.
55
-	wp_localize_script( 'wl-classic-editor', '_wlEntityTypes', $entity_types );
55
+	wp_localize_script('wl-classic-editor', '_wlEntityTypes', $entity_types);
56 56
 
57 57
 }
58 58
 
59 59
 // Allow Classic and Block Editor scripts to register first.
60
-add_action( 'admin_print_scripts-post.php', 'wl_print_entity_type_inline_js', 11 );
61
-add_action( 'admin_print_scripts-post-new.php', 'wl_print_entity_type_inline_js', 11 );
60
+add_action('admin_print_scripts-post.php', 'wl_print_entity_type_inline_js', 11);
61
+add_action('admin_print_scripts-post-new.php', 'wl_print_entity_type_inline_js', 11);
Please login to merge, or discard this patch.
src/includes/class-wordlift-countries.php 2 patches
Indentation   +516 added lines, -516 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
  */
12 12
 
13 13
 if ( ! defined( 'ABSPATH' ) ) {
14
-	exit;
14
+    exit;
15 15
 }
16 16
 
17 17
 /**
@@ -21,520 +21,520 @@  discard block
 block discarded – undo
21 21
  */
22 22
 class Wordlift_Countries {
23 23
 
24
-	/**
25
-	 * An array that will contain country codes => country names pairs. It gets lazily loaded the first time by the
26
-	 * `get_countries` function.
27
-	 *
28
-	 * @since 3.18.0
29
-	 * @var array An array of country codes => country names pairs or NULL if not initialized yet.
30
-	 */
31
-	private static $countries = array();
32
-
33
-	/**
34
-	 * The list of supported country codes, this is populated by self::lazy_populate_codes_and_country_codes_array.
35
-	 *
36
-	 * WARNING! If you change the list of supported countries, *you have* to add the related flag
37
-	 * in the images/flags folder.
38
-	 *
39
-	 * @since 3.18.0
40
-	 *
41
-	 * @var array An array of country codes => supported_languages_array
42
-	 */
43
-	public static $codes = array();
44
-
45
-	/**
46
-	 * The list of country codes, this is populated by self::lazy_populate_codes_and_country_codes_array.
47
-	 *
48
-	 * WARNING! If you change the list of supported countries, *you have* to add the related flag
49
-	 * in the images/flags folder.
50
-	 *
51
-	 * @since 3.18.0
52
-	 *
53
-	 * @var array An array of country codes => country names.
54
-	 */
55
-	private static $country_codes = array();
56
-
57
-	/**
58
-	 * An array of flag filenames.
59
-	 *
60
-	 * @since 3.20.0
61
-	 *
62
-	 * @var array An array of flag filenames.
63
-	 */
64
-	private static $country_flags = array(
65
-		'af' => 'Afghanistan',
66
-		'ax' => 'Aland',
67
-		'al' => 'Albania',
68
-		'dz' => 'Algeria',
69
-		'as' => 'American-Samoa',
70
-		'ad' => 'Andorra',
71
-		'ao' => 'Angola',
72
-		'ai' => 'Anguilla',
73
-		'aq' => 'Antarctica',
74
-		'ag' => 'Antigua-and-Barbuda',
75
-		'ar' => 'Argentina',
76
-		'am' => 'Armenia',
77
-		'aw' => 'Aruba',
78
-		'au' => 'Australia',
79
-		'at' => 'Austria',
80
-		'az' => 'Azerbaijan',
81
-		'bs' => 'Bahamas',
82
-		'bh' => 'Bahrain',
83
-		'bd' => 'Bangladesh',
84
-		'bb' => 'Barbados',
85
-		'by' => 'Belarus',
86
-		'be' => 'Belgium',
87
-		'bz' => 'Belize',
88
-		'bj' => 'Benin',
89
-		'bm' => 'Bermuda',
90
-		'bt' => 'Bhutan',
91
-		'bo' => 'Bolivia',
92
-		// Uses Netherlands' flag, see https://en.wikipedia.org/wiki/Caribbean_Netherlands.
93
-		'bq' => 'Netherlands',
94
-		'ba' => 'Bosnia-and-Herzegovina',
95
-		'bw' => 'Botswana',
96
-		'bv' => 'Bouvet Island',
97
-		'br' => 'Brazil',
98
-		'io' => null,
99
-		'bn' => 'Brunei',
100
-		'bg' => 'Bulgaria',
101
-		'bf' => 'Burkina-Faso',
102
-		'bi' => 'Burundi',
103
-		'kh' => 'Cambodia',
104
-		'cm' => 'Cameroon',
105
-		'ca' => 'Canada',
106
-		'cv' => 'Cape-Verde',
107
-		'ky' => 'Cayman-Islands',
108
-		'cf' => 'Central-African-Republic',
109
-		'td' => 'Chad',
110
-		'cl' => 'Chile',
111
-		'cn' => 'China',
112
-		'cx' => 'Christmas-Island',
113
-		'cc' => 'Cocos-Keeling-Islands',
114
-		'co' => 'Colombia',
115
-		'km' => 'Comoros',
116
-		'cg' => 'Republic-of-the-Congo',
117
-		'cd' => 'Democratic-Republic-of-the-Congo',
118
-		'ck' => 'Cook-Islands',
119
-		'cr' => 'Costa-Rica',
120
-		'ci' => 'Cote-dIvoire',
121
-		'hr' => 'Croatia',
122
-		'cu' => 'Cuba',
123
-		'cw' => 'Curacao',
124
-		'cy' => 'Cyprus',
125
-		'cz' => 'Czech-Republic',
126
-		'dk' => 'Denmark',
127
-		'dj' => 'Djibouti',
128
-		'dm' => 'Dominica',
129
-		'do' => 'Dominican-Republic',
130
-		'ec' => 'Ecuador',
131
-		'eg' => 'Egypt',
132
-		'sv' => 'El-Salvador',
133
-		'gq' => 'Equatorial-Guinea',
134
-		'er' => 'Eritrea',
135
-		'ee' => 'Estonia',
136
-		'et' => 'Ethiopia',
137
-		'fk' => 'Falkland-Islands',
138
-		'fo' => 'Faroes',
139
-		'fj' => 'Fiji',
140
-		'fi' => 'Finland',
141
-		'fr' => 'France',
142
-		// Uses France's flag, see https://en.wikipedia.org/wiki/French_Guiana.
143
-		'gf' => 'France',
144
-		'pf' => 'French-Polynesia',
145
-		'tf' => 'French-Southern-Territories',
146
-		'ga' => 'Gabon',
147
-		'gm' => 'Gambia',
148
-		'ge' => 'Georgia',
149
-		'de' => 'Germany',
150
-		'gh' => 'Ghana',
151
-		'gi' => 'Gibraltar',
152
-		'gr' => 'Greece',
153
-		'gl' => 'Greenland',
154
-		'gd' => 'Grenada',
155
-		// Uses France's flag, see https://en.wikipedia.org/wiki/Guadeloupe.
156
-		'gp' => 'France',
157
-		'gu' => 'Guam',
158
-		'gt' => 'Guatemala',
159
-		'gg' => 'Guernsey',
160
-		'gn' => 'Guinea',
161
-		'gw' => 'Guinea-Bissau',
162
-		'gy' => 'Guyana',
163
-		'ht' => 'Haiti',
164
-		// Uses Australia's flag, see https://en.wikipedia.org/wiki/Heard_Island_and_McDonald_Islands.
165
-		'hm' => 'Australia',
166
-		'va' => 'Vatican-City',
167
-		'hn' => 'Honduras',
168
-		'hk' => 'Hong-Kong',
169
-		'hu' => 'Hungary',
170
-		'is' => 'Iceland',
171
-		'in' => 'India',
172
-		'id' => 'Indonesia',
173
-		'ir' => 'Iran',
174
-		'iq' => 'Iraq',
175
-		'ie' => 'Ireland',
176
-		'im' => 'Isle-of-Man',
177
-		'il' => 'Israel',
178
-		'it' => 'Italy',
179
-		'jm' => 'Jamaica',
180
-		'jp' => 'Japan',
181
-		'je' => 'Jersey',
182
-		'jo' => 'Jordan',
183
-		'kz' => 'Kazakhstan',
184
-		'ke' => 'Kenya',
185
-		'ki' => 'Kiribati',
186
-		'kp' => 'North-Korea',
187
-		'kr' => 'South-Korea',
188
-		'kw' => 'Kuwait',
189
-		'kg' => 'Kyrgyzstan',
190
-		'la' => 'Laos',
191
-		'lv' => 'Latvia',
192
-		'lb' => 'Lebanon',
193
-		'ls' => 'Lesotho',
194
-		'lr' => 'Liberia',
195
-		'ly' => 'Libya',
196
-		'li' => 'Liechtenstein',
197
-		'lt' => 'Lithuania',
198
-		'lu' => 'Luxembourg',
199
-		'mo' => 'Macau',
200
-		'mk' => 'Macedonia',
201
-		'mg' => 'Madagascar',
202
-		'mw' => 'Malawi',
203
-		'my' => 'Malaysia',
204
-		'mv' => 'Maldives',
205
-		'ml' => 'Mali',
206
-		'mt' => 'Malta',
207
-		'mh' => 'Marshall-Islands',
208
-		'mq' => 'Martinique',
209
-		'mr' => 'Mauritania',
210
-		'mu' => 'Mauritius',
211
-		'yt' => 'Mayotte',
212
-		'mx' => 'Mexico',
213
-		'fm' => 'Micronesia',
214
-		'md' => 'Moldova',
215
-		'mc' => 'Monaco',
216
-		'mn' => 'Mongolia',
217
-		'me' => 'Montenegro',
218
-		'ms' => 'Montserrat',
219
-		'ma' => 'Morocco',
220
-		'mz' => 'Mozambique',
221
-		'mm' => 'Myanmar',
222
-		'na' => 'Namibia',
223
-		'nr' => 'Nauru',
224
-		'np' => 'Nepal',
225
-		'nl' => 'Netherlands',
226
-		'nc' => 'New-Caledonia',
227
-		'nz' => 'New-Zealand',
228
-		'ni' => 'Nicaragua',
229
-		'ne' => 'Niger',
230
-		'ng' => 'Nigeria',
231
-		'nu' => 'Niue',
232
-		'nf' => 'Norfolk-Island',
233
-		'mp' => 'Northern-Mariana-Islands',
234
-		'no' => 'Norway',
235
-		'om' => 'Oman',
236
-		'pk' => 'Pakistan',
237
-		'pw' => 'Palau',
238
-		'ps' => 'Palestine',
239
-		'pa' => 'Panama',
240
-		'pg' => 'Papua-New-Guinea',
241
-		'py' => 'Paraguay',
242
-		'pe' => 'Peru',
243
-		'ph' => 'Philippines',
244
-		'pn' => 'Pitcairn-Islands',
245
-		'pl' => 'Poland',
246
-		'pt' => 'Portugal',
247
-		'pr' => 'Puerto Rico',
248
-		'qa' => 'Qatar',
249
-		// Uses France's flag, see https://en.wikipedia.org/wiki/R%C3%A9union.
250
-		're' => 'France',
251
-		'ro' => 'Romania',
252
-		'ru' => 'Russia',
253
-		'rw' => 'Rwanda',
254
-		'bl' => 'Saint-Barthelemy',
255
-		'sh' => 'Saint-Helena',
256
-		'kn' => 'Saint-Kitts-and-Nevis',
257
-		'lc' => 'Saint-Lucia',
258
-		'mf' => 'Saint-Martin',
259
-		// Uses France's flag, see https://en.wikipedia.org/wiki/Saint_Pierre_and_Miquelon.
260
-		'pm' => 'France',
261
-		'vc' => 'Saint-Vincent-and-the-Grenadines',
262
-		'ws' => 'Samoa',
263
-		'sm' => 'San-Marino',
264
-		'st' => 'Sao-Tome-and-Principe',
265
-		'sa' => 'Saudi-Arabia',
266
-		'sn' => 'Senegal',
267
-		'rs' => 'Serbia',
268
-		'sc' => 'Seychelles',
269
-		'sl' => 'Sierra-Leone',
270
-		'sg' => 'Singapore',
271
-		'sx' => null,
272
-		'sk' => 'Slovakia',
273
-		'si' => 'Slovenia',
274
-		'sb' => 'Solomon-Islands',
275
-		'so' => 'Somalia',
276
-		'za' => 'South-Africa',
277
-		'gs' => 'South-Georgia-and-the-South-Sandwich-Islands',
278
-		'ss' => 'South-Sudan',
279
-		'es' => 'Spain',
280
-		'lk' => 'Sri-Lanka',
281
-		'sd' => 'Sudan',
282
-		'sr' => 'Suriname',
283
-		// Uses Norway's flag, see https://en.wikipedia.org/wiki/Svalbard_and_Jan_Mayen.
284
-		'sj' => 'Norway',
285
-		'sz' => 'Swaziland',
286
-		'se' => 'Sweden',
287
-		'ch' => 'Switzerland',
288
-		'sy' => 'Syria',
289
-		'tw' => 'Taiwan',
290
-		'tj' => 'Tajikistan',
291
-		'tz' => 'Tanzania',
292
-		'th' => 'Thailand',
293
-		'tl' => 'East-Timor',
294
-		'tg' => 'Togo',
295
-		'tk' => 'Tokelau',
296
-		'to' => 'Tonga',
297
-		'tt' => 'Trinidad-and-Tobago',
298
-		'tn' => 'Tunisia',
299
-		'tr' => 'Turkey',
300
-		'tm' => 'Turkmenistan',
301
-		'tc' => 'Turks-and-Caicos-Islands',
302
-		'tv' => 'Tuvalu',
303
-		'ug' => 'Uganda',
304
-		'ua' => 'Ukraine',
305
-		'ae' => 'United-Arab-Emirates',
306
-		'gb' => 'United-Kingdom',
307
-		'uk' => 'United-Kingdom',
308
-		'us' => 'United-States',
309
-		'um' => 'United-States',
310
-		'uy' => 'Uruguay',
311
-		'uz' => 'Uzbekistan',
312
-		'vu' => 'Vanuatu',
313
-		've' => 'Venezuela',
314
-		'vn' => 'Vietnam',
315
-		'vg' => 'British-Virgin-Islands',
316
-		'vi' => 'US-Virgin-Islands',
317
-		'wf' => 'Wallis-And-Futuna',
318
-		'eh' => 'Western-Sahara',
319
-		'ye' => 'Yemen',
320
-		'zm' => 'Zambia',
321
-		'zw' => 'Zimbabwe',
322
-	);
323
-
324
-	/**
325
-	 * Parse_country_code_json_file_to_array.
326
-	 *
327
-	 * @param string $file_name The json file name where the supported country
328
-	 * and languages are present.
329
-	 *
330
-	 * @return array An Array having two maps, country_code_language_map and country_code_name_map.
331
-	 */
332
-	public static function parse_country_code_json_file_to_array( $file_name ) {
333
-		// phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
334
-		$json_file_contents = file_get_contents( $file_name );
335
-		$decoded_array      = json_decode( $json_file_contents, true );
336
-		// decoded array would be null if the json_decode parses
337
-		// invalid content.
338
-		if ( null === $decoded_array ) {
339
-			return array(
340
-				'country_code_name_map'     => array(),
341
-				'country_code_language_map' => array(),
342
-			);
343
-		}
344
-		$result = array();
345
-		// country_code => country_language map.
346
-		$country_code_language_map = array();
347
-		// country_code => country_name map.
348
-		$country_code_name_map = array();
349
-		foreach ( $decoded_array as $key => $value ) {
350
-			$country_code_language_map[ $key ] = $value['supportedLang'];
351
-			$country_code_name_map [ $key ]    = $value['defaultLoc']['loc_name'];
352
-		}
353
-		$result['country_code_language_map'] = $country_code_language_map;
354
-		$result['country_code_name_map']     = $country_code_name_map;
355
-
356
-		return $result;
357
-	}
358
-
359
-	/**
360
-	 * Get the list of WordLift's supported country codes from json file mapping country_code => languages.
361
-	 *
362
-	 * @param string $file_name The json file where the supported country codes and language_codes are stored.
363
-	 *
364
-	 * @return array An Array having two maps, country_code_language_map and country_code_name_map.
365
-	 * @since 3.22.5.1
366
-	 */
367
-	public static function get_codes_from_json_file( $file_name ) {
368
-		if ( file_exists( $file_name ) ) {
369
-			return self::parse_country_code_json_file_to_array( $file_name );
370
-		}
371
-
372
-		return array(
373
-			'country_code_name_map'     => array(),
374
-			'country_code_language_map' => array(),
375
-		);
376
-	}
377
-
378
-	/**
379
-	 * Returns the country language pairs.
380
-	 *
381
-	 * @return array The country language pairs.
382
-	 * @since 3.18.0
383
-	 */
384
-	public static function get_codes() {
385
-		return self::$codes;
386
-	}
387
-
388
-	/**
389
-	 * Populate self::codes and self::country_codes if not done before.
390
-	 *
391
-	 * @param string $file_name The json file where the supported country codes and language_codes are stored.
392
-	 *
393
-	 * @return void
394
-	 * @since 3.22.5.1
395
-	 */
396
-	private static function lazy_populate_codes_and_country_codes_array( $file_name ) {
397
-		if ( null === $file_name ) {
398
-			$file_name = __DIR__ . '/supported-countries.json';
399
-		}
400
-		if ( 0 === count( self::$codes ) || 0 === count( self::$country_codes ) ) {
401
-			// populate the two arrays.
402
-			$result_array        = self::get_codes_from_json_file( $file_name );
403
-			self::$codes         = $result_array['country_code_language_map'];
404
-			self::$country_codes = $result_array['country_code_name_map'];
405
-		}
406
-
407
-	}
408
-
409
-	/**
410
-	 * Reset codes_and_country_codes static variable, used for testing
411
-	 *
412
-	 * @return void
413
-	 * @since 3.22.5.1
414
-	 */
415
-	public static function reset_codes_and_country_codes() {
416
-		self::$codes         = array();
417
-		self::$country_codes = array();
418
-	}
419
-
420
-	/**
421
-	 * Get the list of WordLift's supported countries in an array with country code => country name pairs.
422
-	 *
423
-	 * @param string|false $lang Optional. The language code we are looking for. Default `any`.
424
-	 *
425
-	 * @param string|null  $file_name Optional. The json file containing country codes
426
-	 *   and language data.
427
-	 *
428
-	 * @return array An array with country code => country name pairs.
429
-	 * @since 3.18.0
430
-	 */
431
-	public static function get_countries( $lang = false, $file_name = null ) {
432
-
433
-		// populate the codes and countries array if it is not done before.
434
-		self::lazy_populate_codes_and_country_codes_array( $file_name );
435
-
436
-		// Lazily load the countries.
437
-		// $lang_key = false === $lang ? 'any' : $lang;
438
-		$lang_key = 'any';
439
-		$lang     = '';
440
-
441
-		if ( isset( self::$countries[ $lang_key ] ) ) {
442
-			return self::$countries[ $lang_key ];
443
-		}
444
-
445
-		// Prepare the array.
446
-		self::$countries[ $lang ] = array();
447
-
448
-		// Get the country names from WP's own (multisite) function.
449
-		foreach ( self::$codes as $key => $languages ) {
450
-			if (
451
-				// Process all countries if there is no language specified.
452
-				empty( $lang ) ||
453
-
454
-				// Or if there are no language limitations for current country.
455
-				empty( self::$codes[ $key ] ) ||
456
-
457
-				// Or if the language code exists for current country.
458
-				! empty( $lang ) && in_array( $lang, self::$codes[ $key ], true )
459
-			) {
460
-				self::$countries[ $lang_key ][ $key ] = self::format_country_code( $key );
461
-			}
462
-		}
463
-
464
-		// Sort by country name.
465
-		asort( self::$countries[ $lang_key ] );
466
-
467
-		// We don't sort here because `asort` returns bool instead of sorted array.
468
-		return self::$countries[ $lang_key ];
469
-	}
470
-
471
-	/**
472
-	 * Returns the country for a country code. This function is a clone of WP's function provided in `ms.php`.
473
-	 *
474
-	 * @param string $code Optional. The two-letter country code. Default empty.
475
-	 *
476
-	 * @return string The country corresponding to $code if it exists. If it does not exist,
477
-	 *                then the first two letters of $code is returned.
478
-	 * @since 3.18.0
479
-	 */
480
-	private static function format_country_code( $code = '' ) {
481
-
482
-		$code = strtolower( substr( $code, 0, 2 ) );
483
-		/**
484
-		 * Filters the country codes.
485
-		 *
486
-		 * @param array $country_codes Key/value pair of country codes where key is the short version.
487
-		 * @param string $code A two-letter designation of the country.
488
-		 *
489
-		 * @since 3.18.0
490
-		 */
491
-		$country_codes = apply_filters( 'country_code', self::$country_codes, $code );
492
-
493
-		return strtr( $code, $country_codes );
494
-	}
495
-
496
-	/**
497
-	 * Get a flag URL.
498
-	 *
499
-	 * @param string $country_code The country code.
500
-	 *
501
-	 * @return string|null The flag url or null if not available.
502
-	 * @since 3.20.0
503
-	 */
504
-	public static function get_flag_url( $country_code ) {
505
-
506
-		// Bail out if we don't have the flag.
507
-		if ( ! isset( self::$country_flags[ $country_code ] )
508
-			 || ( self::$country_flags[ $country_code ] ) === null ) {
509
-			return null;
510
-		}
511
-
512
-		return plugin_dir_url( __DIR__ )
513
-			   . 'images/flags/16/'
514
-			   . self::$country_flags[ $country_code ]
515
-			   . '.png';
516
-	}
517
-
518
-	/**
519
-	 * Get a country name given a country code.
520
-	 *
521
-	 * @param string $country_code The 2-letters country code.
522
-	 *
523
-	 * @return null|string The country name (in English) or null if not found.
524
-	 * @since 3.20.0
525
-	 */
526
-	public static function get_country_name( $country_code ) {
527
-
528
-		/**
529
-		 * @since 3.27.6
530
-		 *
531
-		 * @see https://github.com/insideout10/wordlift-plugin/issues/1188
532
-		 */
533
-		if ( ! isset( self::$country_codes[ $country_code ] ) ) {
534
-			return '';
535
-		}
536
-
537
-		return self::$country_codes[ $country_code ];
538
-	}
24
+    /**
25
+     * An array that will contain country codes => country names pairs. It gets lazily loaded the first time by the
26
+     * `get_countries` function.
27
+     *
28
+     * @since 3.18.0
29
+     * @var array An array of country codes => country names pairs or NULL if not initialized yet.
30
+     */
31
+    private static $countries = array();
32
+
33
+    /**
34
+     * The list of supported country codes, this is populated by self::lazy_populate_codes_and_country_codes_array.
35
+     *
36
+     * WARNING! If you change the list of supported countries, *you have* to add the related flag
37
+     * in the images/flags folder.
38
+     *
39
+     * @since 3.18.0
40
+     *
41
+     * @var array An array of country codes => supported_languages_array
42
+     */
43
+    public static $codes = array();
44
+
45
+    /**
46
+     * The list of country codes, this is populated by self::lazy_populate_codes_and_country_codes_array.
47
+     *
48
+     * WARNING! If you change the list of supported countries, *you have* to add the related flag
49
+     * in the images/flags folder.
50
+     *
51
+     * @since 3.18.0
52
+     *
53
+     * @var array An array of country codes => country names.
54
+     */
55
+    private static $country_codes = array();
56
+
57
+    /**
58
+     * An array of flag filenames.
59
+     *
60
+     * @since 3.20.0
61
+     *
62
+     * @var array An array of flag filenames.
63
+     */
64
+    private static $country_flags = array(
65
+        'af' => 'Afghanistan',
66
+        'ax' => 'Aland',
67
+        'al' => 'Albania',
68
+        'dz' => 'Algeria',
69
+        'as' => 'American-Samoa',
70
+        'ad' => 'Andorra',
71
+        'ao' => 'Angola',
72
+        'ai' => 'Anguilla',
73
+        'aq' => 'Antarctica',
74
+        'ag' => 'Antigua-and-Barbuda',
75
+        'ar' => 'Argentina',
76
+        'am' => 'Armenia',
77
+        'aw' => 'Aruba',
78
+        'au' => 'Australia',
79
+        'at' => 'Austria',
80
+        'az' => 'Azerbaijan',
81
+        'bs' => 'Bahamas',
82
+        'bh' => 'Bahrain',
83
+        'bd' => 'Bangladesh',
84
+        'bb' => 'Barbados',
85
+        'by' => 'Belarus',
86
+        'be' => 'Belgium',
87
+        'bz' => 'Belize',
88
+        'bj' => 'Benin',
89
+        'bm' => 'Bermuda',
90
+        'bt' => 'Bhutan',
91
+        'bo' => 'Bolivia',
92
+        // Uses Netherlands' flag, see https://en.wikipedia.org/wiki/Caribbean_Netherlands.
93
+        'bq' => 'Netherlands',
94
+        'ba' => 'Bosnia-and-Herzegovina',
95
+        'bw' => 'Botswana',
96
+        'bv' => 'Bouvet Island',
97
+        'br' => 'Brazil',
98
+        'io' => null,
99
+        'bn' => 'Brunei',
100
+        'bg' => 'Bulgaria',
101
+        'bf' => 'Burkina-Faso',
102
+        'bi' => 'Burundi',
103
+        'kh' => 'Cambodia',
104
+        'cm' => 'Cameroon',
105
+        'ca' => 'Canada',
106
+        'cv' => 'Cape-Verde',
107
+        'ky' => 'Cayman-Islands',
108
+        'cf' => 'Central-African-Republic',
109
+        'td' => 'Chad',
110
+        'cl' => 'Chile',
111
+        'cn' => 'China',
112
+        'cx' => 'Christmas-Island',
113
+        'cc' => 'Cocos-Keeling-Islands',
114
+        'co' => 'Colombia',
115
+        'km' => 'Comoros',
116
+        'cg' => 'Republic-of-the-Congo',
117
+        'cd' => 'Democratic-Republic-of-the-Congo',
118
+        'ck' => 'Cook-Islands',
119
+        'cr' => 'Costa-Rica',
120
+        'ci' => 'Cote-dIvoire',
121
+        'hr' => 'Croatia',
122
+        'cu' => 'Cuba',
123
+        'cw' => 'Curacao',
124
+        'cy' => 'Cyprus',
125
+        'cz' => 'Czech-Republic',
126
+        'dk' => 'Denmark',
127
+        'dj' => 'Djibouti',
128
+        'dm' => 'Dominica',
129
+        'do' => 'Dominican-Republic',
130
+        'ec' => 'Ecuador',
131
+        'eg' => 'Egypt',
132
+        'sv' => 'El-Salvador',
133
+        'gq' => 'Equatorial-Guinea',
134
+        'er' => 'Eritrea',
135
+        'ee' => 'Estonia',
136
+        'et' => 'Ethiopia',
137
+        'fk' => 'Falkland-Islands',
138
+        'fo' => 'Faroes',
139
+        'fj' => 'Fiji',
140
+        'fi' => 'Finland',
141
+        'fr' => 'France',
142
+        // Uses France's flag, see https://en.wikipedia.org/wiki/French_Guiana.
143
+        'gf' => 'France',
144
+        'pf' => 'French-Polynesia',
145
+        'tf' => 'French-Southern-Territories',
146
+        'ga' => 'Gabon',
147
+        'gm' => 'Gambia',
148
+        'ge' => 'Georgia',
149
+        'de' => 'Germany',
150
+        'gh' => 'Ghana',
151
+        'gi' => 'Gibraltar',
152
+        'gr' => 'Greece',
153
+        'gl' => 'Greenland',
154
+        'gd' => 'Grenada',
155
+        // Uses France's flag, see https://en.wikipedia.org/wiki/Guadeloupe.
156
+        'gp' => 'France',
157
+        'gu' => 'Guam',
158
+        'gt' => 'Guatemala',
159
+        'gg' => 'Guernsey',
160
+        'gn' => 'Guinea',
161
+        'gw' => 'Guinea-Bissau',
162
+        'gy' => 'Guyana',
163
+        'ht' => 'Haiti',
164
+        // Uses Australia's flag, see https://en.wikipedia.org/wiki/Heard_Island_and_McDonald_Islands.
165
+        'hm' => 'Australia',
166
+        'va' => 'Vatican-City',
167
+        'hn' => 'Honduras',
168
+        'hk' => 'Hong-Kong',
169
+        'hu' => 'Hungary',
170
+        'is' => 'Iceland',
171
+        'in' => 'India',
172
+        'id' => 'Indonesia',
173
+        'ir' => 'Iran',
174
+        'iq' => 'Iraq',
175
+        'ie' => 'Ireland',
176
+        'im' => 'Isle-of-Man',
177
+        'il' => 'Israel',
178
+        'it' => 'Italy',
179
+        'jm' => 'Jamaica',
180
+        'jp' => 'Japan',
181
+        'je' => 'Jersey',
182
+        'jo' => 'Jordan',
183
+        'kz' => 'Kazakhstan',
184
+        'ke' => 'Kenya',
185
+        'ki' => 'Kiribati',
186
+        'kp' => 'North-Korea',
187
+        'kr' => 'South-Korea',
188
+        'kw' => 'Kuwait',
189
+        'kg' => 'Kyrgyzstan',
190
+        'la' => 'Laos',
191
+        'lv' => 'Latvia',
192
+        'lb' => 'Lebanon',
193
+        'ls' => 'Lesotho',
194
+        'lr' => 'Liberia',
195
+        'ly' => 'Libya',
196
+        'li' => 'Liechtenstein',
197
+        'lt' => 'Lithuania',
198
+        'lu' => 'Luxembourg',
199
+        'mo' => 'Macau',
200
+        'mk' => 'Macedonia',
201
+        'mg' => 'Madagascar',
202
+        'mw' => 'Malawi',
203
+        'my' => 'Malaysia',
204
+        'mv' => 'Maldives',
205
+        'ml' => 'Mali',
206
+        'mt' => 'Malta',
207
+        'mh' => 'Marshall-Islands',
208
+        'mq' => 'Martinique',
209
+        'mr' => 'Mauritania',
210
+        'mu' => 'Mauritius',
211
+        'yt' => 'Mayotte',
212
+        'mx' => 'Mexico',
213
+        'fm' => 'Micronesia',
214
+        'md' => 'Moldova',
215
+        'mc' => 'Monaco',
216
+        'mn' => 'Mongolia',
217
+        'me' => 'Montenegro',
218
+        'ms' => 'Montserrat',
219
+        'ma' => 'Morocco',
220
+        'mz' => 'Mozambique',
221
+        'mm' => 'Myanmar',
222
+        'na' => 'Namibia',
223
+        'nr' => 'Nauru',
224
+        'np' => 'Nepal',
225
+        'nl' => 'Netherlands',
226
+        'nc' => 'New-Caledonia',
227
+        'nz' => 'New-Zealand',
228
+        'ni' => 'Nicaragua',
229
+        'ne' => 'Niger',
230
+        'ng' => 'Nigeria',
231
+        'nu' => 'Niue',
232
+        'nf' => 'Norfolk-Island',
233
+        'mp' => 'Northern-Mariana-Islands',
234
+        'no' => 'Norway',
235
+        'om' => 'Oman',
236
+        'pk' => 'Pakistan',
237
+        'pw' => 'Palau',
238
+        'ps' => 'Palestine',
239
+        'pa' => 'Panama',
240
+        'pg' => 'Papua-New-Guinea',
241
+        'py' => 'Paraguay',
242
+        'pe' => 'Peru',
243
+        'ph' => 'Philippines',
244
+        'pn' => 'Pitcairn-Islands',
245
+        'pl' => 'Poland',
246
+        'pt' => 'Portugal',
247
+        'pr' => 'Puerto Rico',
248
+        'qa' => 'Qatar',
249
+        // Uses France's flag, see https://en.wikipedia.org/wiki/R%C3%A9union.
250
+        're' => 'France',
251
+        'ro' => 'Romania',
252
+        'ru' => 'Russia',
253
+        'rw' => 'Rwanda',
254
+        'bl' => 'Saint-Barthelemy',
255
+        'sh' => 'Saint-Helena',
256
+        'kn' => 'Saint-Kitts-and-Nevis',
257
+        'lc' => 'Saint-Lucia',
258
+        'mf' => 'Saint-Martin',
259
+        // Uses France's flag, see https://en.wikipedia.org/wiki/Saint_Pierre_and_Miquelon.
260
+        'pm' => 'France',
261
+        'vc' => 'Saint-Vincent-and-the-Grenadines',
262
+        'ws' => 'Samoa',
263
+        'sm' => 'San-Marino',
264
+        'st' => 'Sao-Tome-and-Principe',
265
+        'sa' => 'Saudi-Arabia',
266
+        'sn' => 'Senegal',
267
+        'rs' => 'Serbia',
268
+        'sc' => 'Seychelles',
269
+        'sl' => 'Sierra-Leone',
270
+        'sg' => 'Singapore',
271
+        'sx' => null,
272
+        'sk' => 'Slovakia',
273
+        'si' => 'Slovenia',
274
+        'sb' => 'Solomon-Islands',
275
+        'so' => 'Somalia',
276
+        'za' => 'South-Africa',
277
+        'gs' => 'South-Georgia-and-the-South-Sandwich-Islands',
278
+        'ss' => 'South-Sudan',
279
+        'es' => 'Spain',
280
+        'lk' => 'Sri-Lanka',
281
+        'sd' => 'Sudan',
282
+        'sr' => 'Suriname',
283
+        // Uses Norway's flag, see https://en.wikipedia.org/wiki/Svalbard_and_Jan_Mayen.
284
+        'sj' => 'Norway',
285
+        'sz' => 'Swaziland',
286
+        'se' => 'Sweden',
287
+        'ch' => 'Switzerland',
288
+        'sy' => 'Syria',
289
+        'tw' => 'Taiwan',
290
+        'tj' => 'Tajikistan',
291
+        'tz' => 'Tanzania',
292
+        'th' => 'Thailand',
293
+        'tl' => 'East-Timor',
294
+        'tg' => 'Togo',
295
+        'tk' => 'Tokelau',
296
+        'to' => 'Tonga',
297
+        'tt' => 'Trinidad-and-Tobago',
298
+        'tn' => 'Tunisia',
299
+        'tr' => 'Turkey',
300
+        'tm' => 'Turkmenistan',
301
+        'tc' => 'Turks-and-Caicos-Islands',
302
+        'tv' => 'Tuvalu',
303
+        'ug' => 'Uganda',
304
+        'ua' => 'Ukraine',
305
+        'ae' => 'United-Arab-Emirates',
306
+        'gb' => 'United-Kingdom',
307
+        'uk' => 'United-Kingdom',
308
+        'us' => 'United-States',
309
+        'um' => 'United-States',
310
+        'uy' => 'Uruguay',
311
+        'uz' => 'Uzbekistan',
312
+        'vu' => 'Vanuatu',
313
+        've' => 'Venezuela',
314
+        'vn' => 'Vietnam',
315
+        'vg' => 'British-Virgin-Islands',
316
+        'vi' => 'US-Virgin-Islands',
317
+        'wf' => 'Wallis-And-Futuna',
318
+        'eh' => 'Western-Sahara',
319
+        'ye' => 'Yemen',
320
+        'zm' => 'Zambia',
321
+        'zw' => 'Zimbabwe',
322
+    );
323
+
324
+    /**
325
+     * Parse_country_code_json_file_to_array.
326
+     *
327
+     * @param string $file_name The json file name where the supported country
328
+     * and languages are present.
329
+     *
330
+     * @return array An Array having two maps, country_code_language_map and country_code_name_map.
331
+     */
332
+    public static function parse_country_code_json_file_to_array( $file_name ) {
333
+        // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
334
+        $json_file_contents = file_get_contents( $file_name );
335
+        $decoded_array      = json_decode( $json_file_contents, true );
336
+        // decoded array would be null if the json_decode parses
337
+        // invalid content.
338
+        if ( null === $decoded_array ) {
339
+            return array(
340
+                'country_code_name_map'     => array(),
341
+                'country_code_language_map' => array(),
342
+            );
343
+        }
344
+        $result = array();
345
+        // country_code => country_language map.
346
+        $country_code_language_map = array();
347
+        // country_code => country_name map.
348
+        $country_code_name_map = array();
349
+        foreach ( $decoded_array as $key => $value ) {
350
+            $country_code_language_map[ $key ] = $value['supportedLang'];
351
+            $country_code_name_map [ $key ]    = $value['defaultLoc']['loc_name'];
352
+        }
353
+        $result['country_code_language_map'] = $country_code_language_map;
354
+        $result['country_code_name_map']     = $country_code_name_map;
355
+
356
+        return $result;
357
+    }
358
+
359
+    /**
360
+     * Get the list of WordLift's supported country codes from json file mapping country_code => languages.
361
+     *
362
+     * @param string $file_name The json file where the supported country codes and language_codes are stored.
363
+     *
364
+     * @return array An Array having two maps, country_code_language_map and country_code_name_map.
365
+     * @since 3.22.5.1
366
+     */
367
+    public static function get_codes_from_json_file( $file_name ) {
368
+        if ( file_exists( $file_name ) ) {
369
+            return self::parse_country_code_json_file_to_array( $file_name );
370
+        }
371
+
372
+        return array(
373
+            'country_code_name_map'     => array(),
374
+            'country_code_language_map' => array(),
375
+        );
376
+    }
377
+
378
+    /**
379
+     * Returns the country language pairs.
380
+     *
381
+     * @return array The country language pairs.
382
+     * @since 3.18.0
383
+     */
384
+    public static function get_codes() {
385
+        return self::$codes;
386
+    }
387
+
388
+    /**
389
+     * Populate self::codes and self::country_codes if not done before.
390
+     *
391
+     * @param string $file_name The json file where the supported country codes and language_codes are stored.
392
+     *
393
+     * @return void
394
+     * @since 3.22.5.1
395
+     */
396
+    private static function lazy_populate_codes_and_country_codes_array( $file_name ) {
397
+        if ( null === $file_name ) {
398
+            $file_name = __DIR__ . '/supported-countries.json';
399
+        }
400
+        if ( 0 === count( self::$codes ) || 0 === count( self::$country_codes ) ) {
401
+            // populate the two arrays.
402
+            $result_array        = self::get_codes_from_json_file( $file_name );
403
+            self::$codes         = $result_array['country_code_language_map'];
404
+            self::$country_codes = $result_array['country_code_name_map'];
405
+        }
406
+
407
+    }
408
+
409
+    /**
410
+     * Reset codes_and_country_codes static variable, used for testing
411
+     *
412
+     * @return void
413
+     * @since 3.22.5.1
414
+     */
415
+    public static function reset_codes_and_country_codes() {
416
+        self::$codes         = array();
417
+        self::$country_codes = array();
418
+    }
419
+
420
+    /**
421
+     * Get the list of WordLift's supported countries in an array with country code => country name pairs.
422
+     *
423
+     * @param string|false $lang Optional. The language code we are looking for. Default `any`.
424
+     *
425
+     * @param string|null  $file_name Optional. The json file containing country codes
426
+     *   and language data.
427
+     *
428
+     * @return array An array with country code => country name pairs.
429
+     * @since 3.18.0
430
+     */
431
+    public static function get_countries( $lang = false, $file_name = null ) {
432
+
433
+        // populate the codes and countries array if it is not done before.
434
+        self::lazy_populate_codes_and_country_codes_array( $file_name );
435
+
436
+        // Lazily load the countries.
437
+        // $lang_key = false === $lang ? 'any' : $lang;
438
+        $lang_key = 'any';
439
+        $lang     = '';
440
+
441
+        if ( isset( self::$countries[ $lang_key ] ) ) {
442
+            return self::$countries[ $lang_key ];
443
+        }
444
+
445
+        // Prepare the array.
446
+        self::$countries[ $lang ] = array();
447
+
448
+        // Get the country names from WP's own (multisite) function.
449
+        foreach ( self::$codes as $key => $languages ) {
450
+            if (
451
+                // Process all countries if there is no language specified.
452
+                empty( $lang ) ||
453
+
454
+                // Or if there are no language limitations for current country.
455
+                empty( self::$codes[ $key ] ) ||
456
+
457
+                // Or if the language code exists for current country.
458
+                ! empty( $lang ) && in_array( $lang, self::$codes[ $key ], true )
459
+            ) {
460
+                self::$countries[ $lang_key ][ $key ] = self::format_country_code( $key );
461
+            }
462
+        }
463
+
464
+        // Sort by country name.
465
+        asort( self::$countries[ $lang_key ] );
466
+
467
+        // We don't sort here because `asort` returns bool instead of sorted array.
468
+        return self::$countries[ $lang_key ];
469
+    }
470
+
471
+    /**
472
+     * Returns the country for a country code. This function is a clone of WP's function provided in `ms.php`.
473
+     *
474
+     * @param string $code Optional. The two-letter country code. Default empty.
475
+     *
476
+     * @return string The country corresponding to $code if it exists. If it does not exist,
477
+     *                then the first two letters of $code is returned.
478
+     * @since 3.18.0
479
+     */
480
+    private static function format_country_code( $code = '' ) {
481
+
482
+        $code = strtolower( substr( $code, 0, 2 ) );
483
+        /**
484
+         * Filters the country codes.
485
+         *
486
+         * @param array $country_codes Key/value pair of country codes where key is the short version.
487
+         * @param string $code A two-letter designation of the country.
488
+         *
489
+         * @since 3.18.0
490
+         */
491
+        $country_codes = apply_filters( 'country_code', self::$country_codes, $code );
492
+
493
+        return strtr( $code, $country_codes );
494
+    }
495
+
496
+    /**
497
+     * Get a flag URL.
498
+     *
499
+     * @param string $country_code The country code.
500
+     *
501
+     * @return string|null The flag url or null if not available.
502
+     * @since 3.20.0
503
+     */
504
+    public static function get_flag_url( $country_code ) {
505
+
506
+        // Bail out if we don't have the flag.
507
+        if ( ! isset( self::$country_flags[ $country_code ] )
508
+             || ( self::$country_flags[ $country_code ] ) === null ) {
509
+            return null;
510
+        }
511
+
512
+        return plugin_dir_url( __DIR__ )
513
+                . 'images/flags/16/'
514
+                . self::$country_flags[ $country_code ]
515
+                . '.png';
516
+    }
517
+
518
+    /**
519
+     * Get a country name given a country code.
520
+     *
521
+     * @param string $country_code The 2-letters country code.
522
+     *
523
+     * @return null|string The country name (in English) or null if not found.
524
+     * @since 3.20.0
525
+     */
526
+    public static function get_country_name( $country_code ) {
527
+
528
+        /**
529
+         * @since 3.27.6
530
+         *
531
+         * @see https://github.com/insideout10/wordlift-plugin/issues/1188
532
+         */
533
+        if ( ! isset( self::$country_codes[ $country_code ] ) ) {
534
+            return '';
535
+        }
536
+
537
+        return self::$country_codes[ $country_code ];
538
+    }
539 539
 
540 540
 }
Please login to merge, or discard this patch.
Spacing   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
  * @since   3.18.0
11 11
  */
12 12
 
13
-if ( ! defined( 'ABSPATH' ) ) {
13
+if ( ! defined('ABSPATH')) {
14 14
 	exit;
15 15
 }
16 16
 
@@ -329,13 +329,13 @@  discard block
 block discarded – undo
329 329
 	 *
330 330
 	 * @return array An Array having two maps, country_code_language_map and country_code_name_map.
331 331
 	 */
332
-	public static function parse_country_code_json_file_to_array( $file_name ) {
332
+	public static function parse_country_code_json_file_to_array($file_name) {
333 333
 		// phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
334
-		$json_file_contents = file_get_contents( $file_name );
335
-		$decoded_array      = json_decode( $json_file_contents, true );
334
+		$json_file_contents = file_get_contents($file_name);
335
+		$decoded_array      = json_decode($json_file_contents, true);
336 336
 		// decoded array would be null if the json_decode parses
337 337
 		// invalid content.
338
-		if ( null === $decoded_array ) {
338
+		if (null === $decoded_array) {
339 339
 			return array(
340 340
 				'country_code_name_map'     => array(),
341 341
 				'country_code_language_map' => array(),
@@ -346,9 +346,9 @@  discard block
 block discarded – undo
346 346
 		$country_code_language_map = array();
347 347
 		// country_code => country_name map.
348 348
 		$country_code_name_map = array();
349
-		foreach ( $decoded_array as $key => $value ) {
350
-			$country_code_language_map[ $key ] = $value['supportedLang'];
351
-			$country_code_name_map [ $key ]    = $value['defaultLoc']['loc_name'];
349
+		foreach ($decoded_array as $key => $value) {
350
+			$country_code_language_map[$key] = $value['supportedLang'];
351
+			$country_code_name_map [$key]    = $value['defaultLoc']['loc_name'];
352 352
 		}
353 353
 		$result['country_code_language_map'] = $country_code_language_map;
354 354
 		$result['country_code_name_map']     = $country_code_name_map;
@@ -364,9 +364,9 @@  discard block
 block discarded – undo
364 364
 	 * @return array An Array having two maps, country_code_language_map and country_code_name_map.
365 365
 	 * @since 3.22.5.1
366 366
 	 */
367
-	public static function get_codes_from_json_file( $file_name ) {
368
-		if ( file_exists( $file_name ) ) {
369
-			return self::parse_country_code_json_file_to_array( $file_name );
367
+	public static function get_codes_from_json_file($file_name) {
368
+		if (file_exists($file_name)) {
369
+			return self::parse_country_code_json_file_to_array($file_name);
370 370
 		}
371 371
 
372 372
 		return array(
@@ -393,13 +393,13 @@  discard block
 block discarded – undo
393 393
 	 * @return void
394 394
 	 * @since 3.22.5.1
395 395
 	 */
396
-	private static function lazy_populate_codes_and_country_codes_array( $file_name ) {
397
-		if ( null === $file_name ) {
398
-			$file_name = __DIR__ . '/supported-countries.json';
396
+	private static function lazy_populate_codes_and_country_codes_array($file_name) {
397
+		if (null === $file_name) {
398
+			$file_name = __DIR__.'/supported-countries.json';
399 399
 		}
400
-		if ( 0 === count( self::$codes ) || 0 === count( self::$country_codes ) ) {
400
+		if (0 === count(self::$codes) || 0 === count(self::$country_codes)) {
401 401
 			// populate the two arrays.
402
-			$result_array        = self::get_codes_from_json_file( $file_name );
402
+			$result_array        = self::get_codes_from_json_file($file_name);
403 403
 			self::$codes         = $result_array['country_code_language_map'];
404 404
 			self::$country_codes = $result_array['country_code_name_map'];
405 405
 		}
@@ -428,44 +428,44 @@  discard block
 block discarded – undo
428 428
 	 * @return array An array with country code => country name pairs.
429 429
 	 * @since 3.18.0
430 430
 	 */
431
-	public static function get_countries( $lang = false, $file_name = null ) {
431
+	public static function get_countries($lang = false, $file_name = null) {
432 432
 
433 433
 		// populate the codes and countries array if it is not done before.
434
-		self::lazy_populate_codes_and_country_codes_array( $file_name );
434
+		self::lazy_populate_codes_and_country_codes_array($file_name);
435 435
 
436 436
 		// Lazily load the countries.
437 437
 		// $lang_key = false === $lang ? 'any' : $lang;
438 438
 		$lang_key = 'any';
439 439
 		$lang     = '';
440 440
 
441
-		if ( isset( self::$countries[ $lang_key ] ) ) {
442
-			return self::$countries[ $lang_key ];
441
+		if (isset(self::$countries[$lang_key])) {
442
+			return self::$countries[$lang_key];
443 443
 		}
444 444
 
445 445
 		// Prepare the array.
446
-		self::$countries[ $lang ] = array();
446
+		self::$countries[$lang] = array();
447 447
 
448 448
 		// Get the country names from WP's own (multisite) function.
449
-		foreach ( self::$codes as $key => $languages ) {
449
+		foreach (self::$codes as $key => $languages) {
450 450
 			if (
451 451
 				// Process all countries if there is no language specified.
452
-				empty( $lang ) ||
452
+				empty($lang) ||
453 453
 
454 454
 				// Or if there are no language limitations for current country.
455
-				empty( self::$codes[ $key ] ) ||
455
+				empty(self::$codes[$key]) ||
456 456
 
457 457
 				// Or if the language code exists for current country.
458
-				! empty( $lang ) && in_array( $lang, self::$codes[ $key ], true )
458
+				! empty($lang) && in_array($lang, self::$codes[$key], true)
459 459
 			) {
460
-				self::$countries[ $lang_key ][ $key ] = self::format_country_code( $key );
460
+				self::$countries[$lang_key][$key] = self::format_country_code($key);
461 461
 			}
462 462
 		}
463 463
 
464 464
 		// Sort by country name.
465
-		asort( self::$countries[ $lang_key ] );
465
+		asort(self::$countries[$lang_key]);
466 466
 
467 467
 		// We don't sort here because `asort` returns bool instead of sorted array.
468
-		return self::$countries[ $lang_key ];
468
+		return self::$countries[$lang_key];
469 469
 	}
470 470
 
471 471
 	/**
@@ -477,9 +477,9 @@  discard block
 block discarded – undo
477 477
 	 *                then the first two letters of $code is returned.
478 478
 	 * @since 3.18.0
479 479
 	 */
480
-	private static function format_country_code( $code = '' ) {
480
+	private static function format_country_code($code = '') {
481 481
 
482
-		$code = strtolower( substr( $code, 0, 2 ) );
482
+		$code = strtolower(substr($code, 0, 2));
483 483
 		/**
484 484
 		 * Filters the country codes.
485 485
 		 *
@@ -488,9 +488,9 @@  discard block
 block discarded – undo
488 488
 		 *
489 489
 		 * @since 3.18.0
490 490
 		 */
491
-		$country_codes = apply_filters( 'country_code', self::$country_codes, $code );
491
+		$country_codes = apply_filters('country_code', self::$country_codes, $code);
492 492
 
493
-		return strtr( $code, $country_codes );
493
+		return strtr($code, $country_codes);
494 494
 	}
495 495
 
496 496
 	/**
@@ -501,17 +501,17 @@  discard block
 block discarded – undo
501 501
 	 * @return string|null The flag url or null if not available.
502 502
 	 * @since 3.20.0
503 503
 	 */
504
-	public static function get_flag_url( $country_code ) {
504
+	public static function get_flag_url($country_code) {
505 505
 
506 506
 		// Bail out if we don't have the flag.
507
-		if ( ! isset( self::$country_flags[ $country_code ] )
508
-			 || ( self::$country_flags[ $country_code ] ) === null ) {
507
+		if ( ! isset(self::$country_flags[$country_code])
508
+			 || (self::$country_flags[$country_code]) === null) {
509 509
 			return null;
510 510
 		}
511 511
 
512
-		return plugin_dir_url( __DIR__ )
512
+		return plugin_dir_url(__DIR__)
513 513
 			   . 'images/flags/16/'
514
-			   . self::$country_flags[ $country_code ]
514
+			   . self::$country_flags[$country_code]
515 515
 			   . '.png';
516 516
 	}
517 517
 
@@ -523,18 +523,18 @@  discard block
 block discarded – undo
523 523
 	 * @return null|string The country name (in English) or null if not found.
524 524
 	 * @since 3.20.0
525 525
 	 */
526
-	public static function get_country_name( $country_code ) {
526
+	public static function get_country_name($country_code) {
527 527
 
528 528
 		/**
529 529
 		 * @since 3.27.6
530 530
 		 *
531 531
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/1188
532 532
 		 */
533
-		if ( ! isset( self::$country_codes[ $country_code ] ) ) {
533
+		if ( ! isset(self::$country_codes[$country_code])) {
534 534
 			return '';
535 535
 		}
536 536
 
537
-		return self::$country_codes[ $country_code ];
537
+		return self::$country_codes[$country_code];
538 538
 	}
539 539
 
540 540
 }
Please login to merge, or discard this patch.
src/includes/class-wordlift-image-service.php 2 patches
Indentation   +83 added lines, -83 removed lines patch added patch discarded remove patch
@@ -19,88 +19,88 @@
 block discarded – undo
19 19
  */
20 20
 class Wordlift_Image_Service {
21 21
 
22
-	/**
23
-	 * The image ratios and sizes.
24
-	 *
25
-	 * @since 3.19.4
26
-	 * @access public
27
-	 * @var array $sizes The image ratios and sizes.
28
-	 */
29
-	public static $sizes = array(
30
-		'16x9' => array( 1200, 675 ),
31
-		'4x3'  => array( 1200, 900 ),
32
-		'1x1'  => array( 1200, 1200 ),
33
-	);
34
-
35
-	/**
36
-	 * Create a {@link Wordlift_Image_Service} instance.
37
-	 *
38
-	 * @since 3.19.4
39
-	 */
40
-	public function __construct() {
41
-
42
-		// Add hook to define the image sizes. Since we're a plugin, we cannot use the
43
-		// `after_theme_setup` hook.
44
-		add_action( 'init', array( $this, 'after_theme_setup' ) );
45
-
46
-	}
47
-
48
-	/**
49
-	 * Hook `after_theme_setup`: add our own image sizes.
50
-	 *
51
-	 * @since 3.19.4
52
-	 */
53
-	public function after_theme_setup() {
54
-
55
-		foreach ( self::$sizes as $ratio => $sizes ) {
56
-			add_image_size( "wl-$ratio", $sizes[0], $sizes[1], true );
57
-		}
58
-
59
-	}
60
-
61
-	/**
62
-	 * Get the sources for the specified attachment.
63
-	 *
64
-	 * @since 3.19.4
65
-	 *
66
-	 * @param int $attachment_id The attachment id.
67
-	 *
68
-	 * @return array {
69
-	 * An array of image sources.
70
-	 *
71
-	 * @type string $url The attachment URL.
72
-	 * @type int    $width The attachment width.
73
-	 * @type int    $height The attachment height.
74
-	 * }
75
-	 */
76
-	public static function get_sources( $attachment_id ) {
77
-
78
-		// Get the source for the specified image sizes.
79
-		$sources = array_map(
80
-			function ( $ratio ) use ( $attachment_id ) {
81
-
82
-				// Get the source of the specified ratio.
83
-				$source = wp_get_attachment_image_src( $attachment_id, "wl-$ratio" );
84
-
85
-				// Get the size for the specified ratio.
86
-				$size = Wordlift_Image_Service::$sizes[ $ratio ];
87
-
88
-				// Check that the source has an image, and the required size.
89
-				if ( empty( $source[0] ) || $size[0] !== $source[1] || $size[1] !== $source[2] ) {
90
-					  return null;
91
-				}
92
-
93
-				// Return the source.
94
-				return $source;
95
-			},
96
-			array_keys( self::$sizes )
97
-		);
98
-
99
-		// Filter unavailable sources.
100
-		$sources_1200 = array_filter( $sources );
101
-
102
-		// Make the results unique.
103
-		return $sources_1200;
104
-	}
22
+    /**
23
+     * The image ratios and sizes.
24
+     *
25
+     * @since 3.19.4
26
+     * @access public
27
+     * @var array $sizes The image ratios and sizes.
28
+     */
29
+    public static $sizes = array(
30
+        '16x9' => array( 1200, 675 ),
31
+        '4x3'  => array( 1200, 900 ),
32
+        '1x1'  => array( 1200, 1200 ),
33
+    );
34
+
35
+    /**
36
+     * Create a {@link Wordlift_Image_Service} instance.
37
+     *
38
+     * @since 3.19.4
39
+     */
40
+    public function __construct() {
41
+
42
+        // Add hook to define the image sizes. Since we're a plugin, we cannot use the
43
+        // `after_theme_setup` hook.
44
+        add_action( 'init', array( $this, 'after_theme_setup' ) );
45
+
46
+    }
47
+
48
+    /**
49
+     * Hook `after_theme_setup`: add our own image sizes.
50
+     *
51
+     * @since 3.19.4
52
+     */
53
+    public function after_theme_setup() {
54
+
55
+        foreach ( self::$sizes as $ratio => $sizes ) {
56
+            add_image_size( "wl-$ratio", $sizes[0], $sizes[1], true );
57
+        }
58
+
59
+    }
60
+
61
+    /**
62
+     * Get the sources for the specified attachment.
63
+     *
64
+     * @since 3.19.4
65
+     *
66
+     * @param int $attachment_id The attachment id.
67
+     *
68
+     * @return array {
69
+     * An array of image sources.
70
+     *
71
+     * @type string $url The attachment URL.
72
+     * @type int    $width The attachment width.
73
+     * @type int    $height The attachment height.
74
+     * }
75
+     */
76
+    public static function get_sources( $attachment_id ) {
77
+
78
+        // Get the source for the specified image sizes.
79
+        $sources = array_map(
80
+            function ( $ratio ) use ( $attachment_id ) {
81
+
82
+                // Get the source of the specified ratio.
83
+                $source = wp_get_attachment_image_src( $attachment_id, "wl-$ratio" );
84
+
85
+                // Get the size for the specified ratio.
86
+                $size = Wordlift_Image_Service::$sizes[ $ratio ];
87
+
88
+                // Check that the source has an image, and the required size.
89
+                if ( empty( $source[0] ) || $size[0] !== $source[1] || $size[1] !== $source[2] ) {
90
+                        return null;
91
+                }
92
+
93
+                // Return the source.
94
+                return $source;
95
+            },
96
+            array_keys( self::$sizes )
97
+        );
98
+
99
+        // Filter unavailable sources.
100
+        $sources_1200 = array_filter( $sources );
101
+
102
+        // Make the results unique.
103
+        return $sources_1200;
104
+    }
105 105
 
106 106
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -27,9 +27,9 @@  discard block
 block discarded – undo
27 27
 	 * @var array $sizes The image ratios and sizes.
28 28
 	 */
29 29
 	public static $sizes = array(
30
-		'16x9' => array( 1200, 675 ),
31
-		'4x3'  => array( 1200, 900 ),
32
-		'1x1'  => array( 1200, 1200 ),
30
+		'16x9' => array(1200, 675),
31
+		'4x3'  => array(1200, 900),
32
+		'1x1'  => array(1200, 1200),
33 33
 	);
34 34
 
35 35
 	/**
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 
42 42
 		// Add hook to define the image sizes. Since we're a plugin, we cannot use the
43 43
 		// `after_theme_setup` hook.
44
-		add_action( 'init', array( $this, 'after_theme_setup' ) );
44
+		add_action('init', array($this, 'after_theme_setup'));
45 45
 
46 46
 	}
47 47
 
@@ -52,8 +52,8 @@  discard block
 block discarded – undo
52 52
 	 */
53 53
 	public function after_theme_setup() {
54 54
 
55
-		foreach ( self::$sizes as $ratio => $sizes ) {
56
-			add_image_size( "wl-$ratio", $sizes[0], $sizes[1], true );
55
+		foreach (self::$sizes as $ratio => $sizes) {
56
+			add_image_size("wl-$ratio", $sizes[0], $sizes[1], true);
57 57
 		}
58 58
 
59 59
 	}
@@ -73,31 +73,31 @@  discard block
 block discarded – undo
73 73
 	 * @type int    $height The attachment height.
74 74
 	 * }
75 75
 	 */
76
-	public static function get_sources( $attachment_id ) {
76
+	public static function get_sources($attachment_id) {
77 77
 
78 78
 		// Get the source for the specified image sizes.
79 79
 		$sources = array_map(
80
-			function ( $ratio ) use ( $attachment_id ) {
80
+			function($ratio) use ($attachment_id) {
81 81
 
82 82
 				// Get the source of the specified ratio.
83
-				$source = wp_get_attachment_image_src( $attachment_id, "wl-$ratio" );
83
+				$source = wp_get_attachment_image_src($attachment_id, "wl-$ratio");
84 84
 
85 85
 				// Get the size for the specified ratio.
86
-				$size = Wordlift_Image_Service::$sizes[ $ratio ];
86
+				$size = Wordlift_Image_Service::$sizes[$ratio];
87 87
 
88 88
 				// Check that the source has an image, and the required size.
89
-				if ( empty( $source[0] ) || $size[0] !== $source[1] || $size[1] !== $source[2] ) {
89
+				if (empty($source[0]) || $size[0] !== $source[1] || $size[1] !== $source[2]) {
90 90
 					  return null;
91 91
 				}
92 92
 
93 93
 				// Return the source.
94 94
 				return $source;
95 95
 			},
96
-			array_keys( self::$sizes )
96
+			array_keys(self::$sizes)
97 97
 		);
98 98
 
99 99
 		// Filter unavailable sources.
100
-		$sources_1200 = array_filter( $sources );
100
+		$sources_1200 = array_filter($sources);
101 101
 
102 102
 		// Make the results unique.
103 103
 		return $sources_1200;
Please login to merge, or discard this patch.
src/includes/class-wordlift-entity-type-taxonomy-service.php 2 patches
Indentation   +201 added lines, -201 removed lines patch added patch discarded remove patch
@@ -14,211 +14,211 @@
 block discarded – undo
14 14
  */
15 15
 class Wordlift_Entity_Type_Taxonomy_Service {
16 16
 
17
-	/**
18
-	 * The WordPress taxonomy name.
19
-	 *
20
-	 * @since 1.0.0
21
-	 */
22
-	const TAXONOMY_NAME = 'wl_entity_type';
23
-
24
-	/**
25
-	 * Register the taxonomies.
26
-	 *
27
-	 * @since 3.23.6 we hook to `wp_get_object_terms` to ensure that a term is returned when a post is queries for the
28
-	 *               `wl_entity_type` taxonomy.
29
-	 * @since 3.18.0
30
-	 */
31
-	public function init() {
32
-
33
-		$labels = array(
34
-			'name'              => _x( 'Entity Types', 'taxonomy general name', 'wordlift' ),
35
-			'singular_name'     => _x( 'Entity Type', 'taxonomy singular name', 'wordlift' ),
36
-			'search_items'      => __( 'Search Entity Types', 'wordlift' ),
37
-			'all_items'         => __( 'All Entity Types', 'wordlift' ),
38
-			'parent_item'       => __( 'Parent Entity Type', 'wordlift' ),
39
-			'parent_item_colon' => __( 'Parent Entity Type:', 'wordlift' ),
40
-			'edit_item'         => __( 'Edit Entity Type', 'wordlift' ),
41
-			'update_item'       => __( 'Update Entity Type', 'wordlift' ),
42
-			'add_new_item'      => __( 'Add New Entity Type', 'wordlift' ),
43
-			'new_item_name'     => __( 'New Entity Type', 'wordlift' ),
44
-			'menu_name'         => __( 'Entity Types', 'wordlift' ),
45
-		);
46
-
47
-		// Take away GUI for taxonomy editing.
48
-		// TODO: read capabilities when editing of the WL <-> schema.org mapping is possible.
49
-		$capabilities = array(
50
-			// We enable editors to change the title/description of terms:
51
-			//
52
-			// @see https://github.com/insideout10/wordlift-plugin/issues/398.
53
-			'manage_terms' => 'manage_options',
54
-			'edit_terms'   => 'wl_entity_type_edit_term',
55
-			'delete_terms' => 'wl_entity_type_delete_term',
56
-			'assign_terms' => 'edit_posts',
57
-		);
58
-
59
-		$args = array(
60
-			'labels'             => $labels,
61
-			'capabilities'       => $capabilities,
62
-			'hierarchical'       => true,
63
-			// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
64
-			'show_admin_column'  => apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ),
65
-			// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
66
-			'show_in_rest'       => apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ),
67
-			'show_in_quick_edit' => false,
68
-			'publicly_queryable' => false,
69
-		);
70
-
71
-		/*
17
+    /**
18
+     * The WordPress taxonomy name.
19
+     *
20
+     * @since 1.0.0
21
+     */
22
+    const TAXONOMY_NAME = 'wl_entity_type';
23
+
24
+    /**
25
+     * Register the taxonomies.
26
+     *
27
+     * @since 3.23.6 we hook to `wp_get_object_terms` to ensure that a term is returned when a post is queries for the
28
+     *               `wl_entity_type` taxonomy.
29
+     * @since 3.18.0
30
+     */
31
+    public function init() {
32
+
33
+        $labels = array(
34
+            'name'              => _x( 'Entity Types', 'taxonomy general name', 'wordlift' ),
35
+            'singular_name'     => _x( 'Entity Type', 'taxonomy singular name', 'wordlift' ),
36
+            'search_items'      => __( 'Search Entity Types', 'wordlift' ),
37
+            'all_items'         => __( 'All Entity Types', 'wordlift' ),
38
+            'parent_item'       => __( 'Parent Entity Type', 'wordlift' ),
39
+            'parent_item_colon' => __( 'Parent Entity Type:', 'wordlift' ),
40
+            'edit_item'         => __( 'Edit Entity Type', 'wordlift' ),
41
+            'update_item'       => __( 'Update Entity Type', 'wordlift' ),
42
+            'add_new_item'      => __( 'Add New Entity Type', 'wordlift' ),
43
+            'new_item_name'     => __( 'New Entity Type', 'wordlift' ),
44
+            'menu_name'         => __( 'Entity Types', 'wordlift' ),
45
+        );
46
+
47
+        // Take away GUI for taxonomy editing.
48
+        // TODO: read capabilities when editing of the WL <-> schema.org mapping is possible.
49
+        $capabilities = array(
50
+            // We enable editors to change the title/description of terms:
51
+            //
52
+            // @see https://github.com/insideout10/wordlift-plugin/issues/398.
53
+            'manage_terms' => 'manage_options',
54
+            'edit_terms'   => 'wl_entity_type_edit_term',
55
+            'delete_terms' => 'wl_entity_type_delete_term',
56
+            'assign_terms' => 'edit_posts',
57
+        );
58
+
59
+        $args = array(
60
+            'labels'             => $labels,
61
+            'capabilities'       => $capabilities,
62
+            'hierarchical'       => true,
63
+            // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
64
+            'show_admin_column'  => apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ),
65
+            // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
66
+            'show_in_rest'       => apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ),
67
+            'show_in_quick_edit' => false,
68
+            'publicly_queryable' => false,
69
+        );
70
+
71
+        /*
72 72
 		 * If `All Entity Types` is enabled, use the new metabox.
73 73
 		 *
74 74
 		 * @see https://github.com/insideout10/wordlift-plugin/issues/835
75 75
 		 * @since 3.20.0
76 76
 		 */
77
-		// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
78
-		if ( apply_filters( 'wl_feature__enable__all-entity-types', WL_ALL_ENTITY_TYPES ) ) {
79
-			// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
80
-			$args['meta_box_cb'] = apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ) ? array(
81
-				'Wordlift_Admin_Schemaorg_Taxonomy_Metabox',
82
-				'render',
83
-			) : false;
84
-		}
85
-
86
-		register_taxonomy(
87
-			self::TAXONOMY_NAME, // Taxonomy name.
88
-			Wordlift_Entity_Service::valid_entity_post_types(), // Taxonomy post types.
89
-			$args // Taxonomy args.
90
-		);
91
-
92
-		/**
93
-		 * Register meta wl_entities_gutenberg for use in Gutenberg
94
-		 */
95
-		register_meta(
96
-			'post',
97
-			'wl_entities_gutenberg',
98
-			array(
99
-				'show_in_rest' => true,
100
-				'single'       => true,
101
-				'type'         => 'string',
102
-			)
103
-		);
104
-
105
-		/**
106
-		 * Register meta _wl_alt_label for use in Gutenberg
107
-		 */
108
-		// register_meta( 'post', Wordlift_Entity_Service::ALTERNATIVE_LABEL_META_KEY, array(
109
-		// 'object_subtype' => '',
110
-		// 'show_in_rest'   => true,
111
-		// 'single'         => false,
112
-		// 'type'           => 'string',
113
-		// 'auth_callback'  => function () {
114
-		// return current_user_can( 'edit_posts' );
115
-		// }
116
-		// ) );
117
-
118
-		// see #1364: add custom fields support for CPTs that are valid entity post types in order to be able to
119
-		// query for synonyms in Block Editor.
120
-		add_filter(
121
-			'register_post_type_args',
122
-			function ( $args, $post_type ) {
123
-				if ( in_array( $post_type, Wordlift_Entity_Service::valid_entity_post_types(), true ) ) {
124
-					if ( ! isset( $args['supports'] ) ) {
125
-						$args['supports'] = array();
126
-					}
127
-					$args['supports'][] = 'custom-fields';
128
-				}
129
-
130
-				return $args;
131
-			},
132
-			10,
133
-			2
134
-		);
135
-
136
-		// Add filter to change the metabox CSS class.
137
-		add_filter( 'postbox_classes_entity_wl_entity_typediv', 'wl_admin_metaboxes_add_css_class' );
138
-
139
-		// Add a filter to preset the object term if none is set.
140
-		//
141
-		// DO NOT hook to `wp_get_object_terms`, because `wp_get_object_terms` returns imploded values for SQL queries.
142
-		//
143
-		// @see https://github.com/insideout10/wordlift-plugin/issues/995
144
-		// @since 3.23.6
145
-		add_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10, 4 );
146
-
147
-		/**
148
-		 * Exclude sitemap creation for wl_entity_type taxonomy in Yoast
149
-		 *
150
-		 * @since 3.30.1
151
-		 */
152
-		add_filter( 'wpseo_sitemap_exclude_taxonomy', array( $this, 'wpseo_sitemap_exclude_taxonomy' ), 10, 2 );
153
-
154
-	}
155
-
156
-	/**
157
-	 * Hook to the `get_object_terms` filter.
158
-	 *
159
-	 * We check if our taxonomy is requested and whether a term has been returned. If no term has been returned we
160
-	 * preset `Article` for posts/pages and 'Thing' for everything else and we query the terms again.
161
-	 *
162
-	 * @param array    $terms Array of terms for the given object or objects.
163
-	 * @param int[]    $object_ids Array of object IDs for which terms were retrieved.
164
-	 * @param string[] $taxonomies Array of taxonomy names from which terms were retrieved.
165
-	 * @param array    $args Array of arguments for retrieving terms for the given
166
-	 *                                object(s). See get_object_terms() for details.
167
-	 *
168
-	 * @return array|WP_Error
169
-	 * @since 3.23.6
170
-	 */
171
-	public function get_object_terms( $terms, $object_ids, $taxonomies, $args ) {
172
-		// Get our entity type.
173
-		$entity_type = self::TAXONOMY_NAME;
174
-
175
-		// Check if this is a query for our entity type, that no terms have been found and that we have an article
176
-		// term to preset in case.
177
-		if ( ! taxonomy_exists( $entity_type )
178
-			 || array( $entity_type ) !== (array) $taxonomies
179
-			 || ! empty( $terms )
180
-			 || ! term_exists( 'article', $entity_type )
181
-			 || ! term_exists( 'thing', $entity_type ) ) {
182
-
183
-			// Return the input value.
184
-			return $terms;
185
-		}
186
-
187
-		// Avoid nested calls in case of issues.
188
-		remove_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10 );
189
-
190
-		// Set the default term for all the queried object.
191
-		foreach ( (array) $object_ids as $object_id ) {
192
-			$post_type = get_post_type( $object_id );
193
-			if ( Wordlift_Entity_Type_Service::is_valid_entity_post_type( $post_type ) ) {
194
-				// Set the term to article for posts and pages, or to thing for everything else.
195
-				$uris = Wordlift_Entity_Type_Adapter::get_entity_types( $post_type );
196
-				foreach ( $uris as $uri ) {
197
-					// set the uri based on post type.
198
-					if ( 'http://schema.org/Article' === $uri || 'http://schema.org/Thing' === $uri ) {
199
-						$uri = Wordlift_Entity_Service::TYPE_NAME === $post_type ?
200
-							'http://schema.org/Thing' : 'http://schema.org/Article';
201
-					}
202
-					Wordlift_Entity_Type_Service::get_instance()->set( $object_id, $uri );
203
-				}
204
-			}
205
-		}
206
-
207
-		// Finally return the object terms.
208
-		$terms = wp_get_object_terms( $object_ids, $taxonomies, $args );
209
-
210
-		// Re-enable nested calls in case of issues.
211
-		add_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10, 4 );
212
-
213
-		return $terms;
214
-	}
215
-
216
-	public function wpseo_sitemap_exclude_taxonomy( $exclude, $tax ) {
217
-		if ( self::TAXONOMY_NAME === $tax ) {
218
-			return true;
219
-		}
220
-
221
-		return $exclude;
222
-	}
77
+        // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
78
+        if ( apply_filters( 'wl_feature__enable__all-entity-types', WL_ALL_ENTITY_TYPES ) ) {
79
+            // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
80
+            $args['meta_box_cb'] = apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ) ? array(
81
+                'Wordlift_Admin_Schemaorg_Taxonomy_Metabox',
82
+                'render',
83
+            ) : false;
84
+        }
85
+
86
+        register_taxonomy(
87
+            self::TAXONOMY_NAME, // Taxonomy name.
88
+            Wordlift_Entity_Service::valid_entity_post_types(), // Taxonomy post types.
89
+            $args // Taxonomy args.
90
+        );
91
+
92
+        /**
93
+         * Register meta wl_entities_gutenberg for use in Gutenberg
94
+         */
95
+        register_meta(
96
+            'post',
97
+            'wl_entities_gutenberg',
98
+            array(
99
+                'show_in_rest' => true,
100
+                'single'       => true,
101
+                'type'         => 'string',
102
+            )
103
+        );
104
+
105
+        /**
106
+         * Register meta _wl_alt_label for use in Gutenberg
107
+         */
108
+        // register_meta( 'post', Wordlift_Entity_Service::ALTERNATIVE_LABEL_META_KEY, array(
109
+        // 'object_subtype' => '',
110
+        // 'show_in_rest'   => true,
111
+        // 'single'         => false,
112
+        // 'type'           => 'string',
113
+        // 'auth_callback'  => function () {
114
+        // return current_user_can( 'edit_posts' );
115
+        // }
116
+        // ) );
117
+
118
+        // see #1364: add custom fields support for CPTs that are valid entity post types in order to be able to
119
+        // query for synonyms in Block Editor.
120
+        add_filter(
121
+            'register_post_type_args',
122
+            function ( $args, $post_type ) {
123
+                if ( in_array( $post_type, Wordlift_Entity_Service::valid_entity_post_types(), true ) ) {
124
+                    if ( ! isset( $args['supports'] ) ) {
125
+                        $args['supports'] = array();
126
+                    }
127
+                    $args['supports'][] = 'custom-fields';
128
+                }
129
+
130
+                return $args;
131
+            },
132
+            10,
133
+            2
134
+        );
135
+
136
+        // Add filter to change the metabox CSS class.
137
+        add_filter( 'postbox_classes_entity_wl_entity_typediv', 'wl_admin_metaboxes_add_css_class' );
138
+
139
+        // Add a filter to preset the object term if none is set.
140
+        //
141
+        // DO NOT hook to `wp_get_object_terms`, because `wp_get_object_terms` returns imploded values for SQL queries.
142
+        //
143
+        // @see https://github.com/insideout10/wordlift-plugin/issues/995
144
+        // @since 3.23.6
145
+        add_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10, 4 );
146
+
147
+        /**
148
+         * Exclude sitemap creation for wl_entity_type taxonomy in Yoast
149
+         *
150
+         * @since 3.30.1
151
+         */
152
+        add_filter( 'wpseo_sitemap_exclude_taxonomy', array( $this, 'wpseo_sitemap_exclude_taxonomy' ), 10, 2 );
153
+
154
+    }
155
+
156
+    /**
157
+     * Hook to the `get_object_terms` filter.
158
+     *
159
+     * We check if our taxonomy is requested and whether a term has been returned. If no term has been returned we
160
+     * preset `Article` for posts/pages and 'Thing' for everything else and we query the terms again.
161
+     *
162
+     * @param array    $terms Array of terms for the given object or objects.
163
+     * @param int[]    $object_ids Array of object IDs for which terms were retrieved.
164
+     * @param string[] $taxonomies Array of taxonomy names from which terms were retrieved.
165
+     * @param array    $args Array of arguments for retrieving terms for the given
166
+     *                                object(s). See get_object_terms() for details.
167
+     *
168
+     * @return array|WP_Error
169
+     * @since 3.23.6
170
+     */
171
+    public function get_object_terms( $terms, $object_ids, $taxonomies, $args ) {
172
+        // Get our entity type.
173
+        $entity_type = self::TAXONOMY_NAME;
174
+
175
+        // Check if this is a query for our entity type, that no terms have been found and that we have an article
176
+        // term to preset in case.
177
+        if ( ! taxonomy_exists( $entity_type )
178
+             || array( $entity_type ) !== (array) $taxonomies
179
+             || ! empty( $terms )
180
+             || ! term_exists( 'article', $entity_type )
181
+             || ! term_exists( 'thing', $entity_type ) ) {
182
+
183
+            // Return the input value.
184
+            return $terms;
185
+        }
186
+
187
+        // Avoid nested calls in case of issues.
188
+        remove_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10 );
189
+
190
+        // Set the default term for all the queried object.
191
+        foreach ( (array) $object_ids as $object_id ) {
192
+            $post_type = get_post_type( $object_id );
193
+            if ( Wordlift_Entity_Type_Service::is_valid_entity_post_type( $post_type ) ) {
194
+                // Set the term to article for posts and pages, or to thing for everything else.
195
+                $uris = Wordlift_Entity_Type_Adapter::get_entity_types( $post_type );
196
+                foreach ( $uris as $uri ) {
197
+                    // set the uri based on post type.
198
+                    if ( 'http://schema.org/Article' === $uri || 'http://schema.org/Thing' === $uri ) {
199
+                        $uri = Wordlift_Entity_Service::TYPE_NAME === $post_type ?
200
+                            'http://schema.org/Thing' : 'http://schema.org/Article';
201
+                    }
202
+                    Wordlift_Entity_Type_Service::get_instance()->set( $object_id, $uri );
203
+                }
204
+            }
205
+        }
206
+
207
+        // Finally return the object terms.
208
+        $terms = wp_get_object_terms( $object_ids, $taxonomies, $args );
209
+
210
+        // Re-enable nested calls in case of issues.
211
+        add_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10, 4 );
212
+
213
+        return $terms;
214
+    }
215
+
216
+    public function wpseo_sitemap_exclude_taxonomy( $exclude, $tax ) {
217
+        if ( self::TAXONOMY_NAME === $tax ) {
218
+            return true;
219
+        }
220
+
221
+        return $exclude;
222
+    }
223 223
 
224 224
 }
Please login to merge, or discard this patch.
Spacing   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -31,17 +31,17 @@  discard block
 block discarded – undo
31 31
 	public function init() {
32 32
 
33 33
 		$labels = array(
34
-			'name'              => _x( 'Entity Types', 'taxonomy general name', 'wordlift' ),
35
-			'singular_name'     => _x( 'Entity Type', 'taxonomy singular name', 'wordlift' ),
36
-			'search_items'      => __( 'Search Entity Types', 'wordlift' ),
37
-			'all_items'         => __( 'All Entity Types', 'wordlift' ),
38
-			'parent_item'       => __( 'Parent Entity Type', 'wordlift' ),
39
-			'parent_item_colon' => __( 'Parent Entity Type:', 'wordlift' ),
40
-			'edit_item'         => __( 'Edit Entity Type', 'wordlift' ),
41
-			'update_item'       => __( 'Update Entity Type', 'wordlift' ),
42
-			'add_new_item'      => __( 'Add New Entity Type', 'wordlift' ),
43
-			'new_item_name'     => __( 'New Entity Type', 'wordlift' ),
44
-			'menu_name'         => __( 'Entity Types', 'wordlift' ),
34
+			'name'              => _x('Entity Types', 'taxonomy general name', 'wordlift'),
35
+			'singular_name'     => _x('Entity Type', 'taxonomy singular name', 'wordlift'),
36
+			'search_items'      => __('Search Entity Types', 'wordlift'),
37
+			'all_items'         => __('All Entity Types', 'wordlift'),
38
+			'parent_item'       => __('Parent Entity Type', 'wordlift'),
39
+			'parent_item_colon' => __('Parent Entity Type:', 'wordlift'),
40
+			'edit_item'         => __('Edit Entity Type', 'wordlift'),
41
+			'update_item'       => __('Update Entity Type', 'wordlift'),
42
+			'add_new_item'      => __('Add New Entity Type', 'wordlift'),
43
+			'new_item_name'     => __('New Entity Type', 'wordlift'),
44
+			'menu_name'         => __('Entity Types', 'wordlift'),
45 45
 		);
46 46
 
47 47
 		// Take away GUI for taxonomy editing.
@@ -61,9 +61,9 @@  discard block
 block discarded – undo
61 61
 			'capabilities'       => $capabilities,
62 62
 			'hierarchical'       => true,
63 63
 			// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
64
-			'show_admin_column'  => apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ),
64
+			'show_admin_column'  => apply_filters('wl_feature__enable__entity-types-taxonomy', true),
65 65
 			// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
66
-			'show_in_rest'       => apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ),
66
+			'show_in_rest'       => apply_filters('wl_feature__enable__entity-types-taxonomy', true),
67 67
 			'show_in_quick_edit' => false,
68 68
 			'publicly_queryable' => false,
69 69
 		);
@@ -75,9 +75,9 @@  discard block
 block discarded – undo
75 75
 		 * @since 3.20.0
76 76
 		 */
77 77
 		// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
78
-		if ( apply_filters( 'wl_feature__enable__all-entity-types', WL_ALL_ENTITY_TYPES ) ) {
78
+		if (apply_filters('wl_feature__enable__all-entity-types', WL_ALL_ENTITY_TYPES)) {
79 79
 			// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
80
-			$args['meta_box_cb'] = apply_filters( 'wl_feature__enable__entity-types-taxonomy', true ) ? array(
80
+			$args['meta_box_cb'] = apply_filters('wl_feature__enable__entity-types-taxonomy', true) ? array(
81 81
 				'Wordlift_Admin_Schemaorg_Taxonomy_Metabox',
82 82
 				'render',
83 83
 			) : false;
@@ -119,9 +119,9 @@  discard block
 block discarded – undo
119 119
 		// query for synonyms in Block Editor.
120 120
 		add_filter(
121 121
 			'register_post_type_args',
122
-			function ( $args, $post_type ) {
123
-				if ( in_array( $post_type, Wordlift_Entity_Service::valid_entity_post_types(), true ) ) {
124
-					if ( ! isset( $args['supports'] ) ) {
122
+			function($args, $post_type) {
123
+				if (in_array($post_type, Wordlift_Entity_Service::valid_entity_post_types(), true)) {
124
+					if ( ! isset($args['supports'])) {
125 125
 						$args['supports'] = array();
126 126
 					}
127 127
 					$args['supports'][] = 'custom-fields';
@@ -134,7 +134,7 @@  discard block
 block discarded – undo
134 134
 		);
135 135
 
136 136
 		// Add filter to change the metabox CSS class.
137
-		add_filter( 'postbox_classes_entity_wl_entity_typediv', 'wl_admin_metaboxes_add_css_class' );
137
+		add_filter('postbox_classes_entity_wl_entity_typediv', 'wl_admin_metaboxes_add_css_class');
138 138
 
139 139
 		// Add a filter to preset the object term if none is set.
140 140
 		//
@@ -142,14 +142,14 @@  discard block
 block discarded – undo
142 142
 		//
143 143
 		// @see https://github.com/insideout10/wordlift-plugin/issues/995
144 144
 		// @since 3.23.6
145
-		add_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10, 4 );
145
+		add_filter('get_object_terms', array($this, 'get_object_terms'), 10, 4);
146 146
 
147 147
 		/**
148 148
 		 * Exclude sitemap creation for wl_entity_type taxonomy in Yoast
149 149
 		 *
150 150
 		 * @since 3.30.1
151 151
 		 */
152
-		add_filter( 'wpseo_sitemap_exclude_taxonomy', array( $this, 'wpseo_sitemap_exclude_taxonomy' ), 10, 2 );
152
+		add_filter('wpseo_sitemap_exclude_taxonomy', array($this, 'wpseo_sitemap_exclude_taxonomy'), 10, 2);
153 153
 
154 154
 	}
155 155
 
@@ -168,53 +168,53 @@  discard block
 block discarded – undo
168 168
 	 * @return array|WP_Error
169 169
 	 * @since 3.23.6
170 170
 	 */
171
-	public function get_object_terms( $terms, $object_ids, $taxonomies, $args ) {
171
+	public function get_object_terms($terms, $object_ids, $taxonomies, $args) {
172 172
 		// Get our entity type.
173 173
 		$entity_type = self::TAXONOMY_NAME;
174 174
 
175 175
 		// Check if this is a query for our entity type, that no terms have been found and that we have an article
176 176
 		// term to preset in case.
177
-		if ( ! taxonomy_exists( $entity_type )
178
-			 || array( $entity_type ) !== (array) $taxonomies
179
-			 || ! empty( $terms )
180
-			 || ! term_exists( 'article', $entity_type )
181
-			 || ! term_exists( 'thing', $entity_type ) ) {
177
+		if ( ! taxonomy_exists($entity_type)
178
+			 || array($entity_type) !== (array) $taxonomies
179
+			 || ! empty($terms)
180
+			 || ! term_exists('article', $entity_type)
181
+			 || ! term_exists('thing', $entity_type)) {
182 182
 
183 183
 			// Return the input value.
184 184
 			return $terms;
185 185
 		}
186 186
 
187 187
 		// Avoid nested calls in case of issues.
188
-		remove_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10 );
188
+		remove_filter('get_object_terms', array($this, 'get_object_terms'), 10);
189 189
 
190 190
 		// Set the default term for all the queried object.
191
-		foreach ( (array) $object_ids as $object_id ) {
192
-			$post_type = get_post_type( $object_id );
193
-			if ( Wordlift_Entity_Type_Service::is_valid_entity_post_type( $post_type ) ) {
191
+		foreach ((array) $object_ids as $object_id) {
192
+			$post_type = get_post_type($object_id);
193
+			if (Wordlift_Entity_Type_Service::is_valid_entity_post_type($post_type)) {
194 194
 				// Set the term to article for posts and pages, or to thing for everything else.
195
-				$uris = Wordlift_Entity_Type_Adapter::get_entity_types( $post_type );
196
-				foreach ( $uris as $uri ) {
195
+				$uris = Wordlift_Entity_Type_Adapter::get_entity_types($post_type);
196
+				foreach ($uris as $uri) {
197 197
 					// set the uri based on post type.
198
-					if ( 'http://schema.org/Article' === $uri || 'http://schema.org/Thing' === $uri ) {
198
+					if ('http://schema.org/Article' === $uri || 'http://schema.org/Thing' === $uri) {
199 199
 						$uri = Wordlift_Entity_Service::TYPE_NAME === $post_type ?
200 200
 							'http://schema.org/Thing' : 'http://schema.org/Article';
201 201
 					}
202
-					Wordlift_Entity_Type_Service::get_instance()->set( $object_id, $uri );
202
+					Wordlift_Entity_Type_Service::get_instance()->set($object_id, $uri);
203 203
 				}
204 204
 			}
205 205
 		}
206 206
 
207 207
 		// Finally return the object terms.
208
-		$terms = wp_get_object_terms( $object_ids, $taxonomies, $args );
208
+		$terms = wp_get_object_terms($object_ids, $taxonomies, $args);
209 209
 
210 210
 		// Re-enable nested calls in case of issues.
211
-		add_filter( 'get_object_terms', array( $this, 'get_object_terms' ), 10, 4 );
211
+		add_filter('get_object_terms', array($this, 'get_object_terms'), 10, 4);
212 212
 
213 213
 		return $terms;
214 214
 	}
215 215
 
216
-	public function wpseo_sitemap_exclude_taxonomy( $exclude, $tax ) {
217
-		if ( self::TAXONOMY_NAME === $tax ) {
216
+	public function wpseo_sitemap_exclude_taxonomy($exclude, $tax) {
217
+		if (self::TAXONOMY_NAME === $tax) {
218 218
 			return true;
219 219
 		}
220 220
 
Please login to merge, or discard this patch.
src/includes/class-wordlift-attachment-service.php 2 patches
Indentation   +182 added lines, -182 removed lines patch added patch discarded remove patch
@@ -16,187 +16,187 @@
 block discarded – undo
16 16
  */
17 17
 class Wordlift_Attachment_Service {
18 18
 
19
-	/**
20
-	 * Create a {@link Wordlift_Attachment_Service} instance.
21
-	 *
22
-	 * @since 3.20.0
23
-	 */
24
-	protected function __construct() {
25
-
26
-	}
27
-
28
-	private static $instance = null;
29
-
30
-	/**
31
-	 * Get the singleton instance.
32
-	 *
33
-	 * @return \Wordlift_Attachment_Service The singleton instance.
34
-	 * @since 3.20.0
35
-	 */
36
-	public static function get_instance() {
37
-
38
-		if ( ! isset( self::$instance ) ) {
39
-			self::$instance = new self();
40
-		}
41
-
42
-		return self::$instance;
43
-	}
44
-
45
-	/**
46
-	 * Get an attachment ID given a URL.
47
-	 *
48
-	 * Inspired from https://wpscholar.com/blog/get-attachment-id-from-wp-image-url/
49
-	 *
50
-	 * @param string $url The attachment URL.
51
-	 *
52
-	 * @return int|false Attachment ID on success, false on failure
53
-	 * @since 3.10.0
54
-	 */
55
-	public function get_attachment_id( $url ) {
56
-
57
-		// Get the upload directory data, we need the base URL to check whether
58
-		// the URL we received is within WP.
59
-		$dir = wp_upload_dir();
60
-
61
-		// Get the filename, the extension is kept.
62
-		if ( 1 !== preg_match( "@^{$dir['baseurl']}/(.+?)(?:-\d+x\d+)?(\.\w+)$@", $url, $matches ) ) {
63
-			return false;
64
-		}
65
-
66
-		$filename = $matches[1] . $matches[2];
67
-
68
-		// The following query is CPU-intensive, we need to review it.
69
-		//
70
-		// See https://github.com/insideout10/wordlift-plugin/issues/689.
71
-		//
72
-		// Query for attachments with the specified filename.
73
-		$query = new WP_Query(
74
-			array(
75
-				'post_type'           => 'attachment',
76
-				'post_status'         => 'inherit',
77
-				'fields'              => 'ids',
78
-				'meta_query'          => array(
79
-					array(
80
-						'value'   => $filename,
81
-						'compare' => '=',
82
-						'key'     => '_wp_attached_file',
83
-					),
84
-				),
85
-				'posts_per_page'      => 1,
86
-				'ignore_sticky_posts' => true,
87
-			)
88
-		);
89
-
90
-		// If there are no posts, return.
91
-		if ( $query->have_posts() ) {
92
-			return $query->posts[0];
93
-			// foreach ( $query->posts as $attachment_id ) {
94
-			//
95
-			// Get the attachment metadata, we need the filename.
96
-			// $metadata          = wp_get_attachment_metadata( $attachment_id );
97
-			// $original_filename = basename( $metadata['file'] );
98
-			//
99
-			// Get the cropped filenames, or an empty array in case there are no files.
100
-			// $sizes_filenames = isset( $metadata['sizes'] ) ? wp_list_pluck( $metadata['sizes'], 'file' ) : array();
101
-			//
102
-			// If the provided filename matches the attachment filename (or one of its resized images), return the id.
103
-			// if ( $original_filename === $filename || in_array( $filename, $sizes_filenames ) ) {
104
-			// return $attachment_id;
105
-			// }
106
-			// }
107
-		}
108
-
109
-		// If we got here, we couldn't find any attachment.
110
-		return false;
111
-	}
112
-
113
-	/**
114
-	 * Get images embedded in the post content.
115
-	 *
116
-	 * @param string $content The post content.
117
-	 *
118
-	 * @return array An array of attachment ids.
119
-	 * @since 3.10.0
120
-	 */
121
-	public function get_image_embeds( $content ) {
122
-
123
-		// Go over all the images included in the post content, check if they are
124
-		// in the DB, and if so include them.
125
-		$images = array();
126
-		if ( false === preg_match_all( '#<img [^>]*src="([^\\">]*)"[^>]*>#', $content, $images ) ) {
127
-			return array();
128
-		}
129
-
130
-		// Map the image URLs to attachment ids.
131
-		$that = $this;
132
-		$ids  = array_map(
133
-			function ( $url ) use ( $that ) {
134
-				return $that->get_attachment_id( $url );
135
-			},
136
-			$images[1]
137
-		);
138
-
139
-		// Filter out not found ids (i.e. id is false).
140
-		return array_filter(
141
-			$ids,
142
-			function ( $item ) {
143
-				return false !== $item;
144
-			}
145
-		);
146
-	}
147
-
148
-	/**
149
-	 * Get images linked via the `gallery` shortcode.
150
-	 *
151
-	 * @param \WP_Post $post A {@link WP_Post} instance.
152
-	 *
153
-	 * @return array An array of attachment ids.
154
-	 * @since 3.10.0
155
-	 */
156
-	public function get_gallery( $post ) {
157
-
158
-		// @todo: the `gallery` shortcode has an `exclude` attribute which isn't
159
-		// checked at the moment.
160
-
161
-		// Prepare the return value.
162
-		$ids = array();
163
-
164
-		// As the above for images in galleries.
165
-		// Code inspired by http://wordpress.stackexchange.com/questions/80408/how-to-get-page-post-gallery-attachment-images-in-order-they-are-set-in-backend
166
-		$pattern = get_shortcode_regex();
167
-
168
-		if ( preg_match_all( '/' . $pattern . '/s', $post->post_content, $matches )
169
-			 && array_key_exists( 2, $matches )
170
-			 && in_array( 'gallery', $matches[2], true )
171
-		) {
172
-
173
-			$keys = array_keys( $matches[2], 'gallery', true );
174
-
175
-			foreach ( $keys as $key ) {
176
-				$atts = shortcode_parse_atts( $matches[3][ $key ] );
177
-
178
-				if ( is_array( $atts ) && array_key_exists( 'ids', $atts ) ) {
179
-					// gallery images insert explicitly by their ids.
180
-
181
-					foreach ( explode( ',', $atts['ids'] ) as $attachment_id ) {
182
-						// Since we do not check for actual image existence
183
-						// when generating the json content, check it now.
184
-						if ( wp_get_attachment_image_src( $attachment_id, 'full' ) ) {
185
-							$ids[ $attachment_id ] = true;
186
-						}
187
-					}
188
-				} else {
189
-					// gallery shortcode with no ids uses all the images
190
-					// attached to the post.
191
-					$images = get_attached_media( 'image', $post->ID );
192
-					foreach ( $images as $attachment ) {
193
-						$ids[ $attachment->ID ] = true;
194
-					}
195
-				}
196
-			}
197
-		}
198
-
199
-		return array_keys( $ids );
200
-	}
19
+    /**
20
+     * Create a {@link Wordlift_Attachment_Service} instance.
21
+     *
22
+     * @since 3.20.0
23
+     */
24
+    protected function __construct() {
25
+
26
+    }
27
+
28
+    private static $instance = null;
29
+
30
+    /**
31
+     * Get the singleton instance.
32
+     *
33
+     * @return \Wordlift_Attachment_Service The singleton instance.
34
+     * @since 3.20.0
35
+     */
36
+    public static function get_instance() {
37
+
38
+        if ( ! isset( self::$instance ) ) {
39
+            self::$instance = new self();
40
+        }
41
+
42
+        return self::$instance;
43
+    }
44
+
45
+    /**
46
+     * Get an attachment ID given a URL.
47
+     *
48
+     * Inspired from https://wpscholar.com/blog/get-attachment-id-from-wp-image-url/
49
+     *
50
+     * @param string $url The attachment URL.
51
+     *
52
+     * @return int|false Attachment ID on success, false on failure
53
+     * @since 3.10.0
54
+     */
55
+    public function get_attachment_id( $url ) {
56
+
57
+        // Get the upload directory data, we need the base URL to check whether
58
+        // the URL we received is within WP.
59
+        $dir = wp_upload_dir();
60
+
61
+        // Get the filename, the extension is kept.
62
+        if ( 1 !== preg_match( "@^{$dir['baseurl']}/(.+?)(?:-\d+x\d+)?(\.\w+)$@", $url, $matches ) ) {
63
+            return false;
64
+        }
65
+
66
+        $filename = $matches[1] . $matches[2];
67
+
68
+        // The following query is CPU-intensive, we need to review it.
69
+        //
70
+        // See https://github.com/insideout10/wordlift-plugin/issues/689.
71
+        //
72
+        // Query for attachments with the specified filename.
73
+        $query = new WP_Query(
74
+            array(
75
+                'post_type'           => 'attachment',
76
+                'post_status'         => 'inherit',
77
+                'fields'              => 'ids',
78
+                'meta_query'          => array(
79
+                    array(
80
+                        'value'   => $filename,
81
+                        'compare' => '=',
82
+                        'key'     => '_wp_attached_file',
83
+                    ),
84
+                ),
85
+                'posts_per_page'      => 1,
86
+                'ignore_sticky_posts' => true,
87
+            )
88
+        );
89
+
90
+        // If there are no posts, return.
91
+        if ( $query->have_posts() ) {
92
+            return $query->posts[0];
93
+            // foreach ( $query->posts as $attachment_id ) {
94
+            //
95
+            // Get the attachment metadata, we need the filename.
96
+            // $metadata          = wp_get_attachment_metadata( $attachment_id );
97
+            // $original_filename = basename( $metadata['file'] );
98
+            //
99
+            // Get the cropped filenames, or an empty array in case there are no files.
100
+            // $sizes_filenames = isset( $metadata['sizes'] ) ? wp_list_pluck( $metadata['sizes'], 'file' ) : array();
101
+            //
102
+            // If the provided filename matches the attachment filename (or one of its resized images), return the id.
103
+            // if ( $original_filename === $filename || in_array( $filename, $sizes_filenames ) ) {
104
+            // return $attachment_id;
105
+            // }
106
+            // }
107
+        }
108
+
109
+        // If we got here, we couldn't find any attachment.
110
+        return false;
111
+    }
112
+
113
+    /**
114
+     * Get images embedded in the post content.
115
+     *
116
+     * @param string $content The post content.
117
+     *
118
+     * @return array An array of attachment ids.
119
+     * @since 3.10.0
120
+     */
121
+    public function get_image_embeds( $content ) {
122
+
123
+        // Go over all the images included in the post content, check if they are
124
+        // in the DB, and if so include them.
125
+        $images = array();
126
+        if ( false === preg_match_all( '#<img [^>]*src="([^\\">]*)"[^>]*>#', $content, $images ) ) {
127
+            return array();
128
+        }
129
+
130
+        // Map the image URLs to attachment ids.
131
+        $that = $this;
132
+        $ids  = array_map(
133
+            function ( $url ) use ( $that ) {
134
+                return $that->get_attachment_id( $url );
135
+            },
136
+            $images[1]
137
+        );
138
+
139
+        // Filter out not found ids (i.e. id is false).
140
+        return array_filter(
141
+            $ids,
142
+            function ( $item ) {
143
+                return false !== $item;
144
+            }
145
+        );
146
+    }
147
+
148
+    /**
149
+     * Get images linked via the `gallery` shortcode.
150
+     *
151
+     * @param \WP_Post $post A {@link WP_Post} instance.
152
+     *
153
+     * @return array An array of attachment ids.
154
+     * @since 3.10.0
155
+     */
156
+    public function get_gallery( $post ) {
157
+
158
+        // @todo: the `gallery` shortcode has an `exclude` attribute which isn't
159
+        // checked at the moment.
160
+
161
+        // Prepare the return value.
162
+        $ids = array();
163
+
164
+        // As the above for images in galleries.
165
+        // Code inspired by http://wordpress.stackexchange.com/questions/80408/how-to-get-page-post-gallery-attachment-images-in-order-they-are-set-in-backend
166
+        $pattern = get_shortcode_regex();
167
+
168
+        if ( preg_match_all( '/' . $pattern . '/s', $post->post_content, $matches )
169
+             && array_key_exists( 2, $matches )
170
+             && in_array( 'gallery', $matches[2], true )
171
+        ) {
172
+
173
+            $keys = array_keys( $matches[2], 'gallery', true );
174
+
175
+            foreach ( $keys as $key ) {
176
+                $atts = shortcode_parse_atts( $matches[3][ $key ] );
177
+
178
+                if ( is_array( $atts ) && array_key_exists( 'ids', $atts ) ) {
179
+                    // gallery images insert explicitly by their ids.
180
+
181
+                    foreach ( explode( ',', $atts['ids'] ) as $attachment_id ) {
182
+                        // Since we do not check for actual image existence
183
+                        // when generating the json content, check it now.
184
+                        if ( wp_get_attachment_image_src( $attachment_id, 'full' ) ) {
185
+                            $ids[ $attachment_id ] = true;
186
+                        }
187
+                    }
188
+                } else {
189
+                    // gallery shortcode with no ids uses all the images
190
+                    // attached to the post.
191
+                    $images = get_attached_media( 'image', $post->ID );
192
+                    foreach ( $images as $attachment ) {
193
+                        $ids[ $attachment->ID ] = true;
194
+                    }
195
+                }
196
+            }
197
+        }
198
+
199
+        return array_keys( $ids );
200
+    }
201 201
 
202 202
 }
Please login to merge, or discard this patch.
Spacing   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
 	 */
36 36
 	public static function get_instance() {
37 37
 
38
-		if ( ! isset( self::$instance ) ) {
38
+		if ( ! isset(self::$instance)) {
39 39
 			self::$instance = new self();
40 40
 		}
41 41
 
@@ -52,18 +52,18 @@  discard block
 block discarded – undo
52 52
 	 * @return int|false Attachment ID on success, false on failure
53 53
 	 * @since 3.10.0
54 54
 	 */
55
-	public function get_attachment_id( $url ) {
55
+	public function get_attachment_id($url) {
56 56
 
57 57
 		// Get the upload directory data, we need the base URL to check whether
58 58
 		// the URL we received is within WP.
59 59
 		$dir = wp_upload_dir();
60 60
 
61 61
 		// Get the filename, the extension is kept.
62
-		if ( 1 !== preg_match( "@^{$dir['baseurl']}/(.+?)(?:-\d+x\d+)?(\.\w+)$@", $url, $matches ) ) {
62
+		if (1 !== preg_match("@^{$dir['baseurl']}/(.+?)(?:-\d+x\d+)?(\.\w+)$@", $url, $matches)) {
63 63
 			return false;
64 64
 		}
65 65
 
66
-		$filename = $matches[1] . $matches[2];
66
+		$filename = $matches[1].$matches[2];
67 67
 
68 68
 		// The following query is CPU-intensive, we need to review it.
69 69
 		//
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
 		);
89 89
 
90 90
 		// If there are no posts, return.
91
-		if ( $query->have_posts() ) {
91
+		if ($query->have_posts()) {
92 92
 			return $query->posts[0];
93 93
 			// foreach ( $query->posts as $attachment_id ) {
94 94
 			//
@@ -118,20 +118,20 @@  discard block
 block discarded – undo
118 118
 	 * @return array An array of attachment ids.
119 119
 	 * @since 3.10.0
120 120
 	 */
121
-	public function get_image_embeds( $content ) {
121
+	public function get_image_embeds($content) {
122 122
 
123 123
 		// Go over all the images included in the post content, check if they are
124 124
 		// in the DB, and if so include them.
125 125
 		$images = array();
126
-		if ( false === preg_match_all( '#<img [^>]*src="([^\\">]*)"[^>]*>#', $content, $images ) ) {
126
+		if (false === preg_match_all('#<img [^>]*src="([^\\">]*)"[^>]*>#', $content, $images)) {
127 127
 			return array();
128 128
 		}
129 129
 
130 130
 		// Map the image URLs to attachment ids.
131 131
 		$that = $this;
132 132
 		$ids  = array_map(
133
-			function ( $url ) use ( $that ) {
134
-				return $that->get_attachment_id( $url );
133
+			function($url) use ($that) {
134
+				return $that->get_attachment_id($url);
135 135
 			},
136 136
 			$images[1]
137 137
 		);
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
 		// Filter out not found ids (i.e. id is false).
140 140
 		return array_filter(
141 141
 			$ids,
142
-			function ( $item ) {
142
+			function($item) {
143 143
 				return false !== $item;
144 144
 			}
145 145
 		);
@@ -153,7 +153,7 @@  discard block
 block discarded – undo
153 153
 	 * @return array An array of attachment ids.
154 154
 	 * @since 3.10.0
155 155
 	 */
156
-	public function get_gallery( $post ) {
156
+	public function get_gallery($post) {
157 157
 
158 158
 		// @todo: the `gallery` shortcode has an `exclude` attribute which isn't
159 159
 		// checked at the moment.
@@ -165,38 +165,38 @@  discard block
 block discarded – undo
165 165
 		// Code inspired by http://wordpress.stackexchange.com/questions/80408/how-to-get-page-post-gallery-attachment-images-in-order-they-are-set-in-backend
166 166
 		$pattern = get_shortcode_regex();
167 167
 
168
-		if ( preg_match_all( '/' . $pattern . '/s', $post->post_content, $matches )
169
-			 && array_key_exists( 2, $matches )
170
-			 && in_array( 'gallery', $matches[2], true )
168
+		if (preg_match_all('/'.$pattern.'/s', $post->post_content, $matches)
169
+			 && array_key_exists(2, $matches)
170
+			 && in_array('gallery', $matches[2], true)
171 171
 		) {
172 172
 
173
-			$keys = array_keys( $matches[2], 'gallery', true );
173
+			$keys = array_keys($matches[2], 'gallery', true);
174 174
 
175
-			foreach ( $keys as $key ) {
176
-				$atts = shortcode_parse_atts( $matches[3][ $key ] );
175
+			foreach ($keys as $key) {
176
+				$atts = shortcode_parse_atts($matches[3][$key]);
177 177
 
178
-				if ( is_array( $atts ) && array_key_exists( 'ids', $atts ) ) {
178
+				if (is_array($atts) && array_key_exists('ids', $atts)) {
179 179
 					// gallery images insert explicitly by their ids.
180 180
 
181
-					foreach ( explode( ',', $atts['ids'] ) as $attachment_id ) {
181
+					foreach (explode(',', $atts['ids']) as $attachment_id) {
182 182
 						// Since we do not check for actual image existence
183 183
 						// when generating the json content, check it now.
184
-						if ( wp_get_attachment_image_src( $attachment_id, 'full' ) ) {
185
-							$ids[ $attachment_id ] = true;
184
+						if (wp_get_attachment_image_src($attachment_id, 'full')) {
185
+							$ids[$attachment_id] = true;
186 186
 						}
187 187
 					}
188 188
 				} else {
189 189
 					// gallery shortcode with no ids uses all the images
190 190
 					// attached to the post.
191
-					$images = get_attached_media( 'image', $post->ID );
192
-					foreach ( $images as $attachment ) {
193
-						$ids[ $attachment->ID ] = true;
191
+					$images = get_attached_media('image', $post->ID);
192
+					foreach ($images as $attachment) {
193
+						$ids[$attachment->ID] = true;
194 194
 					}
195 195
 				}
196 196
 			}
197 197
 		}
198 198
 
199
-		return array_keys( $ids );
199
+		return array_keys($ids);
200 200
 	}
201 201
 
202 202
 }
Please login to merge, or discard this patch.
src/includes/class-wordlift-jsonld-service.php 2 patches
Indentation   +264 added lines, -264 removed lines patch added patch discarded remove patch
@@ -17,274 +17,274 @@
 block discarded – undo
17 17
  */
18 18
 class Wordlift_Jsonld_Service {
19 19
 
20
-	/**
21
-	 * A {@link Wordlift_Entity_Service} instance.
22
-	 *
23
-	 * @since  3.8.0
24
-	 * @access private
25
-	 * @var Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance.
26
-	 */
27
-	private $entity_service;
28
-
29
-	/**
30
-	 * A {@link Wordlift_Term_JsonLd_Adapter} instance.
31
-	 *
32
-	 * @since  3.32.0
33
-	 * @access private
34
-	 * @var Wordlift_Term_JsonLd_Adapter $entity_service A {@link Wordlift_Term_JsonLd_Adapter} instance.
35
-	 */
36
-	private $term_jsonld_adapter;
37
-
38
-	/**
39
-	 * A {@link Wordlift_Post_Converter} instance.
40
-	 *
41
-	 * @since  3.8.0
42
-	 * @access private
43
-	 * @var \Wordlift_Post_Converter A {@link Wordlift_Post_Converter} instance.
44
-	 */
45
-	private $converter;
46
-
47
-	/**
48
-	 * A {@link Wordlift_Website_Jsonld_Converter} instance.
49
-	 *
50
-	 * @since  3.14.0
51
-	 * @access private
52
-	 * @var \Wordlift_Website_Jsonld_Converter A {@link Wordlift_Website_Jsonld_Converter} instance.
53
-	 */
54
-	private $website_converter;
55
-
56
-	/**
57
-	 * The singleton instance for the JSON-LD service.
58
-	 *
59
-	 * @since 3.15.1
60
-	 *
61
-	 * @var \Wordlift_Jsonld_Service $instance The singleton instance for the JSON-LD service.
62
-	 */
63
-	private static $instance;
64
-
65
-	/**
66
-	 * Create a JSON-LD service.
67
-	 *
68
-	 * @param \Wordlift_Entity_Service           $entity_service A {@link Wordlift_Entity_Service} instance.
69
-	 * @param \Wordlift_Post_Converter           $converter A {@link Wordlift_Uri_To_Jsonld_Converter} instance.
70
-	 * @param \Wordlift_Website_Jsonld_Converter $website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
71
-	 * @param \Wordlift_Term_JsonLd_Adapter      $term_jsonld_adapter
72
-	 *
73
-	 * @since 3.8.0
74
-	 */
75
-	public function __construct( $entity_service, $converter, $website_converter, $term_jsonld_adapter ) {
76
-
77
-		$this->entity_service      = $entity_service;
78
-		$this->converter           = $converter;
79
-		$this->website_converter   = $website_converter;
80
-		$this->term_jsonld_adapter = $term_jsonld_adapter;
81
-		self::$instance            = $this;
82
-
83
-	}
84
-
85
-	/**
86
-	 * Get the singleton instance for the JSON-LD service.
87
-	 *
88
-	 * @return \Wordlift_Jsonld_Service The singleton instance for the JSON-LD service.
89
-	 * @since 3.15.1
90
-	 */
91
-	public static function get_instance() {
92
-
93
-		return self::$instance;
94
-	}
95
-
96
-	/**
97
-	 * Process calls to the AJAX 'wl_jsonld' endpoint.
98
-	 *
99
-	 * @since 3.8.0
100
-	 */
101
-	public function get() {
102
-		// Clear the buffer to be sure someone doesn't mess with our response.
103
-		//
104
-		// See https://github.com/insideout10/wordlift-plugin/issues/406.
105
-		// See https://codex.wordpress.org/AJAX_in_Plugins.
20
+    /**
21
+     * A {@link Wordlift_Entity_Service} instance.
22
+     *
23
+     * @since  3.8.0
24
+     * @access private
25
+     * @var Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance.
26
+     */
27
+    private $entity_service;
28
+
29
+    /**
30
+     * A {@link Wordlift_Term_JsonLd_Adapter} instance.
31
+     *
32
+     * @since  3.32.0
33
+     * @access private
34
+     * @var Wordlift_Term_JsonLd_Adapter $entity_service A {@link Wordlift_Term_JsonLd_Adapter} instance.
35
+     */
36
+    private $term_jsonld_adapter;
37
+
38
+    /**
39
+     * A {@link Wordlift_Post_Converter} instance.
40
+     *
41
+     * @since  3.8.0
42
+     * @access private
43
+     * @var \Wordlift_Post_Converter A {@link Wordlift_Post_Converter} instance.
44
+     */
45
+    private $converter;
46
+
47
+    /**
48
+     * A {@link Wordlift_Website_Jsonld_Converter} instance.
49
+     *
50
+     * @since  3.14.0
51
+     * @access private
52
+     * @var \Wordlift_Website_Jsonld_Converter A {@link Wordlift_Website_Jsonld_Converter} instance.
53
+     */
54
+    private $website_converter;
55
+
56
+    /**
57
+     * The singleton instance for the JSON-LD service.
58
+     *
59
+     * @since 3.15.1
60
+     *
61
+     * @var \Wordlift_Jsonld_Service $instance The singleton instance for the JSON-LD service.
62
+     */
63
+    private static $instance;
64
+
65
+    /**
66
+     * Create a JSON-LD service.
67
+     *
68
+     * @param \Wordlift_Entity_Service           $entity_service A {@link Wordlift_Entity_Service} instance.
69
+     * @param \Wordlift_Post_Converter           $converter A {@link Wordlift_Uri_To_Jsonld_Converter} instance.
70
+     * @param \Wordlift_Website_Jsonld_Converter $website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
71
+     * @param \Wordlift_Term_JsonLd_Adapter      $term_jsonld_adapter
72
+     *
73
+     * @since 3.8.0
74
+     */
75
+    public function __construct( $entity_service, $converter, $website_converter, $term_jsonld_adapter ) {
76
+
77
+        $this->entity_service      = $entity_service;
78
+        $this->converter           = $converter;
79
+        $this->website_converter   = $website_converter;
80
+        $this->term_jsonld_adapter = $term_jsonld_adapter;
81
+        self::$instance            = $this;
82
+
83
+    }
84
+
85
+    /**
86
+     * Get the singleton instance for the JSON-LD service.
87
+     *
88
+     * @return \Wordlift_Jsonld_Service The singleton instance for the JSON-LD service.
89
+     * @since 3.15.1
90
+     */
91
+    public static function get_instance() {
92
+
93
+        return self::$instance;
94
+    }
95
+
96
+    /**
97
+     * Process calls to the AJAX 'wl_jsonld' endpoint.
98
+     *
99
+     * @since 3.8.0
100
+     */
101
+    public function get() {
102
+        // Clear the buffer to be sure someone doesn't mess with our response.
103
+        //
104
+        // See https://github.com/insideout10/wordlift-plugin/issues/406.
105
+        // See https://codex.wordpress.org/AJAX_in_Plugins.
106 106
         // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
107
-		@ob_clean();
108
-
109
-		// Get the parameter from the request.
110
-		$is_homepage = isset( $_REQUEST['homepage'] ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
111
-		$post_id     = isset( $_REQUEST['id'] ) && is_numeric( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
112
-
113
-		// Send the generated JSON-LD.
114
-		$this->send_jsonld( $this->get_jsonld( $is_homepage, $post_id ) );
115
-
116
-	}
117
-
118
-	/**
119
-	 * A close of WP's own `wp_send_json` function which uses `application/ld+json` as content type.
120
-	 *
121
-	 * @param mixed $response Variable (usually an array or object) to encode as JSON,
122
-	 *                           then print and die.
123
-	 *
124
-	 * @since 3.18.5
125
-	 */
126
-	private function send_jsonld( $response ) {
107
+        @ob_clean();
108
+
109
+        // Get the parameter from the request.
110
+        $is_homepage = isset( $_REQUEST['homepage'] ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
111
+        $post_id     = isset( $_REQUEST['id'] ) && is_numeric( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
112
+
113
+        // Send the generated JSON-LD.
114
+        $this->send_jsonld( $this->get_jsonld( $is_homepage, $post_id ) );
115
+
116
+    }
117
+
118
+    /**
119
+     * A close of WP's own `wp_send_json` function which uses `application/ld+json` as content type.
120
+     *
121
+     * @param mixed $response Variable (usually an array or object) to encode as JSON,
122
+     *                           then print and die.
123
+     *
124
+     * @since 3.18.5
125
+     */
126
+    private function send_jsonld( $response ) {
127 127
         // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
128
-		@header( 'Content-Type: application/ld+json; charset=' . get_option( 'blog_charset' ) );
129
-		echo wp_json_encode( $response );
130
-		if ( apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
131
-			wp_die();
132
-		} else {
133
-			die;
134
-		}
135
-	}
136
-
137
-	/**
138
-	 * Get the JSON-LD.
139
-	 *
140
-	 * @param bool     $is_homepage Whether the JSON-LD for the homepage is being requested.
141
-	 * @param int|null $post_id The JSON-LD for the specified {@link WP_Post} id.
142
-	 * @param int      $context A context for the JSON-LD generation, valid values in Jsonld_Context_Enum.
143
-	 *
144
-	 * @return array A JSON-LD structure.
145
-	 * @since 3.15.1
146
-	 */
147
-	public function get_jsonld( $is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN ) {
148
-
149
-		// Tell NewRelic to ignore us, otherwise NewRelic customers might receive
150
-		// e-mails with a low apdex score.
151
-		//
152
-		// See https://github.com/insideout10/wordlift-plugin/issues/521
153
-		Wordlift_NewRelic_Adapter::ignore_apdex();
154
-
155
-		// Switch to Website converter if is home page.
156
-		if ( $is_homepage ) {
157
-			/**
158
-			 * Filter: 'wordlift_disable_website_json_ld' - Allow disabling of the json+ld output.
159
-			 *
160
-			 * @since  3.14.0
161
-			 * @api    bool $display_search Whether or not to display json+ld search on the frontend.
162
-			 */
163
-			if ( apply_filters( 'wordlift_disable_website_json_ld', false ) ) {
164
-				return array();
165
-			}
166
-
167
-			// Set a reference to the website_converter.
168
-			$website_converter = $this->website_converter;
169
-
170
-			// Send JSON-LD.
171
-			return $website_converter->create_schema();
172
-		}
173
-
174
-		// If no id has been provided return an empty array.
175
-		if ( ! isset( $post_id ) ) {
176
-			return array();
177
-		}
178
-
179
-		// An array of references which is captured when converting an URI to a
180
-		// json which we gather to further expand our json-ld.
181
-		$references       = array();
182
-		$references_infos = array();
183
-
184
-		// Set a reference to the entity_to_jsonld_converter to use in the closures.
185
-		$entity_to_jsonld_converter = $this->converter;
186
-
187
-		$jsonld = array( $entity_to_jsonld_converter->convert( $post_id, $references, $references_infos ) );
188
-
189
-		$that                       = $this;
190
-		$expanded_references_jsonld = array_map(
191
-			function ( $item ) use ( $context, $entity_to_jsonld_converter, &$references_infos, $that ) {
192
-				// "2nd level properties" may not output here, e.g. a post
193
-				// mentioning an event, located in a place: the place is referenced
194
-				// via the `@id` but no other properties are loaded.
195
-				$ignored = array();
196
-				if ( $item instanceof Term_Reference ) {
128
+        @header( 'Content-Type: application/ld+json; charset=' . get_option( 'blog_charset' ) );
129
+        echo wp_json_encode( $response );
130
+        if ( apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
131
+            wp_die();
132
+        } else {
133
+            die;
134
+        }
135
+    }
136
+
137
+    /**
138
+     * Get the JSON-LD.
139
+     *
140
+     * @param bool     $is_homepage Whether the JSON-LD for the homepage is being requested.
141
+     * @param int|null $post_id The JSON-LD for the specified {@link WP_Post} id.
142
+     * @param int      $context A context for the JSON-LD generation, valid values in Jsonld_Context_Enum.
143
+     *
144
+     * @return array A JSON-LD structure.
145
+     * @since 3.15.1
146
+     */
147
+    public function get_jsonld( $is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN ) {
148
+
149
+        // Tell NewRelic to ignore us, otherwise NewRelic customers might receive
150
+        // e-mails with a low apdex score.
151
+        //
152
+        // See https://github.com/insideout10/wordlift-plugin/issues/521
153
+        Wordlift_NewRelic_Adapter::ignore_apdex();
154
+
155
+        // Switch to Website converter if is home page.
156
+        if ( $is_homepage ) {
157
+            /**
158
+             * Filter: 'wordlift_disable_website_json_ld' - Allow disabling of the json+ld output.
159
+             *
160
+             * @since  3.14.0
161
+             * @api    bool $display_search Whether or not to display json+ld search on the frontend.
162
+             */
163
+            if ( apply_filters( 'wordlift_disable_website_json_ld', false ) ) {
164
+                return array();
165
+            }
166
+
167
+            // Set a reference to the website_converter.
168
+            $website_converter = $this->website_converter;
169
+
170
+            // Send JSON-LD.
171
+            return $website_converter->create_schema();
172
+        }
173
+
174
+        // If no id has been provided return an empty array.
175
+        if ( ! isset( $post_id ) ) {
176
+            return array();
177
+        }
178
+
179
+        // An array of references which is captured when converting an URI to a
180
+        // json which we gather to further expand our json-ld.
181
+        $references       = array();
182
+        $references_infos = array();
183
+
184
+        // Set a reference to the entity_to_jsonld_converter to use in the closures.
185
+        $entity_to_jsonld_converter = $this->converter;
186
+
187
+        $jsonld = array( $entity_to_jsonld_converter->convert( $post_id, $references, $references_infos ) );
188
+
189
+        $that                       = $this;
190
+        $expanded_references_jsonld = array_map(
191
+            function ( $item ) use ( $context, $entity_to_jsonld_converter, &$references_infos, $that ) {
192
+                // "2nd level properties" may not output here, e.g. a post
193
+                // mentioning an event, located in a place: the place is referenced
194
+                // via the `@id` but no other properties are loaded.
195
+                $ignored = array();
196
+                if ( $item instanceof Term_Reference ) {
197 197
                     // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
198
-					  $term_jsonld = $that->term_jsonld_adapter->get( $item->get_id(), $context );
199
-
200
-					  // For term references, we publish a jsonld array on the page, use only the first item.
201
-					  return count( $term_jsonld ) > 0 ? $term_jsonld[0] : false;
202
-				} elseif ( $item instanceof Post_Reference ) {
203
-					$item = $item->get_id();
204
-				}
205
-
206
-				// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
207
-				return $entity_to_jsonld_converter->convert( $item, $ignored, $references_infos );
208
-			},
209
-			array_unique( $references )
210
-		);
211
-
212
-		// Convert each URI to a JSON-LD array, while gathering referenced entities.
213
-		// in the references array.
214
-		$jsonld = array_merge(
215
-			$jsonld,
216
-			// Convert each URI in the references array to JSON-LD. We don't output
217
-			// entities already output above (hence the array_diff).
218
-			array_filter( $expanded_references_jsonld )
219
-		);
220
-
221
-		$required_references = array_filter(
222
-			$references_infos,
223
-			function ( $item ) use ( $references ) {
224
-
225
-				return isset( $item['reference'] ) &&
226
-				   // Check that the reference is required
227
-				   $item['reference']->get_required() &&
228
-				   // Check that the reference isn't being output already.
229
-				   ! in_array( $item['reference']->get_id(), $references, true );
230
-			}
231
-		);
232
-
233
-		$jsonld = array_merge(
234
-			$jsonld,
235
-			array_filter(
236
-				array_map(
237
-					function ( $item ) use ( $references, $entity_to_jsonld_converter ) {
238
-
239
-						if ( ! isset( $item['reference'] ) ) {
240
-							  return null;
241
-						}
242
-
243
-						$post_id = $item['reference']->get_id();
244
-						if ( in_array( $post_id, $references, true ) ) {
245
-							return null;
246
-						}
247
-
248
-						$references[] = $post_id;
249
-
250
-						return $entity_to_jsonld_converter->convert( $post_id, $references );
251
-					},
252
-					$required_references
253
-				)
254
-			)
255
-		);
256
-
257
-		/**
258
-		 * Filter name: wl_after_get_jsonld
259
-		 *
260
-		 * @return array
261
-		 * @since 3.27.2
262
-		 * @var $jsonld array The final jsonld before outputting to page.
263
-		 * @var $post_id int The post id for which the jsonld is generated.
264
-		 */
265
-		$jsonld = apply_filters( 'wl_after_get_jsonld', $jsonld, $post_id, $context );
266
-
267
-		return $jsonld;
268
-	}
269
-
270
-	/**
271
-	 * Write the JSON-LD in the head.
272
-	 *
273
-	 * This function isn't actually used, but may be used to quickly enable writing the JSON-LD synchronously to the
274
-	 * document head, using the `wp_head` hook.
275
-	 *
276
-	 * @since 3.18.5
277
-	 */
278
-	public function wp_head() {
279
-
280
-		// Determine whether this is the home page or whether we're displaying a single post.
281
-		$is_homepage = is_home() || is_front_page();
282
-		$post_id     = is_singular() ? get_the_ID() : null;
283
-
284
-		$jsonld = wp_json_encode( $this->get_jsonld( $is_homepage, $post_id, Jsonld_Context_Enum::PAGE ) );
285
-		?>
198
+                        $term_jsonld = $that->term_jsonld_adapter->get( $item->get_id(), $context );
199
+
200
+                        // For term references, we publish a jsonld array on the page, use only the first item.
201
+                        return count( $term_jsonld ) > 0 ? $term_jsonld[0] : false;
202
+                } elseif ( $item instanceof Post_Reference ) {
203
+                    $item = $item->get_id();
204
+                }
205
+
206
+                // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
207
+                return $entity_to_jsonld_converter->convert( $item, $ignored, $references_infos );
208
+            },
209
+            array_unique( $references )
210
+        );
211
+
212
+        // Convert each URI to a JSON-LD array, while gathering referenced entities.
213
+        // in the references array.
214
+        $jsonld = array_merge(
215
+            $jsonld,
216
+            // Convert each URI in the references array to JSON-LD. We don't output
217
+            // entities already output above (hence the array_diff).
218
+            array_filter( $expanded_references_jsonld )
219
+        );
220
+
221
+        $required_references = array_filter(
222
+            $references_infos,
223
+            function ( $item ) use ( $references ) {
224
+
225
+                return isset( $item['reference'] ) &&
226
+                   // Check that the reference is required
227
+                   $item['reference']->get_required() &&
228
+                   // Check that the reference isn't being output already.
229
+                   ! in_array( $item['reference']->get_id(), $references, true );
230
+            }
231
+        );
232
+
233
+        $jsonld = array_merge(
234
+            $jsonld,
235
+            array_filter(
236
+                array_map(
237
+                    function ( $item ) use ( $references, $entity_to_jsonld_converter ) {
238
+
239
+                        if ( ! isset( $item['reference'] ) ) {
240
+                                return null;
241
+                        }
242
+
243
+                        $post_id = $item['reference']->get_id();
244
+                        if ( in_array( $post_id, $references, true ) ) {
245
+                            return null;
246
+                        }
247
+
248
+                        $references[] = $post_id;
249
+
250
+                        return $entity_to_jsonld_converter->convert( $post_id, $references );
251
+                    },
252
+                    $required_references
253
+                )
254
+            )
255
+        );
256
+
257
+        /**
258
+         * Filter name: wl_after_get_jsonld
259
+         *
260
+         * @return array
261
+         * @since 3.27.2
262
+         * @var $jsonld array The final jsonld before outputting to page.
263
+         * @var $post_id int The post id for which the jsonld is generated.
264
+         */
265
+        $jsonld = apply_filters( 'wl_after_get_jsonld', $jsonld, $post_id, $context );
266
+
267
+        return $jsonld;
268
+    }
269
+
270
+    /**
271
+     * Write the JSON-LD in the head.
272
+     *
273
+     * This function isn't actually used, but may be used to quickly enable writing the JSON-LD synchronously to the
274
+     * document head, using the `wp_head` hook.
275
+     *
276
+     * @since 3.18.5
277
+     */
278
+    public function wp_head() {
279
+
280
+        // Determine whether this is the home page or whether we're displaying a single post.
281
+        $is_homepage = is_home() || is_front_page();
282
+        $post_id     = is_singular() ? get_the_ID() : null;
283
+
284
+        $jsonld = wp_json_encode( $this->get_jsonld( $is_homepage, $post_id, Jsonld_Context_Enum::PAGE ) );
285
+        ?>
286 286
 		<script type="application/ld+json"><?php echo esc_html( $jsonld ); ?></script>
287 287
 													  <?php
288
-	}
288
+    }
289 289
 
290 290
 }
Please login to merge, or discard this patch.
Spacing   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -72,7 +72,7 @@  discard block
 block discarded – undo
72 72
 	 *
73 73
 	 * @since 3.8.0
74 74
 	 */
75
-	public function __construct( $entity_service, $converter, $website_converter, $term_jsonld_adapter ) {
75
+	public function __construct($entity_service, $converter, $website_converter, $term_jsonld_adapter) {
76 76
 
77 77
 		$this->entity_service      = $entity_service;
78 78
 		$this->converter           = $converter;
@@ -107,11 +107,11 @@  discard block
 block discarded – undo
107 107
 		@ob_clean();
108 108
 
109 109
 		// Get the parameter from the request.
110
-		$is_homepage = isset( $_REQUEST['homepage'] ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
111
-		$post_id     = isset( $_REQUEST['id'] ) && is_numeric( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
110
+		$is_homepage = isset($_REQUEST['homepage']); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
111
+		$post_id     = isset($_REQUEST['id']) && is_numeric($_REQUEST['id']) ? intval($_REQUEST['id']) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
112 112
 
113 113
 		// Send the generated JSON-LD.
114
-		$this->send_jsonld( $this->get_jsonld( $is_homepage, $post_id ) );
114
+		$this->send_jsonld($this->get_jsonld($is_homepage, $post_id));
115 115
 
116 116
 	}
117 117
 
@@ -123,11 +123,11 @@  discard block
 block discarded – undo
123 123
 	 *
124 124
 	 * @since 3.18.5
125 125
 	 */
126
-	private function send_jsonld( $response ) {
126
+	private function send_jsonld($response) {
127 127
         // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
128
-		@header( 'Content-Type: application/ld+json; charset=' . get_option( 'blog_charset' ) );
129
-		echo wp_json_encode( $response );
130
-		if ( apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
128
+		@header('Content-Type: application/ld+json; charset='.get_option('blog_charset'));
129
+		echo wp_json_encode($response);
130
+		if (apply_filters('wp_doing_ajax', defined('DOING_AJAX') && DOING_AJAX)) {
131 131
 			wp_die();
132 132
 		} else {
133 133
 			die;
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 	 * @return array A JSON-LD structure.
145 145
 	 * @since 3.15.1
146 146
 	 */
147
-	public function get_jsonld( $is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN ) {
147
+	public function get_jsonld($is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN) {
148 148
 
149 149
 		// Tell NewRelic to ignore us, otherwise NewRelic customers might receive
150 150
 		// e-mails with a low apdex score.
@@ -153,14 +153,14 @@  discard block
 block discarded – undo
153 153
 		Wordlift_NewRelic_Adapter::ignore_apdex();
154 154
 
155 155
 		// Switch to Website converter if is home page.
156
-		if ( $is_homepage ) {
156
+		if ($is_homepage) {
157 157
 			/**
158 158
 			 * Filter: 'wordlift_disable_website_json_ld' - Allow disabling of the json+ld output.
159 159
 			 *
160 160
 			 * @since  3.14.0
161 161
 			 * @api    bool $display_search Whether or not to display json+ld search on the frontend.
162 162
 			 */
163
-			if ( apply_filters( 'wordlift_disable_website_json_ld', false ) ) {
163
+			if (apply_filters('wordlift_disable_website_json_ld', false)) {
164 164
 				return array();
165 165
 			}
166 166
 
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
 		}
173 173
 
174 174
 		// If no id has been provided return an empty array.
175
-		if ( ! isset( $post_id ) ) {
175
+		if ( ! isset($post_id)) {
176 176
 			return array();
177 177
 		}
178 178
 
@@ -184,29 +184,29 @@  discard block
 block discarded – undo
184 184
 		// Set a reference to the entity_to_jsonld_converter to use in the closures.
185 185
 		$entity_to_jsonld_converter = $this->converter;
186 186
 
187
-		$jsonld = array( $entity_to_jsonld_converter->convert( $post_id, $references, $references_infos ) );
187
+		$jsonld = array($entity_to_jsonld_converter->convert($post_id, $references, $references_infos));
188 188
 
189 189
 		$that                       = $this;
190 190
 		$expanded_references_jsonld = array_map(
191
-			function ( $item ) use ( $context, $entity_to_jsonld_converter, &$references_infos, $that ) {
191
+			function($item) use ($context, $entity_to_jsonld_converter, &$references_infos, $that) {
192 192
 				// "2nd level properties" may not output here, e.g. a post
193 193
 				// mentioning an event, located in a place: the place is referenced
194 194
 				// via the `@id` but no other properties are loaded.
195 195
 				$ignored = array();
196
-				if ( $item instanceof Term_Reference ) {
196
+				if ($item instanceof Term_Reference) {
197 197
                     // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
198
-					  $term_jsonld = $that->term_jsonld_adapter->get( $item->get_id(), $context );
198
+					  $term_jsonld = $that->term_jsonld_adapter->get($item->get_id(), $context);
199 199
 
200 200
 					  // For term references, we publish a jsonld array on the page, use only the first item.
201
-					  return count( $term_jsonld ) > 0 ? $term_jsonld[0] : false;
202
-				} elseif ( $item instanceof Post_Reference ) {
201
+					  return count($term_jsonld) > 0 ? $term_jsonld[0] : false;
202
+				} elseif ($item instanceof Post_Reference) {
203 203
 					$item = $item->get_id();
204 204
 				}
205 205
 
206 206
 				// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
207
-				return $entity_to_jsonld_converter->convert( $item, $ignored, $references_infos );
207
+				return $entity_to_jsonld_converter->convert($item, $ignored, $references_infos);
208 208
 			},
209
-			array_unique( $references )
209
+			array_unique($references)
210 210
 		);
211 211
 
212 212
 		// Convert each URI to a JSON-LD array, while gathering referenced entities.
@@ -215,18 +215,18 @@  discard block
 block discarded – undo
215 215
 			$jsonld,
216 216
 			// Convert each URI in the references array to JSON-LD. We don't output
217 217
 			// entities already output above (hence the array_diff).
218
-			array_filter( $expanded_references_jsonld )
218
+			array_filter($expanded_references_jsonld)
219 219
 		);
220 220
 
221 221
 		$required_references = array_filter(
222 222
 			$references_infos,
223
-			function ( $item ) use ( $references ) {
223
+			function($item) use ($references) {
224 224
 
225
-				return isset( $item['reference'] ) &&
225
+				return isset($item['reference']) &&
226 226
 				   // Check that the reference is required
227 227
 				   $item['reference']->get_required() &&
228 228
 				   // Check that the reference isn't being output already.
229
-				   ! in_array( $item['reference']->get_id(), $references, true );
229
+				   ! in_array($item['reference']->get_id(), $references, true);
230 230
 			}
231 231
 		);
232 232
 
@@ -234,20 +234,20 @@  discard block
 block discarded – undo
234 234
 			$jsonld,
235 235
 			array_filter(
236 236
 				array_map(
237
-					function ( $item ) use ( $references, $entity_to_jsonld_converter ) {
237
+					function($item) use ($references, $entity_to_jsonld_converter) {
238 238
 
239
-						if ( ! isset( $item['reference'] ) ) {
239
+						if ( ! isset($item['reference'])) {
240 240
 							  return null;
241 241
 						}
242 242
 
243 243
 						$post_id = $item['reference']->get_id();
244
-						if ( in_array( $post_id, $references, true ) ) {
244
+						if (in_array($post_id, $references, true)) {
245 245
 							return null;
246 246
 						}
247 247
 
248 248
 						$references[] = $post_id;
249 249
 
250
-						return $entity_to_jsonld_converter->convert( $post_id, $references );
250
+						return $entity_to_jsonld_converter->convert($post_id, $references);
251 251
 					},
252 252
 					$required_references
253 253
 				)
@@ -262,7 +262,7 @@  discard block
 block discarded – undo
262 262
 		 * @var $jsonld array The final jsonld before outputting to page.
263 263
 		 * @var $post_id int The post id for which the jsonld is generated.
264 264
 		 */
265
-		$jsonld = apply_filters( 'wl_after_get_jsonld', $jsonld, $post_id, $context );
265
+		$jsonld = apply_filters('wl_after_get_jsonld', $jsonld, $post_id, $context);
266 266
 
267 267
 		return $jsonld;
268 268
 	}
@@ -281,9 +281,9 @@  discard block
 block discarded – undo
281 281
 		$is_homepage = is_home() || is_front_page();
282 282
 		$post_id     = is_singular() ? get_the_ID() : null;
283 283
 
284
-		$jsonld = wp_json_encode( $this->get_jsonld( $is_homepage, $post_id, Jsonld_Context_Enum::PAGE ) );
284
+		$jsonld = wp_json_encode($this->get_jsonld($is_homepage, $post_id, Jsonld_Context_Enum::PAGE));
285 285
 		?>
286
-		<script type="application/ld+json"><?php echo esc_html( $jsonld ); ?></script>
286
+		<script type="application/ld+json"><?php echo esc_html($jsonld); ?></script>
287 287
 													  <?php
288 288
 	}
289 289
 
Please login to merge, or discard this patch.
src/includes/class-wordlift-category-taxonomy-service.php 2 patches
Indentation   +60 added lines, -60 removed lines patch added patch discarded remove patch
@@ -18,75 +18,75 @@
 block discarded – undo
18 18
  */
19 19
 class Wordlift_Category_Taxonomy_Service {
20 20
 
21
-	/**
22
-	 * The {@link Wordlift_Entity_Post_Type_Service} instance.
23
-	 *
24
-	 * @since  3.11.0
25
-	 * @access private
26
-	 * @var \Wordlift_Entity_Post_Type_Service $entity_post_type_service The {@link Wordlift_Entity_Post_Type_Service} instance.
27
-	 */
28
-	private $entity_post_type_service;
21
+    /**
22
+     * The {@link Wordlift_Entity_Post_Type_Service} instance.
23
+     *
24
+     * @since  3.11.0
25
+     * @access private
26
+     * @var \Wordlift_Entity_Post_Type_Service $entity_post_type_service The {@link Wordlift_Entity_Post_Type_Service} instance.
27
+     */
28
+    private $entity_post_type_service;
29 29
 
30
-	/**
31
-	 * Create a {@link Wordlift_Category_Taxonomy_Service} instance.
32
-	 *
33
-	 * @since 3.11.0
34
-	 *
35
-	 * @param \Wordlift_Entity_Post_Type_Service $entity_post_type_service The {@link Wordlift_Entity_Post_Type_Service} instance.
36
-	 */
37
-	public function __construct( $entity_post_type_service ) {
30
+    /**
31
+     * Create a {@link Wordlift_Category_Taxonomy_Service} instance.
32
+     *
33
+     * @since 3.11.0
34
+     *
35
+     * @param \Wordlift_Entity_Post_Type_Service $entity_post_type_service The {@link Wordlift_Entity_Post_Type_Service} instance.
36
+     */
37
+    public function __construct( $entity_post_type_service ) {
38 38
 
39
-		$this->entity_post_type_service = $entity_post_type_service;
39
+        $this->entity_post_type_service = $entity_post_type_service;
40 40
 
41
-	}
41
+    }
42 42
 
43
-	/**
44
-	 * Set the entity post types as one to be included in archive pages.
45
-	 *
46
-	 * In order to have entities show up in standard WP categories (Posts categories)
47
-	 * we configure the `entity` post type, but we also need to alter the main
48
-	 * WP query (which by default queries posts only) to include the `entities`.
49
-	 *
50
-	 * @since 3.11.0
51
-	 *
52
-	 * @param WP_Query $query WP's {@link WP_Query} instance.
53
-	 */
54
-	public function pre_get_posts( $query ) {
43
+    /**
44
+     * Set the entity post types as one to be included in archive pages.
45
+     *
46
+     * In order to have entities show up in standard WP categories (Posts categories)
47
+     * we configure the `entity` post type, but we also need to alter the main
48
+     * WP query (which by default queries posts only) to include the `entities`.
49
+     *
50
+     * @since 3.11.0
51
+     *
52
+     * @param WP_Query $query WP's {@link WP_Query} instance.
53
+     */
54
+    public function pre_get_posts( $query ) {
55 55
 
56
-		// Only for the main query, avoid problems with widgets and what not.
57
-		if ( ! $query->is_main_query() ) {
58
-			return;
59
-		}
56
+        // Only for the main query, avoid problems with widgets and what not.
57
+        if ( ! $query->is_main_query() ) {
58
+            return;
59
+        }
60 60
 
61
-		// We don't want to alter the query if we're in the admin UI, if this is
62
-		// not a category query, or if the `suppress_filters` is set.
63
-		//
64
-		// Note that it is unlikely for `suppress_filter` to be set on the front
65
-		// end, but let's be safe if it is set the calling code assumes no
66
-		// modifications of queries.
67
-		//
68
-		// is_admin is needed, otherwise category based post filters will show
69
-		// both types and at the current release (4.7) it causes PHP errors.
70
-		if ( is_admin() || ! is_category() || ! empty( $query->query_vars['suppress_filters'] ) ) {
71
-			return;
72
-		}
61
+        // We don't want to alter the query if we're in the admin UI, if this is
62
+        // not a category query, or if the `suppress_filters` is set.
63
+        //
64
+        // Note that it is unlikely for `suppress_filter` to be set on the front
65
+        // end, but let's be safe if it is set the calling code assumes no
66
+        // modifications of queries.
67
+        //
68
+        // is_admin is needed, otherwise category based post filters will show
69
+        // both types and at the current release (4.7) it causes PHP errors.
70
+        if ( is_admin() || ! is_category() || ! empty( $query->query_vars['suppress_filters'] ) ) {
71
+            return;
72
+        }
73 73
 
74
-		// Check the current post types, maybe the category archive pages
75
-		// are already associated with other post types.
76
-		//
77
-		// If `post_type` isn't set, WP assumes `post` by default.
78
-		$post_types = $query->get( 'post_type' );
79
-		$post_types = (array) ( $post_types ? $post_types : 'post' );
74
+        // Check the current post types, maybe the category archive pages
75
+        // are already associated with other post types.
76
+        //
77
+        // If `post_type` isn't set, WP assumes `post` by default.
78
+        $post_types = $query->get( 'post_type' );
79
+        $post_types = (array) ( $post_types ? $post_types : 'post' );
80 80
 
81
-		// Add the entities post type only if the post post type is used in the query
82
-		// since we only want `entities` to appear alongside posts.
83
-		if ( in_array( 'post', $post_types, true ) ) {
84
-			$post_types[] = $this->entity_post_type_service->get_post_type();
85
-		}
81
+        // Add the entities post type only if the post post type is used in the query
82
+        // since we only want `entities` to appear alongside posts.
83
+        if ( in_array( 'post', $post_types, true ) ) {
84
+            $post_types[] = $this->entity_post_type_service->get_post_type();
85
+        }
86 86
 
87
-		// Update the query post types.
88
-		$query->set( 'post_type', $post_types );
87
+        // Update the query post types.
88
+        $query->set( 'post_type', $post_types );
89 89
 
90
-	}
90
+    }
91 91
 
92 92
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -34,7 +34,7 @@  discard block
 block discarded – undo
34 34
 	 *
35 35
 	 * @param \Wordlift_Entity_Post_Type_Service $entity_post_type_service The {@link Wordlift_Entity_Post_Type_Service} instance.
36 36
 	 */
37
-	public function __construct( $entity_post_type_service ) {
37
+	public function __construct($entity_post_type_service) {
38 38
 
39 39
 		$this->entity_post_type_service = $entity_post_type_service;
40 40
 
@@ -51,10 +51,10 @@  discard block
 block discarded – undo
51 51
 	 *
52 52
 	 * @param WP_Query $query WP's {@link WP_Query} instance.
53 53
 	 */
54
-	public function pre_get_posts( $query ) {
54
+	public function pre_get_posts($query) {
55 55
 
56 56
 		// Only for the main query, avoid problems with widgets and what not.
57
-		if ( ! $query->is_main_query() ) {
57
+		if ( ! $query->is_main_query()) {
58 58
 			return;
59 59
 		}
60 60
 
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
 		//
68 68
 		// is_admin is needed, otherwise category based post filters will show
69 69
 		// both types and at the current release (4.7) it causes PHP errors.
70
-		if ( is_admin() || ! is_category() || ! empty( $query->query_vars['suppress_filters'] ) ) {
70
+		if (is_admin() || ! is_category() || ! empty($query->query_vars['suppress_filters'])) {
71 71
 			return;
72 72
 		}
73 73
 
@@ -75,17 +75,17 @@  discard block
 block discarded – undo
75 75
 		// are already associated with other post types.
76 76
 		//
77 77
 		// If `post_type` isn't set, WP assumes `post` by default.
78
-		$post_types = $query->get( 'post_type' );
79
-		$post_types = (array) ( $post_types ? $post_types : 'post' );
78
+		$post_types = $query->get('post_type');
79
+		$post_types = (array) ($post_types ? $post_types : 'post');
80 80
 
81 81
 		// Add the entities post type only if the post post type is used in the query
82 82
 		// since we only want `entities` to appear alongside posts.
83
-		if ( in_array( 'post', $post_types, true ) ) {
83
+		if (in_array('post', $post_types, true)) {
84 84
 			$post_types[] = $this->entity_post_type_service->get_post_type();
85 85
 		}
86 86
 
87 87
 		// Update the query post types.
88
-		$query->set( 'post_type', $post_types );
88
+		$query->set('post_type', $post_types);
89 89
 
90 90
 	}
91 91
 
Please login to merge, or discard this patch.