Completed
Pull Request — develop (#1701)
by
unknown
01:07
created
src/public/class-wordlift-term-jsonld-adapter.php 2 patches
Indentation   +304 added lines, -304 removed lines patch added patch discarded remove patch
@@ -21,309 +21,309 @@
 block discarded – undo
21 21
  */
22 22
 class Wordlift_Term_JsonLd_Adapter {
23 23
 
24
-	/**
25
-	 * The {@link Wordlift_Entity_Uri_Service} instance.
26
-	 *
27
-	 * @since 3.20.0
28
-	 * @access private
29
-	 * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
30
-	 */
31
-	private $entity_uri_service;
32
-
33
-	/**
34
-	 * Instance.
35
-	 *
36
-	 * @var Wordlift_Term_JsonLd_Adapter
37
-	 */
38
-	private static $instance;
39
-
40
-	/**
41
-	 * @var Wordlift_Post_Converter
42
-	 */
43
-	private $post_id_to_jsonld_converter;
44
-
45
-	/**
46
-	 * Wordlift_Term_JsonLd_Adapter constructor.
47
-	 *
48
-	 * @param \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
49
-	 * @param \Wordlift_Post_Converter     $post_id_to_jsonld_converter The {@link Wordlift_Post_Converter} instance.
50
-	 *
51
-	 * @since 3.20.0
52
-	 */
53
-	public function __construct( $entity_uri_service, $post_id_to_jsonld_converter ) {
54
-
55
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
56
-
57
-		$this->entity_uri_service          = $entity_uri_service;
58
-		$this->post_id_to_jsonld_converter = $post_id_to_jsonld_converter;
59
-
60
-		self::$instance = $this;
61
-	}
62
-
63
-	/**
64
-	 * Get instance.
65
-	 *
66
-	 * @return Wordlift_Term_JsonLd_Adapter|static
67
-	 */
68
-	public static function get_instance() {
69
-		return self::$instance;
70
-	}
71
-
72
-	/**
73
-	 * Adds carousel json ld data to term page if the conditions match
74
-	 *
75
-	 * @return array|boolean
76
-	 */
77
-	public function get_carousel_jsonld( $id = null ) {
78
-		$posts       = $this->get_posts( $id );
79
-		$post_jsonld = array();
80
-		if ( ! is_array( $posts ) || count( $posts ) < 2 ) {
81
-			// Bail out if no posts are present.
82
-			return false;
83
-		}
84
-
85
-		if ( $id !== null ) {
86
-			$term                       = get_term( $id );
87
-			$post_jsonld['description'] = wp_strip_all_tags( strip_shortcodes( $term->description ) );
88
-			$thumbnail_id               = get_term_meta( $id, 'thumbnail_id', true );
89
-			if ( ! empty( $thumbnail_id ) ) {
90
-				$post_jsonld['image'] = wp_get_attachment_url( $thumbnail_id );
91
-			}
92
-		}
93
-
94
-		// More than 2 items are present, so construct the post_jsonld data
95
-		$post_jsonld['@context']        = 'https://schema.org';
96
-		$post_jsonld['@type']           = 'ItemList';
97
-		$post_jsonld['url']             = $this->get_term_url( $id );
98
-		$post_jsonld['itemListElement'] = array();
99
-		$position                       = 1;
100
-
101
-		foreach ( $posts as $post_id ) {
102
-			$result = array(
103
-				'@type'    => 'ListItem',
104
-				'position' => $position,
105
-				/**
106
-				 * We can't use `item` here unless we change the URL for the item to point to the current page.
107
-				 *
108
-				 * See https://developers.google.com/search/docs/data-types/carousel
109
-				 */
110
-				'url'      => apply_filters( 'wl_carousel_post_list_item_url', get_permalink( $post_id ), $post_id ),
111
-			);
112
-			array_push( $post_jsonld['itemListElement'], $result );
113
-			++ $position;
114
-		}
115
-
116
-		return $post_jsonld;
117
-	}
118
-
119
-	/**
120
-	 * Get posts.
121
-	 *
122
-	 * @param $id
123
-	 *
124
-	 * @return array|int[]|string[]|WP_Error|null
125
-	 */
126
-	private function get_posts( $id ) {
127
-		global $wp_query;
128
-
129
-		if ( $wp_query->posts !== null ) {
130
-			return array_map(
131
-				function ( $post ) {
132
-					return $post->ID;
133
-				},
134
-				$wp_query->posts
135
-			);
136
-		}
137
-
138
-		if ( $id === null ) {
139
-			return null;
140
-		}
141
-
142
-		$term = get_term( $id );
143
-
144
-		return get_objects_in_term( $id, $term->taxonomy );
145
-	}
146
-
147
-	/**
148
-	 * Hook to `wp_head` to print the JSON-LD.
149
-	 *
150
-	 * @since 3.20.0
151
-	 */
152
-	public function wp_head() {
153
-		$query_object = get_queried_object();
154
-
155
-		// Check if it is a term page.
156
-		if ( ! $query_object instanceof WP_Term ) {
157
-			return;
158
-		}
159
-
160
-		// Bail out if `wl_jsonld_enabled` isn't enabled.
161
-		if ( ! apply_filters( 'wl_jsonld_enabled', true ) ) {
162
-			return;
163
-		}
164
-
165
-		$term_id = $query_object->term_id;
166
-
167
-		$jsonld = $this->get( $term_id, Jsonld_Context_Enum::PAGE );
168
-
169
-		// Bail out if the JSON-LD is empty.
170
-		if ( empty( $jsonld ) ) {
171
-			return;
172
-		}
173
-
174
-		$jsonld_string = wp_json_encode( $jsonld );
175
-
176
-		$jsonld_term_html_output = '<script type="application/ld+json" id="wl-jsonld-term">' . $jsonld_string . '</script>';
177
-		$jsonld_term_html_output = apply_filters( 'wl_jsonld_term_html_output', $jsonld_term_html_output, $term_id );
178
-
179
-		echo $jsonld_term_html_output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- It's an application/ld+json output.
180
-
181
-	}
182
-
183
-	/**
184
-	 * Get.
185
-	 *
186
-	 * @param $id
187
-	 * @param $context
188
-	 * @param $is_recursive_call
189
-	 *
190
-	 * @return array
191
-	 */
192
-	public function get( $id, $context, $is_recursive_call = false ) {
193
-		/**
194
-		 * Support for carousel rich snippet, get jsonld data present
195
-		 * for all the posts shown in the term page, and add the jsonld data
196
-		 * to list
197
-		 *
198
-		 * see here: https://developers.google.com/search/docs/data-types/carousel
199
-		 *
200
-		 * @since 3.26.0
201
-		 */
202
-		$jsonld_array = array();
203
-
204
-		if ( Jsonld_Context_Enum::PAGE === $context ) {
205
-			$carousel_data = $this->get_carousel_jsonld( $id );
206
-			if ( $carousel_data ) {
207
-				$jsonld_array[] = $carousel_data;
208
-			}
209
-		}
210
-
211
-		$entities_jsonld_array = $this->get_entity_jsonld( $id, $context );
212
-
213
-		$result = array(
214
-			'jsonld'     => array_merge( $jsonld_array, $entities_jsonld_array ),
215
-			'references' => array(),
216
-		);
217
-
218
-		/**
219
-		 * @since 3.26.3
220
-		 * Filter: wl_term_jsonld_array
221
-		 * @var $id int Term id
222
-		 * @var $jsonld_array array An array containing jsonld for term and entities.
223
-		 * @var $context int A context for the JSON-LD generation, valid values in Jsonld_Context_Enum
224
-		 */
225
-		$arr = apply_filters( 'wl_term_jsonld_array', $result, $id, $context );
226
-
227
-		$references = array();
228
-
229
-		// Don't expand nested references, it will lead to an infinite loop.
230
-		if ( ! $is_recursive_call ) {
231
-			/**
232
-			 * @since 3.32.0
233
-			 * Expand the references returned by this filter.
234
-			 */
235
-			$references = $this->expand_references( $arr['references'] );
236
-		}
237
-
238
-		$jsonld_array = array_merge( $arr['jsonld'], $references );
239
-
240
-		return $jsonld_array;
241
-	}
242
-
243
-	/**
244
-	 * Get term url.
245
-	 *
246
-	 * @param $id
247
-	 *
248
-	 * @return array|false|int|mixed|string|WP_Error|WP_Term|null
249
-	 */
250
-	private function get_term_url( $id ) {
251
-		if ( null === $id ) {
252
-			return isset( $_SERVER['REQUEST_URI'] ) ? filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ) : '';
253
-		}
254
-
255
-		$maybe_url = get_term_meta( $id, Wordlift_Url_Property_Service::META_KEY, true );
256
-		if ( ! empty( $maybe_url ) ) {
257
-			return $maybe_url;
258
-		}
259
-
260
-		return get_term_link( $id );
261
-	}
262
-
263
-	/**
264
-	 * Return jsonld for entities bound to terms.
265
-	 *
266
-	 * @param int $term_id Term ID.
267
-	 * @param int $context A context for the JSON-LD generation, valid values in Jsonld_Context_Enum.
268
-	 *
269
-	 * @return array
270
-	 */
271
-	// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
272
-	private function get_entity_jsonld( $term_id, $context ) {
273
-
274
-		// The `_wl_entity_id` are URIs.
275
-		$entity_ids         = get_term_meta( $term_id, '_wl_entity_id' );
276
-		$entity_uri_service = $this->entity_uri_service;
277
-
278
-		$wordlift_jsonld_service = Wordlift_Jsonld_Service::get_instance();
279
-
280
-		$local_entity_ids = array_filter(
281
-			$entity_ids,
282
-			function ( $uri ) use ( $entity_uri_service ) {
283
-				return $entity_uri_service->is_internal( $uri );
284
-			}
285
-		);
286
-
287
-		// Bail out if there are no entities.
288
-		if ( empty( $local_entity_ids ) ) {
289
-			return array();
290
-		}
291
-
292
-		$post            = $this->entity_uri_service->get_entity( array_shift( $local_entity_ids ) );
293
-		$entities_jsonld = $wordlift_jsonld_service->get_jsonld( false, $post->ID );
294
-		// Reset the `url` to the term page.
295
-		$entities_jsonld[0]['url'] = get_term_link( $term_id );
296
-
297
-		return $entities_jsonld;
298
-	}
299
-
300
-	/**
301
-	 * @param $references
302
-	 *
303
-	 * @return array
304
-	 */
305
-	private function expand_references( $references ) {
306
-		if ( ! is_array( $references ) ) {
307
-			return array();
308
-		}
309
-		$references_jsonld = array();
310
-		// Expand the references.
311
-		foreach ( $references as $reference ) {
312
-			if ( $reference instanceof Term_Reference ) {
313
-				// Second level references won't be expanded.
314
-				$references_jsonld[] = current( $this->get( $reference->get_id(), Jsonld_Context_Enum::UNKNOWN, true ) );
315
-			} elseif ( is_numeric( $reference ) ) {
316
-				$ref_2               = array();
317
-				$ref_info_2          = array();
318
-				$references_jsonld[] = $this->post_id_to_jsonld_converter->convert( $reference, $ref_2, $ref_info_2, new Relations() );
319
-			} elseif ( $reference instanceof Post_Reference ) {
320
-				$ref_2               = array();
321
-				$ref_info_2          = array();
322
-				$references_jsonld[] = $this->post_id_to_jsonld_converter->convert( $reference->get_id(), $ref_2, $ref_info_2, new Relations() );
323
-			}
324
-		}
325
-
326
-		return $references_jsonld;
327
-	}
24
+    /**
25
+     * The {@link Wordlift_Entity_Uri_Service} instance.
26
+     *
27
+     * @since 3.20.0
28
+     * @access private
29
+     * @var \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
30
+     */
31
+    private $entity_uri_service;
32
+
33
+    /**
34
+     * Instance.
35
+     *
36
+     * @var Wordlift_Term_JsonLd_Adapter
37
+     */
38
+    private static $instance;
39
+
40
+    /**
41
+     * @var Wordlift_Post_Converter
42
+     */
43
+    private $post_id_to_jsonld_converter;
44
+
45
+    /**
46
+     * Wordlift_Term_JsonLd_Adapter constructor.
47
+     *
48
+     * @param \Wordlift_Entity_Uri_Service $entity_uri_service The {@link Wordlift_Entity_Uri_Service} instance.
49
+     * @param \Wordlift_Post_Converter     $post_id_to_jsonld_converter The {@link Wordlift_Post_Converter} instance.
50
+     *
51
+     * @since 3.20.0
52
+     */
53
+    public function __construct( $entity_uri_service, $post_id_to_jsonld_converter ) {
54
+
55
+        add_action( 'wp_head', array( $this, 'wp_head' ) );
56
+
57
+        $this->entity_uri_service          = $entity_uri_service;
58
+        $this->post_id_to_jsonld_converter = $post_id_to_jsonld_converter;
59
+
60
+        self::$instance = $this;
61
+    }
62
+
63
+    /**
64
+     * Get instance.
65
+     *
66
+     * @return Wordlift_Term_JsonLd_Adapter|static
67
+     */
68
+    public static function get_instance() {
69
+        return self::$instance;
70
+    }
71
+
72
+    /**
73
+     * Adds carousel json ld data to term page if the conditions match
74
+     *
75
+     * @return array|boolean
76
+     */
77
+    public function get_carousel_jsonld( $id = null ) {
78
+        $posts       = $this->get_posts( $id );
79
+        $post_jsonld = array();
80
+        if ( ! is_array( $posts ) || count( $posts ) < 2 ) {
81
+            // Bail out if no posts are present.
82
+            return false;
83
+        }
84
+
85
+        if ( $id !== null ) {
86
+            $term                       = get_term( $id );
87
+            $post_jsonld['description'] = wp_strip_all_tags( strip_shortcodes( $term->description ) );
88
+            $thumbnail_id               = get_term_meta( $id, 'thumbnail_id', true );
89
+            if ( ! empty( $thumbnail_id ) ) {
90
+                $post_jsonld['image'] = wp_get_attachment_url( $thumbnail_id );
91
+            }
92
+        }
93
+
94
+        // More than 2 items are present, so construct the post_jsonld data
95
+        $post_jsonld['@context']        = 'https://schema.org';
96
+        $post_jsonld['@type']           = 'ItemList';
97
+        $post_jsonld['url']             = $this->get_term_url( $id );
98
+        $post_jsonld['itemListElement'] = array();
99
+        $position                       = 1;
100
+
101
+        foreach ( $posts as $post_id ) {
102
+            $result = array(
103
+                '@type'    => 'ListItem',
104
+                'position' => $position,
105
+                /**
106
+                 * We can't use `item` here unless we change the URL for the item to point to the current page.
107
+                 *
108
+                 * See https://developers.google.com/search/docs/data-types/carousel
109
+                 */
110
+                'url'      => apply_filters( 'wl_carousel_post_list_item_url', get_permalink( $post_id ), $post_id ),
111
+            );
112
+            array_push( $post_jsonld['itemListElement'], $result );
113
+            ++ $position;
114
+        }
115
+
116
+        return $post_jsonld;
117
+    }
118
+
119
+    /**
120
+     * Get posts.
121
+     *
122
+     * @param $id
123
+     *
124
+     * @return array|int[]|string[]|WP_Error|null
125
+     */
126
+    private function get_posts( $id ) {
127
+        global $wp_query;
128
+
129
+        if ( $wp_query->posts !== null ) {
130
+            return array_map(
131
+                function ( $post ) {
132
+                    return $post->ID;
133
+                },
134
+                $wp_query->posts
135
+            );
136
+        }
137
+
138
+        if ( $id === null ) {
139
+            return null;
140
+        }
141
+
142
+        $term = get_term( $id );
143
+
144
+        return get_objects_in_term( $id, $term->taxonomy );
145
+    }
146
+
147
+    /**
148
+     * Hook to `wp_head` to print the JSON-LD.
149
+     *
150
+     * @since 3.20.0
151
+     */
152
+    public function wp_head() {
153
+        $query_object = get_queried_object();
154
+
155
+        // Check if it is a term page.
156
+        if ( ! $query_object instanceof WP_Term ) {
157
+            return;
158
+        }
159
+
160
+        // Bail out if `wl_jsonld_enabled` isn't enabled.
161
+        if ( ! apply_filters( 'wl_jsonld_enabled', true ) ) {
162
+            return;
163
+        }
164
+
165
+        $term_id = $query_object->term_id;
166
+
167
+        $jsonld = $this->get( $term_id, Jsonld_Context_Enum::PAGE );
168
+
169
+        // Bail out if the JSON-LD is empty.
170
+        if ( empty( $jsonld ) ) {
171
+            return;
172
+        }
173
+
174
+        $jsonld_string = wp_json_encode( $jsonld );
175
+
176
+        $jsonld_term_html_output = '<script type="application/ld+json" id="wl-jsonld-term">' . $jsonld_string . '</script>';
177
+        $jsonld_term_html_output = apply_filters( 'wl_jsonld_term_html_output', $jsonld_term_html_output, $term_id );
178
+
179
+        echo $jsonld_term_html_output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- It's an application/ld+json output.
180
+
181
+    }
182
+
183
+    /**
184
+     * Get.
185
+     *
186
+     * @param $id
187
+     * @param $context
188
+     * @param $is_recursive_call
189
+     *
190
+     * @return array
191
+     */
192
+    public function get( $id, $context, $is_recursive_call = false ) {
193
+        /**
194
+         * Support for carousel rich snippet, get jsonld data present
195
+         * for all the posts shown in the term page, and add the jsonld data
196
+         * to list
197
+         *
198
+         * see here: https://developers.google.com/search/docs/data-types/carousel
199
+         *
200
+         * @since 3.26.0
201
+         */
202
+        $jsonld_array = array();
203
+
204
+        if ( Jsonld_Context_Enum::PAGE === $context ) {
205
+            $carousel_data = $this->get_carousel_jsonld( $id );
206
+            if ( $carousel_data ) {
207
+                $jsonld_array[] = $carousel_data;
208
+            }
209
+        }
210
+
211
+        $entities_jsonld_array = $this->get_entity_jsonld( $id, $context );
212
+
213
+        $result = array(
214
+            'jsonld'     => array_merge( $jsonld_array, $entities_jsonld_array ),
215
+            'references' => array(),
216
+        );
217
+
218
+        /**
219
+         * @since 3.26.3
220
+         * Filter: wl_term_jsonld_array
221
+         * @var $id int Term id
222
+         * @var $jsonld_array array An array containing jsonld for term and entities.
223
+         * @var $context int A context for the JSON-LD generation, valid values in Jsonld_Context_Enum
224
+         */
225
+        $arr = apply_filters( 'wl_term_jsonld_array', $result, $id, $context );
226
+
227
+        $references = array();
228
+
229
+        // Don't expand nested references, it will lead to an infinite loop.
230
+        if ( ! $is_recursive_call ) {
231
+            /**
232
+             * @since 3.32.0
233
+             * Expand the references returned by this filter.
234
+             */
235
+            $references = $this->expand_references( $arr['references'] );
236
+        }
237
+
238
+        $jsonld_array = array_merge( $arr['jsonld'], $references );
239
+
240
+        return $jsonld_array;
241
+    }
242
+
243
+    /**
244
+     * Get term url.
245
+     *
246
+     * @param $id
247
+     *
248
+     * @return array|false|int|mixed|string|WP_Error|WP_Term|null
249
+     */
250
+    private function get_term_url( $id ) {
251
+        if ( null === $id ) {
252
+            return isset( $_SERVER['REQUEST_URI'] ) ? filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ) : '';
253
+        }
254
+
255
+        $maybe_url = get_term_meta( $id, Wordlift_Url_Property_Service::META_KEY, true );
256
+        if ( ! empty( $maybe_url ) ) {
257
+            return $maybe_url;
258
+        }
259
+
260
+        return get_term_link( $id );
261
+    }
262
+
263
+    /**
264
+     * Return jsonld for entities bound to terms.
265
+     *
266
+     * @param int $term_id Term ID.
267
+     * @param int $context A context for the JSON-LD generation, valid values in Jsonld_Context_Enum.
268
+     *
269
+     * @return array
270
+     */
271
+    // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
272
+    private function get_entity_jsonld( $term_id, $context ) {
273
+
274
+        // The `_wl_entity_id` are URIs.
275
+        $entity_ids         = get_term_meta( $term_id, '_wl_entity_id' );
276
+        $entity_uri_service = $this->entity_uri_service;
277
+
278
+        $wordlift_jsonld_service = Wordlift_Jsonld_Service::get_instance();
279
+
280
+        $local_entity_ids = array_filter(
281
+            $entity_ids,
282
+            function ( $uri ) use ( $entity_uri_service ) {
283
+                return $entity_uri_service->is_internal( $uri );
284
+            }
285
+        );
286
+
287
+        // Bail out if there are no entities.
288
+        if ( empty( $local_entity_ids ) ) {
289
+            return array();
290
+        }
291
+
292
+        $post            = $this->entity_uri_service->get_entity( array_shift( $local_entity_ids ) );
293
+        $entities_jsonld = $wordlift_jsonld_service->get_jsonld( false, $post->ID );
294
+        // Reset the `url` to the term page.
295
+        $entities_jsonld[0]['url'] = get_term_link( $term_id );
296
+
297
+        return $entities_jsonld;
298
+    }
299
+
300
+    /**
301
+     * @param $references
302
+     *
303
+     * @return array
304
+     */
305
+    private function expand_references( $references ) {
306
+        if ( ! is_array( $references ) ) {
307
+            return array();
308
+        }
309
+        $references_jsonld = array();
310
+        // Expand the references.
311
+        foreach ( $references as $reference ) {
312
+            if ( $reference instanceof Term_Reference ) {
313
+                // Second level references won't be expanded.
314
+                $references_jsonld[] = current( $this->get( $reference->get_id(), Jsonld_Context_Enum::UNKNOWN, true ) );
315
+            } elseif ( is_numeric( $reference ) ) {
316
+                $ref_2               = array();
317
+                $ref_info_2          = array();
318
+                $references_jsonld[] = $this->post_id_to_jsonld_converter->convert( $reference, $ref_2, $ref_info_2, new Relations() );
319
+            } elseif ( $reference instanceof Post_Reference ) {
320
+                $ref_2               = array();
321
+                $ref_info_2          = array();
322
+                $references_jsonld[] = $this->post_id_to_jsonld_converter->convert( $reference->get_id(), $ref_2, $ref_info_2, new Relations() );
323
+            }
324
+        }
325
+
326
+        return $references_jsonld;
327
+    }
328 328
 
329 329
 }
Please login to merge, or discard this patch.
Spacing   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -50,9 +50,9 @@  discard block
 block discarded – undo
50 50
 	 *
51 51
 	 * @since 3.20.0
52 52
 	 */
53
-	public function __construct( $entity_uri_service, $post_id_to_jsonld_converter ) {
53
+	public function __construct($entity_uri_service, $post_id_to_jsonld_converter) {
54 54
 
55
-		add_action( 'wp_head', array( $this, 'wp_head' ) );
55
+		add_action('wp_head', array($this, 'wp_head'));
56 56
 
57 57
 		$this->entity_uri_service          = $entity_uri_service;
58 58
 		$this->post_id_to_jsonld_converter = $post_id_to_jsonld_converter;
@@ -74,31 +74,31 @@  discard block
 block discarded – undo
74 74
 	 *
75 75
 	 * @return array|boolean
76 76
 	 */
77
-	public function get_carousel_jsonld( $id = null ) {
78
-		$posts       = $this->get_posts( $id );
77
+	public function get_carousel_jsonld($id = null) {
78
+		$posts       = $this->get_posts($id);
79 79
 		$post_jsonld = array();
80
-		if ( ! is_array( $posts ) || count( $posts ) < 2 ) {
80
+		if ( ! is_array($posts) || count($posts) < 2) {
81 81
 			// Bail out if no posts are present.
82 82
 			return false;
83 83
 		}
84 84
 
85
-		if ( $id !== null ) {
86
-			$term                       = get_term( $id );
87
-			$post_jsonld['description'] = wp_strip_all_tags( strip_shortcodes( $term->description ) );
88
-			$thumbnail_id               = get_term_meta( $id, 'thumbnail_id', true );
89
-			if ( ! empty( $thumbnail_id ) ) {
90
-				$post_jsonld['image'] = wp_get_attachment_url( $thumbnail_id );
85
+		if ($id !== null) {
86
+			$term                       = get_term($id);
87
+			$post_jsonld['description'] = wp_strip_all_tags(strip_shortcodes($term->description));
88
+			$thumbnail_id               = get_term_meta($id, 'thumbnail_id', true);
89
+			if ( ! empty($thumbnail_id)) {
90
+				$post_jsonld['image'] = wp_get_attachment_url($thumbnail_id);
91 91
 			}
92 92
 		}
93 93
 
94 94
 		// More than 2 items are present, so construct the post_jsonld data
95 95
 		$post_jsonld['@context']        = 'https://schema.org';
96 96
 		$post_jsonld['@type']           = 'ItemList';
97
-		$post_jsonld['url']             = $this->get_term_url( $id );
97
+		$post_jsonld['url']             = $this->get_term_url($id);
98 98
 		$post_jsonld['itemListElement'] = array();
99 99
 		$position                       = 1;
100 100
 
101
-		foreach ( $posts as $post_id ) {
101
+		foreach ($posts as $post_id) {
102 102
 			$result = array(
103 103
 				'@type'    => 'ListItem',
104 104
 				'position' => $position,
@@ -107,10 +107,10 @@  discard block
 block discarded – undo
107 107
 				 *
108 108
 				 * See https://developers.google.com/search/docs/data-types/carousel
109 109
 				 */
110
-				'url'      => apply_filters( 'wl_carousel_post_list_item_url', get_permalink( $post_id ), $post_id ),
110
+				'url'      => apply_filters('wl_carousel_post_list_item_url', get_permalink($post_id), $post_id),
111 111
 			);
112
-			array_push( $post_jsonld['itemListElement'], $result );
113
-			++ $position;
112
+			array_push($post_jsonld['itemListElement'], $result);
113
+			++$position;
114 114
 		}
115 115
 
116 116
 		return $post_jsonld;
@@ -123,25 +123,25 @@  discard block
 block discarded – undo
123 123
 	 *
124 124
 	 * @return array|int[]|string[]|WP_Error|null
125 125
 	 */
126
-	private function get_posts( $id ) {
126
+	private function get_posts($id) {
127 127
 		global $wp_query;
128 128
 
129
-		if ( $wp_query->posts !== null ) {
129
+		if ($wp_query->posts !== null) {
130 130
 			return array_map(
131
-				function ( $post ) {
131
+				function($post) {
132 132
 					return $post->ID;
133 133
 				},
134 134
 				$wp_query->posts
135 135
 			);
136 136
 		}
137 137
 
138
-		if ( $id === null ) {
138
+		if ($id === null) {
139 139
 			return null;
140 140
 		}
141 141
 
142
-		$term = get_term( $id );
142
+		$term = get_term($id);
143 143
 
144
-		return get_objects_in_term( $id, $term->taxonomy );
144
+		return get_objects_in_term($id, $term->taxonomy);
145 145
 	}
146 146
 
147 147
 	/**
@@ -153,28 +153,28 @@  discard block
 block discarded – undo
153 153
 		$query_object = get_queried_object();
154 154
 
155 155
 		// Check if it is a term page.
156
-		if ( ! $query_object instanceof WP_Term ) {
156
+		if ( ! $query_object instanceof WP_Term) {
157 157
 			return;
158 158
 		}
159 159
 
160 160
 		// Bail out if `wl_jsonld_enabled` isn't enabled.
161
-		if ( ! apply_filters( 'wl_jsonld_enabled', true ) ) {
161
+		if ( ! apply_filters('wl_jsonld_enabled', true)) {
162 162
 			return;
163 163
 		}
164 164
 
165 165
 		$term_id = $query_object->term_id;
166 166
 
167
-		$jsonld = $this->get( $term_id, Jsonld_Context_Enum::PAGE );
167
+		$jsonld = $this->get($term_id, Jsonld_Context_Enum::PAGE);
168 168
 
169 169
 		// Bail out if the JSON-LD is empty.
170
-		if ( empty( $jsonld ) ) {
170
+		if (empty($jsonld)) {
171 171
 			return;
172 172
 		}
173 173
 
174
-		$jsonld_string = wp_json_encode( $jsonld );
174
+		$jsonld_string = wp_json_encode($jsonld);
175 175
 
176
-		$jsonld_term_html_output = '<script type="application/ld+json" id="wl-jsonld-term">' . $jsonld_string . '</script>';
177
-		$jsonld_term_html_output = apply_filters( 'wl_jsonld_term_html_output', $jsonld_term_html_output, $term_id );
176
+		$jsonld_term_html_output = '<script type="application/ld+json" id="wl-jsonld-term">'.$jsonld_string.'</script>';
177
+		$jsonld_term_html_output = apply_filters('wl_jsonld_term_html_output', $jsonld_term_html_output, $term_id);
178 178
 
179 179
 		echo $jsonld_term_html_output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- It's an application/ld+json output.
180 180
 
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
 	 *
190 190
 	 * @return array
191 191
 	 */
192
-	public function get( $id, $context, $is_recursive_call = false ) {
192
+	public function get($id, $context, $is_recursive_call = false) {
193 193
 		/**
194 194
 		 * Support for carousel rich snippet, get jsonld data present
195 195
 		 * for all the posts shown in the term page, and add the jsonld data
@@ -201,17 +201,17 @@  discard block
 block discarded – undo
201 201
 		 */
202 202
 		$jsonld_array = array();
203 203
 
204
-		if ( Jsonld_Context_Enum::PAGE === $context ) {
205
-			$carousel_data = $this->get_carousel_jsonld( $id );
206
-			if ( $carousel_data ) {
204
+		if (Jsonld_Context_Enum::PAGE === $context) {
205
+			$carousel_data = $this->get_carousel_jsonld($id);
206
+			if ($carousel_data) {
207 207
 				$jsonld_array[] = $carousel_data;
208 208
 			}
209 209
 		}
210 210
 
211
-		$entities_jsonld_array = $this->get_entity_jsonld( $id, $context );
211
+		$entities_jsonld_array = $this->get_entity_jsonld($id, $context);
212 212
 
213 213
 		$result = array(
214
-			'jsonld'     => array_merge( $jsonld_array, $entities_jsonld_array ),
214
+			'jsonld'     => array_merge($jsonld_array, $entities_jsonld_array),
215 215
 			'references' => array(),
216 216
 		);
217 217
 
@@ -222,20 +222,20 @@  discard block
 block discarded – undo
222 222
 		 * @var $jsonld_array array An array containing jsonld for term and entities.
223 223
 		 * @var $context int A context for the JSON-LD generation, valid values in Jsonld_Context_Enum
224 224
 		 */
225
-		$arr = apply_filters( 'wl_term_jsonld_array', $result, $id, $context );
225
+		$arr = apply_filters('wl_term_jsonld_array', $result, $id, $context);
226 226
 
227 227
 		$references = array();
228 228
 
229 229
 		// Don't expand nested references, it will lead to an infinite loop.
230
-		if ( ! $is_recursive_call ) {
230
+		if ( ! $is_recursive_call) {
231 231
 			/**
232 232
 			 * @since 3.32.0
233 233
 			 * Expand the references returned by this filter.
234 234
 			 */
235
-			$references = $this->expand_references( $arr['references'] );
235
+			$references = $this->expand_references($arr['references']);
236 236
 		}
237 237
 
238
-		$jsonld_array = array_merge( $arr['jsonld'], $references );
238
+		$jsonld_array = array_merge($arr['jsonld'], $references);
239 239
 
240 240
 		return $jsonld_array;
241 241
 	}
@@ -247,17 +247,17 @@  discard block
 block discarded – undo
247 247
 	 *
248 248
 	 * @return array|false|int|mixed|string|WP_Error|WP_Term|null
249 249
 	 */
250
-	private function get_term_url( $id ) {
251
-		if ( null === $id ) {
252
-			return isset( $_SERVER['REQUEST_URI'] ) ? filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ) : '';
250
+	private function get_term_url($id) {
251
+		if (null === $id) {
252
+			return isset($_SERVER['REQUEST_URI']) ? filter_var(wp_unslash($_SERVER['REQUEST_URI']), FILTER_SANITIZE_URL) : '';
253 253
 		}
254 254
 
255
-		$maybe_url = get_term_meta( $id, Wordlift_Url_Property_Service::META_KEY, true );
256
-		if ( ! empty( $maybe_url ) ) {
255
+		$maybe_url = get_term_meta($id, Wordlift_Url_Property_Service::META_KEY, true);
256
+		if ( ! empty($maybe_url)) {
257 257
 			return $maybe_url;
258 258
 		}
259 259
 
260
-		return get_term_link( $id );
260
+		return get_term_link($id);
261 261
 	}
262 262
 
263 263
 	/**
@@ -269,30 +269,30 @@  discard block
 block discarded – undo
269 269
 	 * @return array
270 270
 	 */
271 271
 	// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
272
-	private function get_entity_jsonld( $term_id, $context ) {
272
+	private function get_entity_jsonld($term_id, $context) {
273 273
 
274 274
 		// The `_wl_entity_id` are URIs.
275
-		$entity_ids         = get_term_meta( $term_id, '_wl_entity_id' );
275
+		$entity_ids         = get_term_meta($term_id, '_wl_entity_id');
276 276
 		$entity_uri_service = $this->entity_uri_service;
277 277
 
278 278
 		$wordlift_jsonld_service = Wordlift_Jsonld_Service::get_instance();
279 279
 
280 280
 		$local_entity_ids = array_filter(
281 281
 			$entity_ids,
282
-			function ( $uri ) use ( $entity_uri_service ) {
283
-				return $entity_uri_service->is_internal( $uri );
282
+			function($uri) use ($entity_uri_service) {
283
+				return $entity_uri_service->is_internal($uri);
284 284
 			}
285 285
 		);
286 286
 
287 287
 		// Bail out if there are no entities.
288
-		if ( empty( $local_entity_ids ) ) {
288
+		if (empty($local_entity_ids)) {
289 289
 			return array();
290 290
 		}
291 291
 
292
-		$post            = $this->entity_uri_service->get_entity( array_shift( $local_entity_ids ) );
293
-		$entities_jsonld = $wordlift_jsonld_service->get_jsonld( false, $post->ID );
292
+		$post            = $this->entity_uri_service->get_entity(array_shift($local_entity_ids));
293
+		$entities_jsonld = $wordlift_jsonld_service->get_jsonld(false, $post->ID);
294 294
 		// Reset the `url` to the term page.
295
-		$entities_jsonld[0]['url'] = get_term_link( $term_id );
295
+		$entities_jsonld[0]['url'] = get_term_link($term_id);
296 296
 
297 297
 		return $entities_jsonld;
298 298
 	}
@@ -302,24 +302,24 @@  discard block
 block discarded – undo
302 302
 	 *
303 303
 	 * @return array
304 304
 	 */
305
-	private function expand_references( $references ) {
306
-		if ( ! is_array( $references ) ) {
305
+	private function expand_references($references) {
306
+		if ( ! is_array($references)) {
307 307
 			return array();
308 308
 		}
309 309
 		$references_jsonld = array();
310 310
 		// Expand the references.
311
-		foreach ( $references as $reference ) {
312
-			if ( $reference instanceof Term_Reference ) {
311
+		foreach ($references as $reference) {
312
+			if ($reference instanceof Term_Reference) {
313 313
 				// Second level references won't be expanded.
314
-				$references_jsonld[] = current( $this->get( $reference->get_id(), Jsonld_Context_Enum::UNKNOWN, true ) );
315
-			} elseif ( is_numeric( $reference ) ) {
314
+				$references_jsonld[] = current($this->get($reference->get_id(), Jsonld_Context_Enum::UNKNOWN, true));
315
+			} elseif (is_numeric($reference)) {
316 316
 				$ref_2               = array();
317 317
 				$ref_info_2          = array();
318
-				$references_jsonld[] = $this->post_id_to_jsonld_converter->convert( $reference, $ref_2, $ref_info_2, new Relations() );
319
-			} elseif ( $reference instanceof Post_Reference ) {
318
+				$references_jsonld[] = $this->post_id_to_jsonld_converter->convert($reference, $ref_2, $ref_info_2, new Relations());
319
+			} elseif ($reference instanceof Post_Reference) {
320 320
 				$ref_2               = array();
321 321
 				$ref_info_2          = array();
322
-				$references_jsonld[] = $this->post_id_to_jsonld_converter->convert( $reference->get_id(), $ref_2, $ref_info_2, new Relations() );
322
+				$references_jsonld[] = $this->post_id_to_jsonld_converter->convert($reference->get_id(), $ref_2, $ref_info_2, new Relations());
323 323
 			}
324 324
 		}
325 325
 
Please login to merge, or discard this patch.
src/includes/class-wordlift-jsonld-service.php 2 patches
Indentation   +462 added lines, -462 removed lines patch added patch discarded remove patch
@@ -21,469 +21,469 @@
 block discarded – undo
21 21
  */
22 22
 class Wordlift_Jsonld_Service {
23 23
 
24
-	/**
25
-	 * Creative work types.
26
-	 *
27
-	 * @var string[]
28
-	 */
29
-	private static $creative_work_types = array(
30
-		'AmpStory',
31
-		'ArchiveComponent',
32
-		'Article',
33
-		'Atlas',
34
-		'Blog',
35
-		'Book',
36
-		'Chapter',
37
-		'Claim',
38
-		'Clip',
39
-		'Code',
40
-		'Collection',
41
-		'ComicStory',
42
-		'Comment',
43
-		'Conversation',
44
-		'Course',
45
-		'CreativeWork',
46
-		'CreativeWorkSeason',
47
-		'CreativeWorkSeries',
48
-		'DataCatalog',
49
-		'Dataset',
50
-		'DefinedTermSet',
51
-		'Diet',
52
-		'DigitalDocument',
53
-		'Drawing',
54
-		'EducationalOccupationalCredential',
55
-		'Episode',
56
-		'ExercisePlan',
57
-		'Game',
58
-		'Guide',
59
-		'HowTo',
60
-		'HowToDirection',
61
-		'HowToSection',
62
-		'HowToStep',
63
-		'HowToTip',
64
-		'HyperToc',
65
-		'HyperTocEntry',
66
-		'LearningResource',
67
-		'Legislation',
68
-		'Manuscript',
69
-		'Map',
70
-		'MathSolver',
71
-		'MediaObject',
72
-		'Menu',
73
-		'MenuSection',
74
-		'Message',
75
-		'Movie',
76
-		'MusicComposition',
77
-		'MusicPlaylist',
78
-		'MusicRecording',
79
-		'Painting',
80
-		'Photograph',
81
-		'Play',
82
-		'Poster',
83
-		'PublicationIssue',
84
-		'PublicationVolume',
85
-		'Quotation',
86
-		'Review',
87
-		'Sculpture',
88
-		'Season',
89
-		'SheetMusic',
90
-		'ShortStory',
91
-		'SoftwareApplication',
92
-		'SoftwareSourceCode',
93
-		'SpecialAnnouncement',
94
-		'Thesis',
95
-		'TvSeason',
96
-		'TvSeries',
97
-		'VisualArtwork',
98
-		'WebContent',
99
-		'WebPage',
100
-		'WebPageElement',
101
-		'WebSite',
102
-		'AdvertiserContentArticle',
103
-		'NewsArticle',
104
-		'Report',
105
-		'SatiricalArticle',
106
-		'ScholarlyArticle',
107
-		'SocialMediaPosting',
108
-		'TechArticle',
109
-		'AnalysisNewsArticle',
110
-		'AskPublicNewsArticle',
111
-		'BackgroundNewsArticle',
112
-		'OpinionNewsArticle',
113
-		'ReportageNewsArticle',
114
-		'ReviewNewsArticle',
115
-		'MedicalScholarlyArticle',
116
-		'BlogPosting',
117
-		'DiscussionForumPosting',
118
-		'LiveBlogPosting',
119
-		'ApiReference',
120
-		'Audiobook',
121
-		'MovieClip',
122
-		'RadioClip',
123
-		'TvClip',
124
-		'VideoGameClip',
125
-		'ProductCollection',
126
-		'ComicCoverArt',
127
-		'Answer',
128
-		'CorrectionComment',
129
-		'Question',
130
-		'PodcastSeason',
131
-		'RadioSeason',
132
-		'TvSeason',
133
-		'BookSeries',
134
-		'MovieSeries',
135
-		'Periodical',
136
-		'PodcastSeries',
137
-		'RadioSeries',
138
-		'TvSeries',
139
-		'VideoGameSeries',
140
-		'ComicSeries',
141
-		'Newspaper',
142
-		'DataFeed',
143
-		'CompleteDataFeed',
144
-		'CategoryCodeSet',
145
-		'NoteDigitalDocument',
146
-		'PresentationDigitalDocument',
147
-		'SpreadsheetDigitalDocument',
148
-		'TextDigitalDocument',
149
-		'PodcastEpisode',
150
-		'RadioEpisode',
151
-		'TvEpisode',
152
-		'VideoGame',
153
-		'Recipe',
154
-		'Course',
155
-		'Quiz',
156
-		'LegislationObject',
157
-		'AudioObject',
158
-		'DModel',
159
-		'DataDownload',
160
-		'ImageObject',
161
-		'LegislationObject',
162
-		'MusicVideoObject',
163
-		'VideoObject',
164
-		'Audiobook',
165
-		'Barcode',
166
-		'EmailMessage',
167
-		'MusicAlbum',
168
-		'MusicRelease',
169
-		'ComicIssue',
170
-		'ClaimReview',
171
-		'CriticReview',
172
-		'EmployerReview',
173
-		'MediaReview',
174
-		'Recommendation',
175
-		'UserReview',
176
-		'ReviewNewsArticle',
177
-		'MobileApplication',
178
-		'VideoGame',
179
-		'WebApplication',
180
-		'CoverArt',
181
-		'ComicCoverArt',
182
-		'HealthTopicContent',
183
-		'AboutPage',
184
-		'CheckoutPage',
185
-		'CollectionPage',
186
-		'ContactPage',
187
-		'FaqPage',
188
-		'ItemPage',
189
-		'MedicalWebPage',
190
-		'ProfilePage',
191
-		'QaPage',
192
-		'RealEstateListing',
193
-		'SearchResultsPage',
194
-		'MediaGallery',
195
-		'ImageGallery',
196
-		'VideoGallery',
197
-		'SiteNavigationElement',
198
-		'Table',
199
-		'WpAdBlock',
200
-		'WpFooter',
201
-		'WpHeader',
202
-		'WpSideBar',
203
-	);
204
-
205
-	/**
206
-	 * The singleton instance for the JSON-LD service.
207
-	 *
208
-	 * @since 3.15.1
209
-	 *
210
-	 * @var \Wordlift_Jsonld_Service $instance The singleton instance for the JSON-LD service.
211
-	 */
212
-	private static $instance;
213
-
214
-	/**
215
-	 * A {@link Wordlift_Entity_Service} instance.
216
-	 *
217
-	 * @since  3.8.0
218
-	 * @access private
219
-	 * @var Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance.
220
-	 */
221
-	private $entity_service;
222
-
223
-	/**
224
-	 * A {@link Wordlift_Term_JsonLd_Adapter} instance.
225
-	 *
226
-	 * @since  3.32.0
227
-	 * @access private
228
-	 * @var Wordlift_Term_JsonLd_Adapter $entity_service A {@link Wordlift_Term_JsonLd_Adapter} instance.
229
-	 */
230
-	private $term_jsonld_adapter;
231
-
232
-	/**
233
-	 * A {@link Wordlift_Post_Converter} instance.
234
-	 *
235
-	 * @since  3.8.0
236
-	 * @access private
237
-	 * @var \Wordlift_Post_Converter A {@link Wordlift_Post_Converter} instance.
238
-	 */
239
-	private $converter;
240
-
241
-	/**
242
-	 * A {@link Wordlift_Website_Jsonld_Converter} instance.
243
-	 *
244
-	 * @since  3.14.0
245
-	 * @access private
246
-	 * @var \Wordlift_Website_Jsonld_Converter A {@link Wordlift_Website_Jsonld_Converter} instance.
247
-	 */
248
-	private $website_converter;
249
-
250
-	/**
251
-	 * Create a JSON-LD service.
252
-	 *
253
-	 * @param \Wordlift_Entity_Service           $entity_service A {@link Wordlift_Entity_Service} instance.
254
-	 * @param \Wordlift_Post_Converter           $converter A {@link Wordlift_Uri_To_Jsonld_Converter} instance.
255
-	 * @param \Wordlift_Website_Jsonld_Converter $website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
256
-	 * @param \Wordlift_Term_JsonLd_Adapter      $term_jsonld_adapter
257
-	 *
258
-	 * @since 3.8.0
259
-	 */
260
-	public function __construct( $entity_service, $converter, $website_converter, $term_jsonld_adapter ) {
261
-		$this->entity_service      = $entity_service;
262
-		$this->converter           = $converter;
263
-		$this->website_converter   = $website_converter;
264
-		$this->term_jsonld_adapter = $term_jsonld_adapter;
265
-		self::$instance            = $this;
266
-	}
267
-
268
-	/**
269
-	 * Get the singleton instance for the JSON-LD service.
270
-	 *
271
-	 * @return \Wordlift_Jsonld_Service The singleton instance for the JSON-LD service.
272
-	 * @since 3.15.1
273
-	 */
274
-	public static function get_instance() {
275
-
276
-		return self::$instance;
277
-	}
278
-
279
-	/**
280
-	 * Process calls to the AJAX 'wl_jsonld' endpoint.
281
-	 *
282
-	 * @since 3.8.0
283
-	 */
284
-	public function get() {
285
-		// Clear the buffer to be sure someone doesn't mess with our response.
286
-		//
287
-		// See https://github.com/insideout10/wordlift-plugin/issues/406.
288
-		// See https://codex.wordpress.org/AJAX_in_Plugins.
289
-		// phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
290
-		@ob_clean();
291
-
292
-		// Get the parameter from the request.
293
-		$is_homepage = isset( $_REQUEST['homepage'] ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
294
-		$post_id     = isset( $_REQUEST['id'] ) && is_numeric( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
295
-
296
-		// Send the generated JSON-LD.
297
-		$this->send_jsonld( $this->get_jsonld( $is_homepage, $post_id ) );
298
-
299
-	}
300
-
301
-	/**
302
-	 * A close of WP's own `wp_send_json` function which uses `application/ld+json` as content type.
303
-	 *
304
-	 * @param mixed $response Variable (usually an array or object) to encode as JSON,
305
-	 *                           then print and die.
306
-	 *
307
-	 * @since 3.18.5
308
-	 */
309
-	private function send_jsonld( $response ) {
310
-		// phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
311
-		@header( 'Content-Type: application/ld+json; charset=' . get_option( 'blog_charset' ) );
312
-		echo wp_json_encode( $response );
313
-		if ( apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
314
-			wp_die();
315
-		} else {
316
-			die;
317
-		}
318
-	}
319
-
320
-	/**
321
-	 * Get the JSON-LD.
322
-	 *
323
-	 * @param bool     $is_homepage Whether the JSON-LD for the homepage is being requested.
324
-	 * @param int|null $post_id The JSON-LD for the specified {@link WP_Post} id.
325
-	 * @param int      $context A context for the JSON-LD generation, valid values in Jsonld_Context_Enum.
326
-	 *
327
-	 * @return array A JSON-LD structure.
328
-	 * @since 3.15.1
329
-	 */
330
-	public function get_jsonld( $is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN ) {
331
-		// Tell NewRelic to ignore us, otherwise NewRelic customers might receive
332
-		// e-mails with a low apdex score.
333
-		//
334
-		// See https://github.com/insideout10/wordlift-plugin/issues/521
335
-		Wordlift_NewRelic_Adapter::ignore_apdex();
336
-
337
-		// Switch to Website converter if is home page.
338
-		if ( $is_homepage ) {
339
-			/**
340
-			 * Filter: 'wordlift_disable_website_json_ld' - Allow disabling of the json+ld output.
341
-			 *
342
-			 * @since  3.14.0
343
-			 * @api    bool $display_search Whether or not to display json+ld search on the frontend.
344
-			 */
345
-			if ( apply_filters( 'wordlift_disable_website_json_ld', false ) ) {
346
-				return array();
347
-			}
348
-
349
-			// Set a reference to the website_converter.
350
-			$website_converter = $this->website_converter;
351
-
352
-			// Send JSON-LD.
353
-			return $website_converter->create_schema();
354
-		}
355
-
356
-		// If no id has been provided return an empty array.
357
-		if ( ! isset( $post_id ) ) {
358
-			return array();
359
-		}
360
-
361
-		// An array of references which is captured when converting an URI to a
362
-		// json which we gather to further expand our json-ld.
363
-		$references       = array();
364
-		$references_infos = array();
365
-
366
-		// Set a reference to the entity_to_jsonld_converter to use in the closures.
367
-		$entity_to_jsonld_converter = $this->converter;
368
-
369
-		$relations = new Relations();
370
-		$jsonld    = $entity_to_jsonld_converter->convert( $post_id, $references, $references_infos, $relations );
371
-
372
-		$graph = new Graph( $jsonld, $entity_to_jsonld_converter, Wordlift_Term_JsonLd_Adapter::get_instance() );
373
-
374
-		$schema_type = is_array( $jsonld['@type'] ) ? $jsonld['@type'] : array( $jsonld['@type'] );
375
-
376
-		// Add `about`/`mentions` only for `CreativeWork` and descendants.
377
-		if ( array_intersect( $schema_type, self::$creative_work_types ) ) {
378
-
379
-			foreach ( $relations->toArray() as $relation ) {
380
-
381
-				// Setting about or mentions by label match is currently supported only for posts
382
-				if ( Object_Type_Enum::POST !== $relation->get_object()->get_type() ) {
383
-					continue;
384
-				}
385
-
386
-				// Add the `mentions`/`about` prop.
387
-				$this->add_mention_or_about( $jsonld, $post_id, $relation );
388
-			}
389
-			$graph->set_main_jsonld( $jsonld );
390
-		}
391
-
392
-		$jsonld_arr = $graph->add_references( $references )
393
-			->add_relations( $relations )
394
-			->add_required_reference_infos( $references_infos )
395
-			->render( $context );
396
-
397
-		/**
398
-		 * Filter name: wl_after_get_jsonld
399
-		 *
400
-		 * @return array
401
-		 * @since 3.27.2
402
-		 * @var $jsonld_arr array The final jsonld before outputting to page.
403
-		 * @var $post_id int The post id for which the jsonld is generated.
404
-		 */
405
-		$jsonld_arr = apply_filters( 'wl_after_get_jsonld', $jsonld_arr, $post_id, $context );
406
-
407
-		return $jsonld_arr;
408
-	}
409
-
410
-	/**
411
-	 * Write the JSON-LD in the head.
412
-	 *
413
-	 * This function isn't actually used, but may be used to quickly enable writing the JSON-LD synchronously to the
414
-	 * document head, using the `wp_head` hook.
415
-	 *
416
-	 * @since 3.18.5
417
-	 */
418
-	public function wp_head() {
419
-
420
-		// Determine whether this is the home page or whether we're displaying a single post.
421
-		$is_homepage = is_home() || is_front_page();
422
-		$post_id     = is_singular() ? get_the_ID() : null;
423
-
424
-		$jsonld = wp_json_encode( $this->get_jsonld( $is_homepage, $post_id, Jsonld_Context_Enum::PAGE ) );
425
-		?>
24
+    /**
25
+     * Creative work types.
26
+     *
27
+     * @var string[]
28
+     */
29
+    private static $creative_work_types = array(
30
+        'AmpStory',
31
+        'ArchiveComponent',
32
+        'Article',
33
+        'Atlas',
34
+        'Blog',
35
+        'Book',
36
+        'Chapter',
37
+        'Claim',
38
+        'Clip',
39
+        'Code',
40
+        'Collection',
41
+        'ComicStory',
42
+        'Comment',
43
+        'Conversation',
44
+        'Course',
45
+        'CreativeWork',
46
+        'CreativeWorkSeason',
47
+        'CreativeWorkSeries',
48
+        'DataCatalog',
49
+        'Dataset',
50
+        'DefinedTermSet',
51
+        'Diet',
52
+        'DigitalDocument',
53
+        'Drawing',
54
+        'EducationalOccupationalCredential',
55
+        'Episode',
56
+        'ExercisePlan',
57
+        'Game',
58
+        'Guide',
59
+        'HowTo',
60
+        'HowToDirection',
61
+        'HowToSection',
62
+        'HowToStep',
63
+        'HowToTip',
64
+        'HyperToc',
65
+        'HyperTocEntry',
66
+        'LearningResource',
67
+        'Legislation',
68
+        'Manuscript',
69
+        'Map',
70
+        'MathSolver',
71
+        'MediaObject',
72
+        'Menu',
73
+        'MenuSection',
74
+        'Message',
75
+        'Movie',
76
+        'MusicComposition',
77
+        'MusicPlaylist',
78
+        'MusicRecording',
79
+        'Painting',
80
+        'Photograph',
81
+        'Play',
82
+        'Poster',
83
+        'PublicationIssue',
84
+        'PublicationVolume',
85
+        'Quotation',
86
+        'Review',
87
+        'Sculpture',
88
+        'Season',
89
+        'SheetMusic',
90
+        'ShortStory',
91
+        'SoftwareApplication',
92
+        'SoftwareSourceCode',
93
+        'SpecialAnnouncement',
94
+        'Thesis',
95
+        'TvSeason',
96
+        'TvSeries',
97
+        'VisualArtwork',
98
+        'WebContent',
99
+        'WebPage',
100
+        'WebPageElement',
101
+        'WebSite',
102
+        'AdvertiserContentArticle',
103
+        'NewsArticle',
104
+        'Report',
105
+        'SatiricalArticle',
106
+        'ScholarlyArticle',
107
+        'SocialMediaPosting',
108
+        'TechArticle',
109
+        'AnalysisNewsArticle',
110
+        'AskPublicNewsArticle',
111
+        'BackgroundNewsArticle',
112
+        'OpinionNewsArticle',
113
+        'ReportageNewsArticle',
114
+        'ReviewNewsArticle',
115
+        'MedicalScholarlyArticle',
116
+        'BlogPosting',
117
+        'DiscussionForumPosting',
118
+        'LiveBlogPosting',
119
+        'ApiReference',
120
+        'Audiobook',
121
+        'MovieClip',
122
+        'RadioClip',
123
+        'TvClip',
124
+        'VideoGameClip',
125
+        'ProductCollection',
126
+        'ComicCoverArt',
127
+        'Answer',
128
+        'CorrectionComment',
129
+        'Question',
130
+        'PodcastSeason',
131
+        'RadioSeason',
132
+        'TvSeason',
133
+        'BookSeries',
134
+        'MovieSeries',
135
+        'Periodical',
136
+        'PodcastSeries',
137
+        'RadioSeries',
138
+        'TvSeries',
139
+        'VideoGameSeries',
140
+        'ComicSeries',
141
+        'Newspaper',
142
+        'DataFeed',
143
+        'CompleteDataFeed',
144
+        'CategoryCodeSet',
145
+        'NoteDigitalDocument',
146
+        'PresentationDigitalDocument',
147
+        'SpreadsheetDigitalDocument',
148
+        'TextDigitalDocument',
149
+        'PodcastEpisode',
150
+        'RadioEpisode',
151
+        'TvEpisode',
152
+        'VideoGame',
153
+        'Recipe',
154
+        'Course',
155
+        'Quiz',
156
+        'LegislationObject',
157
+        'AudioObject',
158
+        'DModel',
159
+        'DataDownload',
160
+        'ImageObject',
161
+        'LegislationObject',
162
+        'MusicVideoObject',
163
+        'VideoObject',
164
+        'Audiobook',
165
+        'Barcode',
166
+        'EmailMessage',
167
+        'MusicAlbum',
168
+        'MusicRelease',
169
+        'ComicIssue',
170
+        'ClaimReview',
171
+        'CriticReview',
172
+        'EmployerReview',
173
+        'MediaReview',
174
+        'Recommendation',
175
+        'UserReview',
176
+        'ReviewNewsArticle',
177
+        'MobileApplication',
178
+        'VideoGame',
179
+        'WebApplication',
180
+        'CoverArt',
181
+        'ComicCoverArt',
182
+        'HealthTopicContent',
183
+        'AboutPage',
184
+        'CheckoutPage',
185
+        'CollectionPage',
186
+        'ContactPage',
187
+        'FaqPage',
188
+        'ItemPage',
189
+        'MedicalWebPage',
190
+        'ProfilePage',
191
+        'QaPage',
192
+        'RealEstateListing',
193
+        'SearchResultsPage',
194
+        'MediaGallery',
195
+        'ImageGallery',
196
+        'VideoGallery',
197
+        'SiteNavigationElement',
198
+        'Table',
199
+        'WpAdBlock',
200
+        'WpFooter',
201
+        'WpHeader',
202
+        'WpSideBar',
203
+    );
204
+
205
+    /**
206
+     * The singleton instance for the JSON-LD service.
207
+     *
208
+     * @since 3.15.1
209
+     *
210
+     * @var \Wordlift_Jsonld_Service $instance The singleton instance for the JSON-LD service.
211
+     */
212
+    private static $instance;
213
+
214
+    /**
215
+     * A {@link Wordlift_Entity_Service} instance.
216
+     *
217
+     * @since  3.8.0
218
+     * @access private
219
+     * @var Wordlift_Entity_Service $entity_service A {@link Wordlift_Entity_Service} instance.
220
+     */
221
+    private $entity_service;
222
+
223
+    /**
224
+     * A {@link Wordlift_Term_JsonLd_Adapter} instance.
225
+     *
226
+     * @since  3.32.0
227
+     * @access private
228
+     * @var Wordlift_Term_JsonLd_Adapter $entity_service A {@link Wordlift_Term_JsonLd_Adapter} instance.
229
+     */
230
+    private $term_jsonld_adapter;
231
+
232
+    /**
233
+     * A {@link Wordlift_Post_Converter} instance.
234
+     *
235
+     * @since  3.8.0
236
+     * @access private
237
+     * @var \Wordlift_Post_Converter A {@link Wordlift_Post_Converter} instance.
238
+     */
239
+    private $converter;
240
+
241
+    /**
242
+     * A {@link Wordlift_Website_Jsonld_Converter} instance.
243
+     *
244
+     * @since  3.14.0
245
+     * @access private
246
+     * @var \Wordlift_Website_Jsonld_Converter A {@link Wordlift_Website_Jsonld_Converter} instance.
247
+     */
248
+    private $website_converter;
249
+
250
+    /**
251
+     * Create a JSON-LD service.
252
+     *
253
+     * @param \Wordlift_Entity_Service           $entity_service A {@link Wordlift_Entity_Service} instance.
254
+     * @param \Wordlift_Post_Converter           $converter A {@link Wordlift_Uri_To_Jsonld_Converter} instance.
255
+     * @param \Wordlift_Website_Jsonld_Converter $website_converter A {@link Wordlift_Website_Jsonld_Converter} instance.
256
+     * @param \Wordlift_Term_JsonLd_Adapter      $term_jsonld_adapter
257
+     *
258
+     * @since 3.8.0
259
+     */
260
+    public function __construct( $entity_service, $converter, $website_converter, $term_jsonld_adapter ) {
261
+        $this->entity_service      = $entity_service;
262
+        $this->converter           = $converter;
263
+        $this->website_converter   = $website_converter;
264
+        $this->term_jsonld_adapter = $term_jsonld_adapter;
265
+        self::$instance            = $this;
266
+    }
267
+
268
+    /**
269
+     * Get the singleton instance for the JSON-LD service.
270
+     *
271
+     * @return \Wordlift_Jsonld_Service The singleton instance for the JSON-LD service.
272
+     * @since 3.15.1
273
+     */
274
+    public static function get_instance() {
275
+
276
+        return self::$instance;
277
+    }
278
+
279
+    /**
280
+     * Process calls to the AJAX 'wl_jsonld' endpoint.
281
+     *
282
+     * @since 3.8.0
283
+     */
284
+    public function get() {
285
+        // Clear the buffer to be sure someone doesn't mess with our response.
286
+        //
287
+        // See https://github.com/insideout10/wordlift-plugin/issues/406.
288
+        // See https://codex.wordpress.org/AJAX_in_Plugins.
289
+        // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
290
+        @ob_clean();
291
+
292
+        // Get the parameter from the request.
293
+        $is_homepage = isset( $_REQUEST['homepage'] ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
294
+        $post_id     = isset( $_REQUEST['id'] ) && is_numeric( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
295
+
296
+        // Send the generated JSON-LD.
297
+        $this->send_jsonld( $this->get_jsonld( $is_homepage, $post_id ) );
298
+
299
+    }
300
+
301
+    /**
302
+     * A close of WP's own `wp_send_json` function which uses `application/ld+json` as content type.
303
+     *
304
+     * @param mixed $response Variable (usually an array or object) to encode as JSON,
305
+     *                           then print and die.
306
+     *
307
+     * @since 3.18.5
308
+     */
309
+    private function send_jsonld( $response ) {
310
+        // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
311
+        @header( 'Content-Type: application/ld+json; charset=' . get_option( 'blog_charset' ) );
312
+        echo wp_json_encode( $response );
313
+        if ( apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
314
+            wp_die();
315
+        } else {
316
+            die;
317
+        }
318
+    }
319
+
320
+    /**
321
+     * Get the JSON-LD.
322
+     *
323
+     * @param bool     $is_homepage Whether the JSON-LD for the homepage is being requested.
324
+     * @param int|null $post_id The JSON-LD for the specified {@link WP_Post} id.
325
+     * @param int      $context A context for the JSON-LD generation, valid values in Jsonld_Context_Enum.
326
+     *
327
+     * @return array A JSON-LD structure.
328
+     * @since 3.15.1
329
+     */
330
+    public function get_jsonld( $is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN ) {
331
+        // Tell NewRelic to ignore us, otherwise NewRelic customers might receive
332
+        // e-mails with a low apdex score.
333
+        //
334
+        // See https://github.com/insideout10/wordlift-plugin/issues/521
335
+        Wordlift_NewRelic_Adapter::ignore_apdex();
336
+
337
+        // Switch to Website converter if is home page.
338
+        if ( $is_homepage ) {
339
+            /**
340
+             * Filter: 'wordlift_disable_website_json_ld' - Allow disabling of the json+ld output.
341
+             *
342
+             * @since  3.14.0
343
+             * @api    bool $display_search Whether or not to display json+ld search on the frontend.
344
+             */
345
+            if ( apply_filters( 'wordlift_disable_website_json_ld', false ) ) {
346
+                return array();
347
+            }
348
+
349
+            // Set a reference to the website_converter.
350
+            $website_converter = $this->website_converter;
351
+
352
+            // Send JSON-LD.
353
+            return $website_converter->create_schema();
354
+        }
355
+
356
+        // If no id has been provided return an empty array.
357
+        if ( ! isset( $post_id ) ) {
358
+            return array();
359
+        }
360
+
361
+        // An array of references which is captured when converting an URI to a
362
+        // json which we gather to further expand our json-ld.
363
+        $references       = array();
364
+        $references_infos = array();
365
+
366
+        // Set a reference to the entity_to_jsonld_converter to use in the closures.
367
+        $entity_to_jsonld_converter = $this->converter;
368
+
369
+        $relations = new Relations();
370
+        $jsonld    = $entity_to_jsonld_converter->convert( $post_id, $references, $references_infos, $relations );
371
+
372
+        $graph = new Graph( $jsonld, $entity_to_jsonld_converter, Wordlift_Term_JsonLd_Adapter::get_instance() );
373
+
374
+        $schema_type = is_array( $jsonld['@type'] ) ? $jsonld['@type'] : array( $jsonld['@type'] );
375
+
376
+        // Add `about`/`mentions` only for `CreativeWork` and descendants.
377
+        if ( array_intersect( $schema_type, self::$creative_work_types ) ) {
378
+
379
+            foreach ( $relations->toArray() as $relation ) {
380
+
381
+                // Setting about or mentions by label match is currently supported only for posts
382
+                if ( Object_Type_Enum::POST !== $relation->get_object()->get_type() ) {
383
+                    continue;
384
+                }
385
+
386
+                // Add the `mentions`/`about` prop.
387
+                $this->add_mention_or_about( $jsonld, $post_id, $relation );
388
+            }
389
+            $graph->set_main_jsonld( $jsonld );
390
+        }
391
+
392
+        $jsonld_arr = $graph->add_references( $references )
393
+            ->add_relations( $relations )
394
+            ->add_required_reference_infos( $references_infos )
395
+            ->render( $context );
396
+
397
+        /**
398
+         * Filter name: wl_after_get_jsonld
399
+         *
400
+         * @return array
401
+         * @since 3.27.2
402
+         * @var $jsonld_arr array The final jsonld before outputting to page.
403
+         * @var $post_id int The post id for which the jsonld is generated.
404
+         */
405
+        $jsonld_arr = apply_filters( 'wl_after_get_jsonld', $jsonld_arr, $post_id, $context );
406
+
407
+        return $jsonld_arr;
408
+    }
409
+
410
+    /**
411
+     * Write the JSON-LD in the head.
412
+     *
413
+     * This function isn't actually used, but may be used to quickly enable writing the JSON-LD synchronously to the
414
+     * document head, using the `wp_head` hook.
415
+     *
416
+     * @since 3.18.5
417
+     */
418
+    public function wp_head() {
419
+
420
+        // Determine whether this is the home page or whether we're displaying a single post.
421
+        $is_homepage = is_home() || is_front_page();
422
+        $post_id     = is_singular() ? get_the_ID() : null;
423
+
424
+        $jsonld = wp_json_encode( $this->get_jsonld( $is_homepage, $post_id, Jsonld_Context_Enum::PAGE ) );
425
+        ?>
426 426
 		<script type="application/ld+json"><?php echo esc_html( $jsonld ); ?></script>
427 427
 		<?php
428
-	}
429
-
430
-	/**
431
-	 * @param array    $jsonld
432
-	 * @param Relation $relation
433
-	 *
434
-	 * @return void
435
-	 */
436
-	private function add_mention_or_about( &$jsonld, $post_id, $relation ) {
437
-		$content_service = Wordpress_Content_Service::get_instance();
438
-		$entity_service  = Wordlift_Entity_Service::get_instance();
439
-
440
-		$object     = $relation->get_object();
441
-		$entity_uri = $content_service->get_entity_id( $object );
442
-		$labels     = $entity_service->get_labels( $object->get_id(), $object->get_type() );
443
-
444
-		$escaped_labels = array_map(
445
-			function ( $value ) {
446
-				return preg_quote( $value, '/' );
447
-			},
448
-			$labels
449
-		);
450
-
451
-		$matches = false;
452
-
453
-		// When the title is empty, then we shouldn't yield a match to about section.
454
-		if ( array_filter( $escaped_labels ) ) {
455
-			// Check if the labels match any part of the title.
456
-			$post    = get_post( $post_id );
457
-			$matches = $this->check_title_match( $escaped_labels, $post->post_title );
458
-		}
459
-
460
-		if ( $entity_uri ) {
461
-			// If the title matches, assign the entity to the about, otherwise to the mentions.
462
-			$property_name              = $matches ? 'about' : 'mentions';
463
-			$jsonld[ $property_name ]   = isset( $jsonld[ $property_name ] ) ? (array) $jsonld[ $property_name ] : array();
464
-			$jsonld[ $property_name ][] = array( '@id' => $entity_uri );
465
-		}
466
-
467
-	}
468
-
469
-	/**
470
-	 * Check if the labels match any part of the title.
471
-	 *
472
-	 * @param $labels array The labels to check.
473
-	 * @param $title string The title to check.
474
-	 *
475
-	 * @return boolean
476
-	 */
477
-	public function check_title_match( $labels, $title ) {
478
-
479
-		// If the title is empty, then we shouldn't yield a match to about section.
480
-		if ( empty( $title ) ) {
481
-			return false;
482
-		}
483
-
484
-		// Check if the labels match any part of the title.
485
-		return 1 === preg_match( '/\b(' . implode( '|', $labels ) . ')\b/iu', $title );
486
-
487
-	}
428
+    }
429
+
430
+    /**
431
+     * @param array    $jsonld
432
+     * @param Relation $relation
433
+     *
434
+     * @return void
435
+     */
436
+    private function add_mention_or_about( &$jsonld, $post_id, $relation ) {
437
+        $content_service = Wordpress_Content_Service::get_instance();
438
+        $entity_service  = Wordlift_Entity_Service::get_instance();
439
+
440
+        $object     = $relation->get_object();
441
+        $entity_uri = $content_service->get_entity_id( $object );
442
+        $labels     = $entity_service->get_labels( $object->get_id(), $object->get_type() );
443
+
444
+        $escaped_labels = array_map(
445
+            function ( $value ) {
446
+                return preg_quote( $value, '/' );
447
+            },
448
+            $labels
449
+        );
450
+
451
+        $matches = false;
452
+
453
+        // When the title is empty, then we shouldn't yield a match to about section.
454
+        if ( array_filter( $escaped_labels ) ) {
455
+            // Check if the labels match any part of the title.
456
+            $post    = get_post( $post_id );
457
+            $matches = $this->check_title_match( $escaped_labels, $post->post_title );
458
+        }
459
+
460
+        if ( $entity_uri ) {
461
+            // If the title matches, assign the entity to the about, otherwise to the mentions.
462
+            $property_name              = $matches ? 'about' : 'mentions';
463
+            $jsonld[ $property_name ]   = isset( $jsonld[ $property_name ] ) ? (array) $jsonld[ $property_name ] : array();
464
+            $jsonld[ $property_name ][] = array( '@id' => $entity_uri );
465
+        }
466
+
467
+    }
468
+
469
+    /**
470
+     * Check if the labels match any part of the title.
471
+     *
472
+     * @param $labels array The labels to check.
473
+     * @param $title string The title to check.
474
+     *
475
+     * @return boolean
476
+     */
477
+    public function check_title_match( $labels, $title ) {
478
+
479
+        // If the title is empty, then we shouldn't yield a match to about section.
480
+        if ( empty( $title ) ) {
481
+            return false;
482
+        }
483
+
484
+        // Check if the labels match any part of the title.
485
+        return 1 === preg_match( '/\b(' . implode( '|', $labels ) . ')\b/iu', $title );
486
+
487
+    }
488 488
 
489 489
 }
Please login to merge, or discard this patch.
Spacing   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
 	 *
258 258
 	 * @since 3.8.0
259 259
 	 */
260
-	public function __construct( $entity_service, $converter, $website_converter, $term_jsonld_adapter ) {
260
+	public function __construct($entity_service, $converter, $website_converter, $term_jsonld_adapter) {
261 261
 		$this->entity_service      = $entity_service;
262 262
 		$this->converter           = $converter;
263 263
 		$this->website_converter   = $website_converter;
@@ -290,11 +290,11 @@  discard block
 block discarded – undo
290 290
 		@ob_clean();
291 291
 
292 292
 		// Get the parameter from the request.
293
-		$is_homepage = isset( $_REQUEST['homepage'] ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
294
-		$post_id     = isset( $_REQUEST['id'] ) && is_numeric( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
293
+		$is_homepage = isset($_REQUEST['homepage']); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
294
+		$post_id     = isset($_REQUEST['id']) && is_numeric($_REQUEST['id']) ? intval($_REQUEST['id']) : null; //phpcs:ignore WordPress.Security.NonceVerification.Recommended
295 295
 
296 296
 		// Send the generated JSON-LD.
297
-		$this->send_jsonld( $this->get_jsonld( $is_homepage, $post_id ) );
297
+		$this->send_jsonld($this->get_jsonld($is_homepage, $post_id));
298 298
 
299 299
 	}
300 300
 
@@ -306,11 +306,11 @@  discard block
 block discarded – undo
306 306
 	 *
307 307
 	 * @since 3.18.5
308 308
 	 */
309
-	private function send_jsonld( $response ) {
309
+	private function send_jsonld($response) {
310 310
 		// phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
311
-		@header( 'Content-Type: application/ld+json; charset=' . get_option( 'blog_charset' ) );
312
-		echo wp_json_encode( $response );
313
-		if ( apply_filters( 'wp_doing_ajax', defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
311
+		@header('Content-Type: application/ld+json; charset='.get_option('blog_charset'));
312
+		echo wp_json_encode($response);
313
+		if (apply_filters('wp_doing_ajax', defined('DOING_AJAX') && DOING_AJAX)) {
314 314
 			wp_die();
315 315
 		} else {
316 316
 			die;
@@ -327,7 +327,7 @@  discard block
 block discarded – undo
327 327
 	 * @return array A JSON-LD structure.
328 328
 	 * @since 3.15.1
329 329
 	 */
330
-	public function get_jsonld( $is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN ) {
330
+	public function get_jsonld($is_homepage = false, $post_id = null, $context = Jsonld_Context_Enum::UNKNOWN) {
331 331
 		// Tell NewRelic to ignore us, otherwise NewRelic customers might receive
332 332
 		// e-mails with a low apdex score.
333 333
 		//
@@ -335,14 +335,14 @@  discard block
 block discarded – undo
335 335
 		Wordlift_NewRelic_Adapter::ignore_apdex();
336 336
 
337 337
 		// Switch to Website converter if is home page.
338
-		if ( $is_homepage ) {
338
+		if ($is_homepage) {
339 339
 			/**
340 340
 			 * Filter: 'wordlift_disable_website_json_ld' - Allow disabling of the json+ld output.
341 341
 			 *
342 342
 			 * @since  3.14.0
343 343
 			 * @api    bool $display_search Whether or not to display json+ld search on the frontend.
344 344
 			 */
345
-			if ( apply_filters( 'wordlift_disable_website_json_ld', false ) ) {
345
+			if (apply_filters('wordlift_disable_website_json_ld', false)) {
346 346
 				return array();
347 347
 			}
348 348
 
@@ -354,7 +354,7 @@  discard block
 block discarded – undo
354 354
 		}
355 355
 
356 356
 		// If no id has been provided return an empty array.
357
-		if ( ! isset( $post_id ) ) {
357
+		if ( ! isset($post_id)) {
358 358
 			return array();
359 359
 		}
360 360
 
@@ -367,32 +367,32 @@  discard block
 block discarded – undo
367 367
 		$entity_to_jsonld_converter = $this->converter;
368 368
 
369 369
 		$relations = new Relations();
370
-		$jsonld    = $entity_to_jsonld_converter->convert( $post_id, $references, $references_infos, $relations );
370
+		$jsonld    = $entity_to_jsonld_converter->convert($post_id, $references, $references_infos, $relations);
371 371
 
372
-		$graph = new Graph( $jsonld, $entity_to_jsonld_converter, Wordlift_Term_JsonLd_Adapter::get_instance() );
372
+		$graph = new Graph($jsonld, $entity_to_jsonld_converter, Wordlift_Term_JsonLd_Adapter::get_instance());
373 373
 
374
-		$schema_type = is_array( $jsonld['@type'] ) ? $jsonld['@type'] : array( $jsonld['@type'] );
374
+		$schema_type = is_array($jsonld['@type']) ? $jsonld['@type'] : array($jsonld['@type']);
375 375
 
376 376
 		// Add `about`/`mentions` only for `CreativeWork` and descendants.
377
-		if ( array_intersect( $schema_type, self::$creative_work_types ) ) {
377
+		if (array_intersect($schema_type, self::$creative_work_types)) {
378 378
 
379
-			foreach ( $relations->toArray() as $relation ) {
379
+			foreach ($relations->toArray() as $relation) {
380 380
 
381 381
 				// Setting about or mentions by label match is currently supported only for posts
382
-				if ( Object_Type_Enum::POST !== $relation->get_object()->get_type() ) {
382
+				if (Object_Type_Enum::POST !== $relation->get_object()->get_type()) {
383 383
 					continue;
384 384
 				}
385 385
 
386 386
 				// Add the `mentions`/`about` prop.
387
-				$this->add_mention_or_about( $jsonld, $post_id, $relation );
387
+				$this->add_mention_or_about($jsonld, $post_id, $relation);
388 388
 			}
389
-			$graph->set_main_jsonld( $jsonld );
389
+			$graph->set_main_jsonld($jsonld);
390 390
 		}
391 391
 
392
-		$jsonld_arr = $graph->add_references( $references )
393
-			->add_relations( $relations )
394
-			->add_required_reference_infos( $references_infos )
395
-			->render( $context );
392
+		$jsonld_arr = $graph->add_references($references)
393
+			->add_relations($relations)
394
+			->add_required_reference_infos($references_infos)
395
+			->render($context);
396 396
 
397 397
 		/**
398 398
 		 * Filter name: wl_after_get_jsonld
@@ -402,7 +402,7 @@  discard block
 block discarded – undo
402 402
 		 * @var $jsonld_arr array The final jsonld before outputting to page.
403 403
 		 * @var $post_id int The post id for which the jsonld is generated.
404 404
 		 */
405
-		$jsonld_arr = apply_filters( 'wl_after_get_jsonld', $jsonld_arr, $post_id, $context );
405
+		$jsonld_arr = apply_filters('wl_after_get_jsonld', $jsonld_arr, $post_id, $context);
406 406
 
407 407
 		return $jsonld_arr;
408 408
 	}
@@ -421,9 +421,9 @@  discard block
 block discarded – undo
421 421
 		$is_homepage = is_home() || is_front_page();
422 422
 		$post_id     = is_singular() ? get_the_ID() : null;
423 423
 
424
-		$jsonld = wp_json_encode( $this->get_jsonld( $is_homepage, $post_id, Jsonld_Context_Enum::PAGE ) );
424
+		$jsonld = wp_json_encode($this->get_jsonld($is_homepage, $post_id, Jsonld_Context_Enum::PAGE));
425 425
 		?>
426
-		<script type="application/ld+json"><?php echo esc_html( $jsonld ); ?></script>
426
+		<script type="application/ld+json"><?php echo esc_html($jsonld); ?></script>
427 427
 		<?php
428 428
 	}
429 429
 
@@ -433,17 +433,17 @@  discard block
 block discarded – undo
433 433
 	 *
434 434
 	 * @return void
435 435
 	 */
436
-	private function add_mention_or_about( &$jsonld, $post_id, $relation ) {
436
+	private function add_mention_or_about(&$jsonld, $post_id, $relation) {
437 437
 		$content_service = Wordpress_Content_Service::get_instance();
438 438
 		$entity_service  = Wordlift_Entity_Service::get_instance();
439 439
 
440 440
 		$object     = $relation->get_object();
441
-		$entity_uri = $content_service->get_entity_id( $object );
442
-		$labels     = $entity_service->get_labels( $object->get_id(), $object->get_type() );
441
+		$entity_uri = $content_service->get_entity_id($object);
442
+		$labels     = $entity_service->get_labels($object->get_id(), $object->get_type());
443 443
 
444 444
 		$escaped_labels = array_map(
445
-			function ( $value ) {
446
-				return preg_quote( $value, '/' );
445
+			function($value) {
446
+				return preg_quote($value, '/');
447 447
 			},
448 448
 			$labels
449 449
 		);
@@ -451,17 +451,17 @@  discard block
 block discarded – undo
451 451
 		$matches = false;
452 452
 
453 453
 		// When the title is empty, then we shouldn't yield a match to about section.
454
-		if ( array_filter( $escaped_labels ) ) {
454
+		if (array_filter($escaped_labels)) {
455 455
 			// Check if the labels match any part of the title.
456
-			$post    = get_post( $post_id );
457
-			$matches = $this->check_title_match( $escaped_labels, $post->post_title );
456
+			$post    = get_post($post_id);
457
+			$matches = $this->check_title_match($escaped_labels, $post->post_title);
458 458
 		}
459 459
 
460
-		if ( $entity_uri ) {
460
+		if ($entity_uri) {
461 461
 			// If the title matches, assign the entity to the about, otherwise to the mentions.
462 462
 			$property_name              = $matches ? 'about' : 'mentions';
463
-			$jsonld[ $property_name ]   = isset( $jsonld[ $property_name ] ) ? (array) $jsonld[ $property_name ] : array();
464
-			$jsonld[ $property_name ][] = array( '@id' => $entity_uri );
463
+			$jsonld[$property_name]   = isset($jsonld[$property_name]) ? (array) $jsonld[$property_name] : array();
464
+			$jsonld[$property_name][] = array('@id' => $entity_uri);
465 465
 		}
466 466
 
467 467
 	}
@@ -474,15 +474,15 @@  discard block
 block discarded – undo
474 474
 	 *
475 475
 	 * @return boolean
476 476
 	 */
477
-	public function check_title_match( $labels, $title ) {
477
+	public function check_title_match($labels, $title) {
478 478
 
479 479
 		// If the title is empty, then we shouldn't yield a match to about section.
480
-		if ( empty( $title ) ) {
480
+		if (empty($title)) {
481 481
 			return false;
482 482
 		}
483 483
 
484 484
 		// Check if the labels match any part of the title.
485
-		return 1 === preg_match( '/\b(' . implode( '|', $labels ) . ')\b/iu', $title );
485
+		return 1 === preg_match('/\b('.implode('|', $labels).')\b/iu', $title);
486 486
 
487 487
 	}
488 488
 
Please login to merge, or discard this patch.
src/classes/vocabulary/jsonld/class-term-jsonld.php 2 patches
Indentation   +140 added lines, -140 removed lines patch added patch discarded remove patch
@@ -18,145 +18,145 @@
 block discarded – undo
18 18
  */
19 19
 class Term_Jsonld {
20 20
 
21
-	/**
22
-	 * The {@link Api_Service} used to communicate with the remote APIs.
23
-	 *
24
-	 * @access private
25
-	 * @var Default_Api_Service
26
-	 */
27
-	private $api_service;
28
-
29
-	/**
30
-	 * Init.
31
-	 */
32
-	public function init() {
33
-		$this->api_service = Default_Api_Service::get_instance();
34
-
35
-		add_filter( 'wl_term_jsonld_array', array( $this, 'wl_term_jsonld_array' ), 10, 2 );
36
-		add_filter( 'wl_term_jsonld_array', array( $this, 'wl_term_jsonld_array_event' ), 90, 3 );
37
-	}
38
-
39
-	/**
40
-	 * Wl term jsonld array.
41
-	 *
42
-	 * @param $jsonld_array
43
-	 * @param $term_id
44
-	 *
45
-	 * @return array|mixed
46
-	 */
47
-	public function wl_term_jsonld_array( $jsonld_array, $term_id ) {
48
-
49
-		$entities = Jsonld_Utils::get_matched_entities_for_term( $term_id );
50
-
51
-		if ( count( $entities ) > 0 ) {
52
-			$entity             = array_shift( $entities );
53
-			$entity['@context'] = 'http://schema.org';
54
-
55
-			$term_link = get_term_link( $term_id );
56
-			if ( is_wp_error( $term_link ) ) {
57
-				Wordlift_Log_Service::get_logger( get_class() )
58
-					->error( "Term $term_id returned an error: " . $term_link->get_error_message() );
59
-
60
-				return $jsonld_array;
61
-			}
62
-
63
-			$entity['@id']              = $term_link . '/#id';
64
-			$entity['url']              = $term_link;
65
-			$entity['mainEntityOfPage'] = $term_link;
66
-			$jsonld_array['jsonld'][]   = $entity;
67
-		}
68
-
69
-		return $jsonld_array;
70
-	}
71
-
72
-	/**
73
-	 * Set term jsonld array event.
74
-	 *
75
-	 * @param $jsonld_arr array The final jsonld before outputting to page.
76
-	 * @param $term_id int The term id for which the jsonld is generated.
77
-	 * @param $context int A context for the JSON-LD generation, valid values in Jsonld_Context_Enum
78
-	 *
79
-	 * @return array
80
-	 */
81
-	public function wl_term_jsonld_array_event( $jsonld_arr, $term_id, $context ) {
82
-		// If context is not PAGE or the array is empty, return early.
83
-		if ( Jsonld_Context_Enum::PAGE !== $context || empty( $jsonld_arr[0] ) ) {
84
-			return $jsonld_arr;
85
-		}
86
-
87
-		// Flag to indicate if we should make an API request.
88
-		$change_status = false;
89
-
90
-		// Get data from the array.
91
-		$data = $jsonld_arr[0];
92
-
93
-		// Fetch the initial 'about' and 'mentions' counts from term meta.
94
-		$counts = array(
95
-			'about'    => get_term_meta( $term_id, 'wl_about_count', true ) ? get_term_meta( $term_id, 'wl_about_count', true ) : 0,
96
-			'mentions' => get_term_meta( $term_id, 'wl_mentions_count', true ) ? get_term_meta( $term_id, 'wl_mentions_count', true ) : 0,
97
-		);
98
-
99
-		// Iterate over the counts array.
100
-		foreach ( $counts as $key => $count ) {
101
-			// Check if data has 'about' or 'mentions' and the count is different from the existing meta value.
102
-			if ( ! empty( $data[ $key ] ) ) {
103
-				$new_count = count( $data[ $key ] );
104
-				if ( $count !== $new_count ) {
105
-					// Set flag to true if counts have changed.
106
-					$change_status = true;
107
-
108
-					// Update the counts array with new count.
109
-					$counts[ $key ] = $new_count;
110
-
111
-					// Update term meta with new count.
112
-					update_term_meta( $term_id, 'wl_' . $key . '_count', $new_count );
113
-				}
114
-			}
115
-		}
116
-
117
-		// If the count has changed, make the API request.
118
-		if ( $change_status ) {
119
-			$this->api_service->request(
120
-				'POST',
121
-				'/plugin/events',
122
-				array( 'Content-Type' => 'application/json' ),
123
-				wp_json_encode(
124
-					array(
125
-						'source' => 'jsonld',
126
-						'args'   => array(
127
-							array( 'about_count' => $counts['about'] ),
128
-							array( 'mentions_count' => $counts['mentions'] ),
129
-						),
130
-						'url'    => $this->get_term_url( $term_id ),
131
-					)
132
-				),
133
-				0.001,
134
-				null,
135
-				array( 'blocking' => false )
136
-			);
137
-		}
138
-
139
-		return $jsonld_arr;
140
-	}
141
-
142
-	/**
143
-	 * Get term url.
144
-	 *
145
-	 * @param $id
146
-	 *
147
-	 * @return array|false|int|mixed|string|\WP_Error|\WP_Term|null
148
-	 */
149
-	private function get_term_url( $id ) {
150
-		if ( null === $id ) {
151
-			return isset( $_SERVER['REQUEST_URI'] ) ? filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ) : '';
152
-		}
153
-
154
-		$maybe_url = get_term_meta( $id, Wordlift_Url_Property_Service::META_KEY, true );
155
-		if ( ! empty( $maybe_url ) ) {
156
-			return $maybe_url;
157
-		}
158
-
159
-		return get_term_link( $id );
160
-	}
21
+    /**
22
+     * The {@link Api_Service} used to communicate with the remote APIs.
23
+     *
24
+     * @access private
25
+     * @var Default_Api_Service
26
+     */
27
+    private $api_service;
28
+
29
+    /**
30
+     * Init.
31
+     */
32
+    public function init() {
33
+        $this->api_service = Default_Api_Service::get_instance();
34
+
35
+        add_filter( 'wl_term_jsonld_array', array( $this, 'wl_term_jsonld_array' ), 10, 2 );
36
+        add_filter( 'wl_term_jsonld_array', array( $this, 'wl_term_jsonld_array_event' ), 90, 3 );
37
+    }
38
+
39
+    /**
40
+     * Wl term jsonld array.
41
+     *
42
+     * @param $jsonld_array
43
+     * @param $term_id
44
+     *
45
+     * @return array|mixed
46
+     */
47
+    public function wl_term_jsonld_array( $jsonld_array, $term_id ) {
48
+
49
+        $entities = Jsonld_Utils::get_matched_entities_for_term( $term_id );
50
+
51
+        if ( count( $entities ) > 0 ) {
52
+            $entity             = array_shift( $entities );
53
+            $entity['@context'] = 'http://schema.org';
54
+
55
+            $term_link = get_term_link( $term_id );
56
+            if ( is_wp_error( $term_link ) ) {
57
+                Wordlift_Log_Service::get_logger( get_class() )
58
+                    ->error( "Term $term_id returned an error: " . $term_link->get_error_message() );
59
+
60
+                return $jsonld_array;
61
+            }
62
+
63
+            $entity['@id']              = $term_link . '/#id';
64
+            $entity['url']              = $term_link;
65
+            $entity['mainEntityOfPage'] = $term_link;
66
+            $jsonld_array['jsonld'][]   = $entity;
67
+        }
68
+
69
+        return $jsonld_array;
70
+    }
71
+
72
+    /**
73
+     * Set term jsonld array event.
74
+     *
75
+     * @param $jsonld_arr array The final jsonld before outputting to page.
76
+     * @param $term_id int The term id for which the jsonld is generated.
77
+     * @param $context int A context for the JSON-LD generation, valid values in Jsonld_Context_Enum
78
+     *
79
+     * @return array
80
+     */
81
+    public function wl_term_jsonld_array_event( $jsonld_arr, $term_id, $context ) {
82
+        // If context is not PAGE or the array is empty, return early.
83
+        if ( Jsonld_Context_Enum::PAGE !== $context || empty( $jsonld_arr[0] ) ) {
84
+            return $jsonld_arr;
85
+        }
86
+
87
+        // Flag to indicate if we should make an API request.
88
+        $change_status = false;
89
+
90
+        // Get data from the array.
91
+        $data = $jsonld_arr[0];
92
+
93
+        // Fetch the initial 'about' and 'mentions' counts from term meta.
94
+        $counts = array(
95
+            'about'    => get_term_meta( $term_id, 'wl_about_count', true ) ? get_term_meta( $term_id, 'wl_about_count', true ) : 0,
96
+            'mentions' => get_term_meta( $term_id, 'wl_mentions_count', true ) ? get_term_meta( $term_id, 'wl_mentions_count', true ) : 0,
97
+        );
98
+
99
+        // Iterate over the counts array.
100
+        foreach ( $counts as $key => $count ) {
101
+            // Check if data has 'about' or 'mentions' and the count is different from the existing meta value.
102
+            if ( ! empty( $data[ $key ] ) ) {
103
+                $new_count = count( $data[ $key ] );
104
+                if ( $count !== $new_count ) {
105
+                    // Set flag to true if counts have changed.
106
+                    $change_status = true;
107
+
108
+                    // Update the counts array with new count.
109
+                    $counts[ $key ] = $new_count;
110
+
111
+                    // Update term meta with new count.
112
+                    update_term_meta( $term_id, 'wl_' . $key . '_count', $new_count );
113
+                }
114
+            }
115
+        }
116
+
117
+        // If the count has changed, make the API request.
118
+        if ( $change_status ) {
119
+            $this->api_service->request(
120
+                'POST',
121
+                '/plugin/events',
122
+                array( 'Content-Type' => 'application/json' ),
123
+                wp_json_encode(
124
+                    array(
125
+                        'source' => 'jsonld',
126
+                        'args'   => array(
127
+                            array( 'about_count' => $counts['about'] ),
128
+                            array( 'mentions_count' => $counts['mentions'] ),
129
+                        ),
130
+                        'url'    => $this->get_term_url( $term_id ),
131
+                    )
132
+                ),
133
+                0.001,
134
+                null,
135
+                array( 'blocking' => false )
136
+            );
137
+        }
138
+
139
+        return $jsonld_arr;
140
+    }
141
+
142
+    /**
143
+     * Get term url.
144
+     *
145
+     * @param $id
146
+     *
147
+     * @return array|false|int|mixed|string|\WP_Error|\WP_Term|null
148
+     */
149
+    private function get_term_url( $id ) {
150
+        if ( null === $id ) {
151
+            return isset( $_SERVER['REQUEST_URI'] ) ? filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ) : '';
152
+        }
153
+
154
+        $maybe_url = get_term_meta( $id, Wordlift_Url_Property_Service::META_KEY, true );
155
+        if ( ! empty( $maybe_url ) ) {
156
+            return $maybe_url;
157
+        }
158
+
159
+        return get_term_link( $id );
160
+    }
161 161
 
162 162
 }
Please login to merge, or discard this patch.
Spacing   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -32,8 +32,8 @@  discard block
 block discarded – undo
32 32
 	public function init() {
33 33
 		$this->api_service = Default_Api_Service::get_instance();
34 34
 
35
-		add_filter( 'wl_term_jsonld_array', array( $this, 'wl_term_jsonld_array' ), 10, 2 );
36
-		add_filter( 'wl_term_jsonld_array', array( $this, 'wl_term_jsonld_array_event' ), 90, 3 );
35
+		add_filter('wl_term_jsonld_array', array($this, 'wl_term_jsonld_array'), 10, 2);
36
+		add_filter('wl_term_jsonld_array', array($this, 'wl_term_jsonld_array_event'), 90, 3);
37 37
 	}
38 38
 
39 39
 	/**
@@ -44,23 +44,23 @@  discard block
 block discarded – undo
44 44
 	 *
45 45
 	 * @return array|mixed
46 46
 	 */
47
-	public function wl_term_jsonld_array( $jsonld_array, $term_id ) {
47
+	public function wl_term_jsonld_array($jsonld_array, $term_id) {
48 48
 
49
-		$entities = Jsonld_Utils::get_matched_entities_for_term( $term_id );
49
+		$entities = Jsonld_Utils::get_matched_entities_for_term($term_id);
50 50
 
51
-		if ( count( $entities ) > 0 ) {
52
-			$entity             = array_shift( $entities );
51
+		if (count($entities) > 0) {
52
+			$entity             = array_shift($entities);
53 53
 			$entity['@context'] = 'http://schema.org';
54 54
 
55
-			$term_link = get_term_link( $term_id );
56
-			if ( is_wp_error( $term_link ) ) {
57
-				Wordlift_Log_Service::get_logger( get_class() )
58
-					->error( "Term $term_id returned an error: " . $term_link->get_error_message() );
55
+			$term_link = get_term_link($term_id);
56
+			if (is_wp_error($term_link)) {
57
+				Wordlift_Log_Service::get_logger(get_class())
58
+					->error("Term $term_id returned an error: ".$term_link->get_error_message());
59 59
 
60 60
 				return $jsonld_array;
61 61
 			}
62 62
 
63
-			$entity['@id']              = $term_link . '/#id';
63
+			$entity['@id']              = $term_link.'/#id';
64 64
 			$entity['url']              = $term_link;
65 65
 			$entity['mainEntityOfPage'] = $term_link;
66 66
 			$jsonld_array['jsonld'][]   = $entity;
@@ -78,9 +78,9 @@  discard block
 block discarded – undo
78 78
 	 *
79 79
 	 * @return array
80 80
 	 */
81
-	public function wl_term_jsonld_array_event( $jsonld_arr, $term_id, $context ) {
81
+	public function wl_term_jsonld_array_event($jsonld_arr, $term_id, $context) {
82 82
 		// If context is not PAGE or the array is empty, return early.
83
-		if ( Jsonld_Context_Enum::PAGE !== $context || empty( $jsonld_arr[0] ) ) {
83
+		if (Jsonld_Context_Enum::PAGE !== $context || empty($jsonld_arr[0])) {
84 84
 			return $jsonld_arr;
85 85
 		}
86 86
 
@@ -92,47 +92,47 @@  discard block
 block discarded – undo
92 92
 
93 93
 		// Fetch the initial 'about' and 'mentions' counts from term meta.
94 94
 		$counts = array(
95
-			'about'    => get_term_meta( $term_id, 'wl_about_count', true ) ? get_term_meta( $term_id, 'wl_about_count', true ) : 0,
96
-			'mentions' => get_term_meta( $term_id, 'wl_mentions_count', true ) ? get_term_meta( $term_id, 'wl_mentions_count', true ) : 0,
95
+			'about'    => get_term_meta($term_id, 'wl_about_count', true) ? get_term_meta($term_id, 'wl_about_count', true) : 0,
96
+			'mentions' => get_term_meta($term_id, 'wl_mentions_count', true) ? get_term_meta($term_id, 'wl_mentions_count', true) : 0,
97 97
 		);
98 98
 
99 99
 		// Iterate over the counts array.
100
-		foreach ( $counts as $key => $count ) {
100
+		foreach ($counts as $key => $count) {
101 101
 			// Check if data has 'about' or 'mentions' and the count is different from the existing meta value.
102
-			if ( ! empty( $data[ $key ] ) ) {
103
-				$new_count = count( $data[ $key ] );
104
-				if ( $count !== $new_count ) {
102
+			if ( ! empty($data[$key])) {
103
+				$new_count = count($data[$key]);
104
+				if ($count !== $new_count) {
105 105
 					// Set flag to true if counts have changed.
106 106
 					$change_status = true;
107 107
 
108 108
 					// Update the counts array with new count.
109
-					$counts[ $key ] = $new_count;
109
+					$counts[$key] = $new_count;
110 110
 
111 111
 					// Update term meta with new count.
112
-					update_term_meta( $term_id, 'wl_' . $key . '_count', $new_count );
112
+					update_term_meta($term_id, 'wl_'.$key.'_count', $new_count);
113 113
 				}
114 114
 			}
115 115
 		}
116 116
 
117 117
 		// If the count has changed, make the API request.
118
-		if ( $change_status ) {
118
+		if ($change_status) {
119 119
 			$this->api_service->request(
120 120
 				'POST',
121 121
 				'/plugin/events',
122
-				array( 'Content-Type' => 'application/json' ),
122
+				array('Content-Type' => 'application/json'),
123 123
 				wp_json_encode(
124 124
 					array(
125 125
 						'source' => 'jsonld',
126 126
 						'args'   => array(
127
-							array( 'about_count' => $counts['about'] ),
128
-							array( 'mentions_count' => $counts['mentions'] ),
127
+							array('about_count' => $counts['about']),
128
+							array('mentions_count' => $counts['mentions']),
129 129
 						),
130
-						'url'    => $this->get_term_url( $term_id ),
130
+						'url'    => $this->get_term_url($term_id),
131 131
 					)
132 132
 				),
133 133
 				0.001,
134 134
 				null,
135
-				array( 'blocking' => false )
135
+				array('blocking' => false)
136 136
 			);
137 137
 		}
138 138
 
@@ -146,17 +146,17 @@  discard block
 block discarded – undo
146 146
 	 *
147 147
 	 * @return array|false|int|mixed|string|\WP_Error|\WP_Term|null
148 148
 	 */
149
-	private function get_term_url( $id ) {
150
-		if ( null === $id ) {
151
-			return isset( $_SERVER['REQUEST_URI'] ) ? filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ), FILTER_SANITIZE_URL ) : '';
149
+	private function get_term_url($id) {
150
+		if (null === $id) {
151
+			return isset($_SERVER['REQUEST_URI']) ? filter_var(wp_unslash($_SERVER['REQUEST_URI']), FILTER_SANITIZE_URL) : '';
152 152
 		}
153 153
 
154
-		$maybe_url = get_term_meta( $id, Wordlift_Url_Property_Service::META_KEY, true );
155
-		if ( ! empty( $maybe_url ) ) {
154
+		$maybe_url = get_term_meta($id, Wordlift_Url_Property_Service::META_KEY, true);
155
+		if ( ! empty($maybe_url)) {
156 156
 			return $maybe_url;
157 157
 		}
158 158
 
159
-		return get_term_link( $id );
159
+		return get_term_link($id);
160 160
 	}
161 161
 
162 162
 }
Please login to merge, or discard this patch.
src/classes/vocabulary/jsonld/class-post-jsonld.php 2 patches
Indentation   +208 added lines, -208 removed lines patch added patch discarded remove patch
@@ -17,212 +17,212 @@
 block discarded – undo
17 17
  * @package Wordlift\Vocabulary\Jsonld
18 18
  */
19 19
 class Post_Jsonld {
20
-	/**
21
-	 * The {@link Api_Service} used to communicate with the remote APIs.
22
-	 *
23
-	 * @access private
24
-	 * @var Default_Api_Service
25
-	 */
26
-	private $api_service;
27
-
28
-	/**
29
-	 * Enhance post jsonld.
30
-	 */
31
-	public function enhance_post_jsonld() {
32
-		$this->api_service = Default_Api_Service::get_instance();
33
-
34
-		add_filter( 'wl_post_jsonld_array', array( $this, 'wl_post_jsonld_array' ), 11, 2 );
35
-		add_filter( 'wl_after_get_jsonld', array( $this, 'wl_after_get_jsonld' ), 11 );
36
-		add_filter( 'wl_after_get_jsonld', array( $this, 'set_events_request' ), 90, 3 );
37
-	}
38
-
39
-	/**
40
-	 * Wl post jsonld array.
41
-	 *
42
-	 * @param $arr
43
-	 * @param $post_id
44
-	 *
45
-	 * @return array
46
-	 */
47
-	public function wl_post_jsonld_array( $arr, $post_id ) {
48
-		$jsonld     = $arr['jsonld'];
49
-		$references = $arr['references'];
50
-
51
-		$this->add_mentions( $post_id, $jsonld );
52
-
53
-		return array(
54
-			'jsonld'     => $jsonld,
55
-			'references' => $references,
56
-		);
57
-	}
58
-
59
-	/**
60
-	 * Add mentions.
61
-	 *
62
-	 * @param $post_id
63
-	 * @param $jsonld
64
-	 */
65
-	public function add_mentions( $post_id, &$jsonld ) {
66
-
67
-		$taxonomies = Terms_Compat::get_public_taxonomies();
68
-		$terms      = array();
69
-
70
-		foreach ( $taxonomies as $taxonomy ) {
71
-			$taxonomy_terms = get_the_terms( $post_id, $taxonomy );
72
-			if ( ! $taxonomy_terms ) {
73
-				continue;
74
-			}
75
-			$terms = array_merge( $taxonomy_terms, $terms );
76
-		}
77
-
78
-		if ( ! $terms ) {
79
-			return;
80
-		}
81
-
82
-		if ( ! array_key_exists( 'mentions', $jsonld ) && count( $terms ) > 0 ) {
83
-			$jsonld['mentions'] = array();
84
-		}
85
-
86
-		foreach ( $terms as $term ) {
87
-
88
-			$is_matched = intval( get_term_meta( $term->term_id, Entity_Rest_Endpoint::IGNORE_TAG_FROM_LISTING, true ) ) === 1;
89
-
90
-			if ( ! $is_matched ) {
91
-				continue;
92
-			}
93
-
94
-			$entities = Jsonld_Utils::get_matched_entities_for_term( $term->term_id );
95
-
96
-			if ( count( $entities ) === 0 ) {
97
-				continue;
98
-			}
99
-
100
-			$add_additional_attrs = self::add_additional_attrs( $term, $entities );
101
-
102
-			$jsonld['mentions'] = array_merge( $jsonld['mentions'], $add_additional_attrs );
103
-		}
104
-
105
-	}
106
-
107
-	/**
108
-	 * @param $term \WP_Term
109
-	 * @param $entities
110
-	 *
111
-	 * @return array
112
-	 */
113
-	public static function add_additional_attrs( $term, $entities ) {
114
-
115
-		return array_map(
116
-			function ( $entity ) use ( $term ) {
117
-				$entity['@id'] = get_term_link( $term->term_id ) . '#id';
118
-				if ( ! empty( $term->description ) ) {
119
-					$entity['description'] = $term->description;
120
-				}
121
-
122
-				return $entity;
123
-
124
-			},
125
-			$entities
126
-		);
127
-
128
-	}
129
-
130
-	/**
131
-	 * Wl after get jsonld.
132
-	 *
133
-	 * @param $jsonld
134
-	 *
135
-	 * @return array|mixed
136
-	 */
137
-	public function wl_after_get_jsonld( $jsonld ) {
138
-
139
-		if ( ! is_array( $jsonld ) || count( $jsonld ) === 0 ) {
140
-			return $jsonld;
141
-		}
142
-
143
-		foreach ( $jsonld as $key => $value ) {
144
-			if ( 'Article' === $value['@type'] && isset( $value['image'] ) ) {
145
-				$image = $value['image'];
146
-			}
147
-			if ( 'Recipe' === $value['@type'] && ! isset( $value['image'] ) ) {
148
-				$index = $key;
149
-			}
150
-		}
151
-
152
-		if ( isset( $index ) && ! empty( $image ) ) {
153
-			$jsonld[ $index ]['image'] = $image;
154
-		}
155
-
156
-		return $jsonld;
157
-	}
158
-
159
-	/**
160
-	 * Set events request.
161
-	 *
162
-	 * @param $jsonld_arr array The final jsonld before outputting to page.
163
-	 * @param $post_id int The post id for which the jsonld is generated.
164
-	 * @param $context int A context for the JSON-LD generation, valid values in Jsonld_Context_Enum
165
-	 *
166
-	 * @return array
167
-	 */
168
-	public function set_events_request( $jsonld_arr, $post_id, $context ) {
169
-		// If context is not PAGE or the array is empty, return early.
170
-		if ( Jsonld_Context_Enum::PAGE !== $context || empty( $jsonld_arr[0] ) ) {
171
-			return $jsonld_arr;
172
-		}
173
-
174
-		// Flag to indicate if we should make an API request.
175
-		$change_status = false;
176
-
177
-		// Get data from the array.
178
-		$data = $jsonld_arr[0];
179
-
180
-		// Fetch the initial 'about' and 'mentions' counts from post meta.
181
-		$counts = array(
182
-			'about'    => get_post_meta( $post_id, 'wl_about_count', true ) ? get_post_meta( $post_id, 'wl_about_count', true ) : 0,
183
-			'mentions' => get_post_meta( $post_id, 'wl_mentions_count', true ) ? get_post_meta( $post_id, 'wl_mentions_count', true ) : 0,
184
-		);
185
-
186
-		// Iterate over the counts array.
187
-		foreach ( $counts as $key => $count ) {
188
-			// Check if data has 'about' or 'mentions' and the count is different from the existing meta value.
189
-			if ( ! empty( $data[ $key ] ) ) {
190
-				$new_count = count( $data[ $key ] );
191
-				if ( $count !== $new_count ) {
192
-					// Set flag to true if counts have changed.
193
-					$change_status = true;
194
-
195
-					// Update the counts array with new count.
196
-					$counts[ $key ] = $new_count;
197
-
198
-					// Update post meta with new count.
199
-					update_post_meta( $post_id, 'wl_' . $key . '_count', $new_count );
200
-				}
201
-			}
202
-		}
203
-
204
-		// If the count has changed, make the API request.
205
-		if ( $change_status ) {
206
-			$this->api_service->request(
207
-				'POST',
208
-				'/plugin/events',
209
-				array( 'Content-Type' => 'application/json' ),
210
-				wp_json_encode(
211
-					array(
212
-						'source' => 'jsonld',
213
-						'args'   => array(
214
-							array( 'about_count' => $counts['about'] ),
215
-							array( 'mentions_count' => $counts['mentions'] ),
216
-						),
217
-						'url'    => get_permalink( $post_id ),
218
-					)
219
-				),
220
-				0.001,
221
-				null,
222
-				array( 'blocking' => false )
223
-			);
224
-		}
225
-
226
-		return $jsonld_arr;
227
-	}
20
+    /**
21
+     * The {@link Api_Service} used to communicate with the remote APIs.
22
+     *
23
+     * @access private
24
+     * @var Default_Api_Service
25
+     */
26
+    private $api_service;
27
+
28
+    /**
29
+     * Enhance post jsonld.
30
+     */
31
+    public function enhance_post_jsonld() {
32
+        $this->api_service = Default_Api_Service::get_instance();
33
+
34
+        add_filter( 'wl_post_jsonld_array', array( $this, 'wl_post_jsonld_array' ), 11, 2 );
35
+        add_filter( 'wl_after_get_jsonld', array( $this, 'wl_after_get_jsonld' ), 11 );
36
+        add_filter( 'wl_after_get_jsonld', array( $this, 'set_events_request' ), 90, 3 );
37
+    }
38
+
39
+    /**
40
+     * Wl post jsonld array.
41
+     *
42
+     * @param $arr
43
+     * @param $post_id
44
+     *
45
+     * @return array
46
+     */
47
+    public function wl_post_jsonld_array( $arr, $post_id ) {
48
+        $jsonld     = $arr['jsonld'];
49
+        $references = $arr['references'];
50
+
51
+        $this->add_mentions( $post_id, $jsonld );
52
+
53
+        return array(
54
+            'jsonld'     => $jsonld,
55
+            'references' => $references,
56
+        );
57
+    }
58
+
59
+    /**
60
+     * Add mentions.
61
+     *
62
+     * @param $post_id
63
+     * @param $jsonld
64
+     */
65
+    public function add_mentions( $post_id, &$jsonld ) {
66
+
67
+        $taxonomies = Terms_Compat::get_public_taxonomies();
68
+        $terms      = array();
69
+
70
+        foreach ( $taxonomies as $taxonomy ) {
71
+            $taxonomy_terms = get_the_terms( $post_id, $taxonomy );
72
+            if ( ! $taxonomy_terms ) {
73
+                continue;
74
+            }
75
+            $terms = array_merge( $taxonomy_terms, $terms );
76
+        }
77
+
78
+        if ( ! $terms ) {
79
+            return;
80
+        }
81
+
82
+        if ( ! array_key_exists( 'mentions', $jsonld ) && count( $terms ) > 0 ) {
83
+            $jsonld['mentions'] = array();
84
+        }
85
+
86
+        foreach ( $terms as $term ) {
87
+
88
+            $is_matched = intval( get_term_meta( $term->term_id, Entity_Rest_Endpoint::IGNORE_TAG_FROM_LISTING, true ) ) === 1;
89
+
90
+            if ( ! $is_matched ) {
91
+                continue;
92
+            }
93
+
94
+            $entities = Jsonld_Utils::get_matched_entities_for_term( $term->term_id );
95
+
96
+            if ( count( $entities ) === 0 ) {
97
+                continue;
98
+            }
99
+
100
+            $add_additional_attrs = self::add_additional_attrs( $term, $entities );
101
+
102
+            $jsonld['mentions'] = array_merge( $jsonld['mentions'], $add_additional_attrs );
103
+        }
104
+
105
+    }
106
+
107
+    /**
108
+     * @param $term \WP_Term
109
+     * @param $entities
110
+     *
111
+     * @return array
112
+     */
113
+    public static function add_additional_attrs( $term, $entities ) {
114
+
115
+        return array_map(
116
+            function ( $entity ) use ( $term ) {
117
+                $entity['@id'] = get_term_link( $term->term_id ) . '#id';
118
+                if ( ! empty( $term->description ) ) {
119
+                    $entity['description'] = $term->description;
120
+                }
121
+
122
+                return $entity;
123
+
124
+            },
125
+            $entities
126
+        );
127
+
128
+    }
129
+
130
+    /**
131
+     * Wl after get jsonld.
132
+     *
133
+     * @param $jsonld
134
+     *
135
+     * @return array|mixed
136
+     */
137
+    public function wl_after_get_jsonld( $jsonld ) {
138
+
139
+        if ( ! is_array( $jsonld ) || count( $jsonld ) === 0 ) {
140
+            return $jsonld;
141
+        }
142
+
143
+        foreach ( $jsonld as $key => $value ) {
144
+            if ( 'Article' === $value['@type'] && isset( $value['image'] ) ) {
145
+                $image = $value['image'];
146
+            }
147
+            if ( 'Recipe' === $value['@type'] && ! isset( $value['image'] ) ) {
148
+                $index = $key;
149
+            }
150
+        }
151
+
152
+        if ( isset( $index ) && ! empty( $image ) ) {
153
+            $jsonld[ $index ]['image'] = $image;
154
+        }
155
+
156
+        return $jsonld;
157
+    }
158
+
159
+    /**
160
+     * Set events request.
161
+     *
162
+     * @param $jsonld_arr array The final jsonld before outputting to page.
163
+     * @param $post_id int The post id for which the jsonld is generated.
164
+     * @param $context int A context for the JSON-LD generation, valid values in Jsonld_Context_Enum
165
+     *
166
+     * @return array
167
+     */
168
+    public function set_events_request( $jsonld_arr, $post_id, $context ) {
169
+        // If context is not PAGE or the array is empty, return early.
170
+        if ( Jsonld_Context_Enum::PAGE !== $context || empty( $jsonld_arr[0] ) ) {
171
+            return $jsonld_arr;
172
+        }
173
+
174
+        // Flag to indicate if we should make an API request.
175
+        $change_status = false;
176
+
177
+        // Get data from the array.
178
+        $data = $jsonld_arr[0];
179
+
180
+        // Fetch the initial 'about' and 'mentions' counts from post meta.
181
+        $counts = array(
182
+            'about'    => get_post_meta( $post_id, 'wl_about_count', true ) ? get_post_meta( $post_id, 'wl_about_count', true ) : 0,
183
+            'mentions' => get_post_meta( $post_id, 'wl_mentions_count', true ) ? get_post_meta( $post_id, 'wl_mentions_count', true ) : 0,
184
+        );
185
+
186
+        // Iterate over the counts array.
187
+        foreach ( $counts as $key => $count ) {
188
+            // Check if data has 'about' or 'mentions' and the count is different from the existing meta value.
189
+            if ( ! empty( $data[ $key ] ) ) {
190
+                $new_count = count( $data[ $key ] );
191
+                if ( $count !== $new_count ) {
192
+                    // Set flag to true if counts have changed.
193
+                    $change_status = true;
194
+
195
+                    // Update the counts array with new count.
196
+                    $counts[ $key ] = $new_count;
197
+
198
+                    // Update post meta with new count.
199
+                    update_post_meta( $post_id, 'wl_' . $key . '_count', $new_count );
200
+                }
201
+            }
202
+        }
203
+
204
+        // If the count has changed, make the API request.
205
+        if ( $change_status ) {
206
+            $this->api_service->request(
207
+                'POST',
208
+                '/plugin/events',
209
+                array( 'Content-Type' => 'application/json' ),
210
+                wp_json_encode(
211
+                    array(
212
+                        'source' => 'jsonld',
213
+                        'args'   => array(
214
+                            array( 'about_count' => $counts['about'] ),
215
+                            array( 'mentions_count' => $counts['mentions'] ),
216
+                        ),
217
+                        'url'    => get_permalink( $post_id ),
218
+                    )
219
+                ),
220
+                0.001,
221
+                null,
222
+                array( 'blocking' => false )
223
+            );
224
+        }
225
+
226
+        return $jsonld_arr;
227
+    }
228 228
 }
Please login to merge, or discard this patch.
Spacing   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -31,9 +31,9 @@  discard block
 block discarded – undo
31 31
 	public function enhance_post_jsonld() {
32 32
 		$this->api_service = Default_Api_Service::get_instance();
33 33
 
34
-		add_filter( 'wl_post_jsonld_array', array( $this, 'wl_post_jsonld_array' ), 11, 2 );
35
-		add_filter( 'wl_after_get_jsonld', array( $this, 'wl_after_get_jsonld' ), 11 );
36
-		add_filter( 'wl_after_get_jsonld', array( $this, 'set_events_request' ), 90, 3 );
34
+		add_filter('wl_post_jsonld_array', array($this, 'wl_post_jsonld_array'), 11, 2);
35
+		add_filter('wl_after_get_jsonld', array($this, 'wl_after_get_jsonld'), 11);
36
+		add_filter('wl_after_get_jsonld', array($this, 'set_events_request'), 90, 3);
37 37
 	}
38 38
 
39 39
 	/**
@@ -44,11 +44,11 @@  discard block
 block discarded – undo
44 44
 	 *
45 45
 	 * @return array
46 46
 	 */
47
-	public function wl_post_jsonld_array( $arr, $post_id ) {
47
+	public function wl_post_jsonld_array($arr, $post_id) {
48 48
 		$jsonld     = $arr['jsonld'];
49 49
 		$references = $arr['references'];
50 50
 
51
-		$this->add_mentions( $post_id, $jsonld );
51
+		$this->add_mentions($post_id, $jsonld);
52 52
 
53 53
 		return array(
54 54
 			'jsonld'     => $jsonld,
@@ -62,44 +62,44 @@  discard block
 block discarded – undo
62 62
 	 * @param $post_id
63 63
 	 * @param $jsonld
64 64
 	 */
65
-	public function add_mentions( $post_id, &$jsonld ) {
65
+	public function add_mentions($post_id, &$jsonld) {
66 66
 
67 67
 		$taxonomies = Terms_Compat::get_public_taxonomies();
68 68
 		$terms      = array();
69 69
 
70
-		foreach ( $taxonomies as $taxonomy ) {
71
-			$taxonomy_terms = get_the_terms( $post_id, $taxonomy );
72
-			if ( ! $taxonomy_terms ) {
70
+		foreach ($taxonomies as $taxonomy) {
71
+			$taxonomy_terms = get_the_terms($post_id, $taxonomy);
72
+			if ( ! $taxonomy_terms) {
73 73
 				continue;
74 74
 			}
75
-			$terms = array_merge( $taxonomy_terms, $terms );
75
+			$terms = array_merge($taxonomy_terms, $terms);
76 76
 		}
77 77
 
78
-		if ( ! $terms ) {
78
+		if ( ! $terms) {
79 79
 			return;
80 80
 		}
81 81
 
82
-		if ( ! array_key_exists( 'mentions', $jsonld ) && count( $terms ) > 0 ) {
82
+		if ( ! array_key_exists('mentions', $jsonld) && count($terms) > 0) {
83 83
 			$jsonld['mentions'] = array();
84 84
 		}
85 85
 
86
-		foreach ( $terms as $term ) {
86
+		foreach ($terms as $term) {
87 87
 
88
-			$is_matched = intval( get_term_meta( $term->term_id, Entity_Rest_Endpoint::IGNORE_TAG_FROM_LISTING, true ) ) === 1;
88
+			$is_matched = intval(get_term_meta($term->term_id, Entity_Rest_Endpoint::IGNORE_TAG_FROM_LISTING, true)) === 1;
89 89
 
90
-			if ( ! $is_matched ) {
90
+			if ( ! $is_matched) {
91 91
 				continue;
92 92
 			}
93 93
 
94
-			$entities = Jsonld_Utils::get_matched_entities_for_term( $term->term_id );
94
+			$entities = Jsonld_Utils::get_matched_entities_for_term($term->term_id);
95 95
 
96
-			if ( count( $entities ) === 0 ) {
96
+			if (count($entities) === 0) {
97 97
 				continue;
98 98
 			}
99 99
 
100
-			$add_additional_attrs = self::add_additional_attrs( $term, $entities );
100
+			$add_additional_attrs = self::add_additional_attrs($term, $entities);
101 101
 
102
-			$jsonld['mentions'] = array_merge( $jsonld['mentions'], $add_additional_attrs );
102
+			$jsonld['mentions'] = array_merge($jsonld['mentions'], $add_additional_attrs);
103 103
 		}
104 104
 
105 105
 	}
@@ -110,12 +110,12 @@  discard block
 block discarded – undo
110 110
 	 *
111 111
 	 * @return array
112 112
 	 */
113
-	public static function add_additional_attrs( $term, $entities ) {
113
+	public static function add_additional_attrs($term, $entities) {
114 114
 
115 115
 		return array_map(
116
-			function ( $entity ) use ( $term ) {
117
-				$entity['@id'] = get_term_link( $term->term_id ) . '#id';
118
-				if ( ! empty( $term->description ) ) {
116
+			function($entity) use ($term) {
117
+				$entity['@id'] = get_term_link($term->term_id).'#id';
118
+				if ( ! empty($term->description)) {
119 119
 					$entity['description'] = $term->description;
120 120
 				}
121 121
 
@@ -134,23 +134,23 @@  discard block
 block discarded – undo
134 134
 	 *
135 135
 	 * @return array|mixed
136 136
 	 */
137
-	public function wl_after_get_jsonld( $jsonld ) {
137
+	public function wl_after_get_jsonld($jsonld) {
138 138
 
139
-		if ( ! is_array( $jsonld ) || count( $jsonld ) === 0 ) {
139
+		if ( ! is_array($jsonld) || count($jsonld) === 0) {
140 140
 			return $jsonld;
141 141
 		}
142 142
 
143
-		foreach ( $jsonld as $key => $value ) {
144
-			if ( 'Article' === $value['@type'] && isset( $value['image'] ) ) {
143
+		foreach ($jsonld as $key => $value) {
144
+			if ('Article' === $value['@type'] && isset($value['image'])) {
145 145
 				$image = $value['image'];
146 146
 			}
147
-			if ( 'Recipe' === $value['@type'] && ! isset( $value['image'] ) ) {
147
+			if ('Recipe' === $value['@type'] && ! isset($value['image'])) {
148 148
 				$index = $key;
149 149
 			}
150 150
 		}
151 151
 
152
-		if ( isset( $index ) && ! empty( $image ) ) {
153
-			$jsonld[ $index ]['image'] = $image;
152
+		if (isset($index) && ! empty($image)) {
153
+			$jsonld[$index]['image'] = $image;
154 154
 		}
155 155
 
156 156
 		return $jsonld;
@@ -165,9 +165,9 @@  discard block
 block discarded – undo
165 165
 	 *
166 166
 	 * @return array
167 167
 	 */
168
-	public function set_events_request( $jsonld_arr, $post_id, $context ) {
168
+	public function set_events_request($jsonld_arr, $post_id, $context) {
169 169
 		// If context is not PAGE or the array is empty, return early.
170
-		if ( Jsonld_Context_Enum::PAGE !== $context || empty( $jsonld_arr[0] ) ) {
170
+		if (Jsonld_Context_Enum::PAGE !== $context || empty($jsonld_arr[0])) {
171 171
 			return $jsonld_arr;
172 172
 		}
173 173
 
@@ -179,47 +179,47 @@  discard block
 block discarded – undo
179 179
 
180 180
 		// Fetch the initial 'about' and 'mentions' counts from post meta.
181 181
 		$counts = array(
182
-			'about'    => get_post_meta( $post_id, 'wl_about_count', true ) ? get_post_meta( $post_id, 'wl_about_count', true ) : 0,
183
-			'mentions' => get_post_meta( $post_id, 'wl_mentions_count', true ) ? get_post_meta( $post_id, 'wl_mentions_count', true ) : 0,
182
+			'about'    => get_post_meta($post_id, 'wl_about_count', true) ? get_post_meta($post_id, 'wl_about_count', true) : 0,
183
+			'mentions' => get_post_meta($post_id, 'wl_mentions_count', true) ? get_post_meta($post_id, 'wl_mentions_count', true) : 0,
184 184
 		);
185 185
 
186 186
 		// Iterate over the counts array.
187
-		foreach ( $counts as $key => $count ) {
187
+		foreach ($counts as $key => $count) {
188 188
 			// Check if data has 'about' or 'mentions' and the count is different from the existing meta value.
189
-			if ( ! empty( $data[ $key ] ) ) {
190
-				$new_count = count( $data[ $key ] );
191
-				if ( $count !== $new_count ) {
189
+			if ( ! empty($data[$key])) {
190
+				$new_count = count($data[$key]);
191
+				if ($count !== $new_count) {
192 192
 					// Set flag to true if counts have changed.
193 193
 					$change_status = true;
194 194
 
195 195
 					// Update the counts array with new count.
196
-					$counts[ $key ] = $new_count;
196
+					$counts[$key] = $new_count;
197 197
 
198 198
 					// Update post meta with new count.
199
-					update_post_meta( $post_id, 'wl_' . $key . '_count', $new_count );
199
+					update_post_meta($post_id, 'wl_'.$key.'_count', $new_count);
200 200
 				}
201 201
 			}
202 202
 		}
203 203
 
204 204
 		// If the count has changed, make the API request.
205
-		if ( $change_status ) {
205
+		if ($change_status) {
206 206
 			$this->api_service->request(
207 207
 				'POST',
208 208
 				'/plugin/events',
209
-				array( 'Content-Type' => 'application/json' ),
209
+				array('Content-Type' => 'application/json'),
210 210
 				wp_json_encode(
211 211
 					array(
212 212
 						'source' => 'jsonld',
213 213
 						'args'   => array(
214
-							array( 'about_count' => $counts['about'] ),
215
-							array( 'mentions_count' => $counts['mentions'] ),
214
+							array('about_count' => $counts['about']),
215
+							array('mentions_count' => $counts['mentions']),
216 216
 						),
217
-						'url'    => get_permalink( $post_id ),
217
+						'url'    => get_permalink($post_id),
218 218
 					)
219 219
 				),
220 220
 				0.001,
221 221
 				null,
222
-				array( 'blocking' => false )
222
+				array('blocking' => false)
223 223
 			);
224 224
 		}
225 225
 
Please login to merge, or discard this patch.
src/modules/include-exclude-push-config/includes/Include_Exclude_API.php 2 patches
Indentation   +51 added lines, -51 removed lines patch added patch discarded remove patch
@@ -6,56 +6,56 @@
 block discarded – undo
6 6
 
7 7
 class Include_Exclude_API {
8 8
 
9
-	/**
10
-	 * @var Api_Service
11
-	 */
12
-	private $api_service;
13
-
14
-	/**
15
-	 * @param Api_Service $api_service
16
-	 */
17
-	public function __construct( Api_Service $api_service ) {
18
-		$this->api_service = $api_service;
19
-	}
20
-
21
-	/**
22
-	 * Update.
23
-	 *
24
-	 * @param $payload
25
-	 */
26
-	public function update( $payload ) {
27
-		$this->api_service->request(
28
-			'PUT',
29
-			'/accounts/me/include-excludes',
30
-			array( 'content-type' => 'application/json' ),
31
-			wp_json_encode( $payload )
32
-		);
33
-	}
34
-
35
-	/**
36
-	 * Send event.
37
-	 *
38
-	 * @param $url
39
-	 * @param $value
40
-	 */
41
-	public function send_event( $url, $value ) {
42
-		$this->api_service->request(
43
-			'POST',
44
-			'/plugin/events',
45
-			array( 'content-type' => 'application/json' ),
46
-			wp_json_encode(
47
-				array(
48
-					'source' => 'include-exclude',
49
-					'args'   => array(
50
-						array( 'value' => $value ),
51
-					),
52
-					'url'    => $url,
53
-				)
54
-			),
55
-			0.001,
56
-			null,
57
-			array( 'blocking' => false )
58
-		);
59
-	}
9
+    /**
10
+     * @var Api_Service
11
+     */
12
+    private $api_service;
13
+
14
+    /**
15
+     * @param Api_Service $api_service
16
+     */
17
+    public function __construct( Api_Service $api_service ) {
18
+        $this->api_service = $api_service;
19
+    }
20
+
21
+    /**
22
+     * Update.
23
+     *
24
+     * @param $payload
25
+     */
26
+    public function update( $payload ) {
27
+        $this->api_service->request(
28
+            'PUT',
29
+            '/accounts/me/include-excludes',
30
+            array( 'content-type' => 'application/json' ),
31
+            wp_json_encode( $payload )
32
+        );
33
+    }
34
+
35
+    /**
36
+     * Send event.
37
+     *
38
+     * @param $url
39
+     * @param $value
40
+     */
41
+    public function send_event( $url, $value ) {
42
+        $this->api_service->request(
43
+            'POST',
44
+            '/plugin/events',
45
+            array( 'content-type' => 'application/json' ),
46
+            wp_json_encode(
47
+                array(
48
+                    'source' => 'include-exclude',
49
+                    'args'   => array(
50
+                        array( 'value' => $value ),
51
+                    ),
52
+                    'url'    => $url,
53
+                )
54
+            ),
55
+            0.001,
56
+            null,
57
+            array( 'blocking' => false )
58
+        );
59
+    }
60 60
 
61 61
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -14,7 +14,7 @@  discard block
 block discarded – undo
14 14
 	/**
15 15
 	 * @param Api_Service $api_service
16 16
 	 */
17
-	public function __construct( Api_Service $api_service ) {
17
+	public function __construct(Api_Service $api_service) {
18 18
 		$this->api_service = $api_service;
19 19
 	}
20 20
 
@@ -23,12 +23,12 @@  discard block
 block discarded – undo
23 23
 	 *
24 24
 	 * @param $payload
25 25
 	 */
26
-	public function update( $payload ) {
26
+	public function update($payload) {
27 27
 		$this->api_service->request(
28 28
 			'PUT',
29 29
 			'/accounts/me/include-excludes',
30
-			array( 'content-type' => 'application/json' ),
31
-			wp_json_encode( $payload )
30
+			array('content-type' => 'application/json'),
31
+			wp_json_encode($payload)
32 32
 		);
33 33
 	}
34 34
 
@@ -38,23 +38,23 @@  discard block
 block discarded – undo
38 38
 	 * @param $url
39 39
 	 * @param $value
40 40
 	 */
41
-	public function send_event( $url, $value ) {
41
+	public function send_event($url, $value) {
42 42
 		$this->api_service->request(
43 43
 			'POST',
44 44
 			'/plugin/events',
45
-			array( 'content-type' => 'application/json' ),
45
+			array('content-type' => 'application/json'),
46 46
 			wp_json_encode(
47 47
 				array(
48 48
 					'source' => 'include-exclude',
49 49
 					'args'   => array(
50
-						array( 'value' => $value ),
50
+						array('value' => $value),
51 51
 					),
52 52
 					'url'    => $url,
53 53
 				)
54 54
 			),
55 55
 			0.001,
56 56
 			null,
57
-			array( 'blocking' => false )
57
+			array('blocking' => false)
58 58
 		);
59 59
 	}
60 60
 
Please login to merge, or discard this patch.
src/modules/include-exclude-push-config/load.php 2 patches
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -6,22 +6,22 @@  discard block
 block discarded – undo
6 6
 use Wordlift\Modules\Include_Exclude_Push_Config\Include_Exclude_API;
7 7
 
8 8
 if ( ! defined( 'ABSPATH' ) ) {
9
-	exit;
9
+    exit;
10 10
 }
11 11
 
12 12
 // Bail out if the feature isn't enabled.
13 13
 if ( ! apply_filters( 'wl_feature__enable__include-exclude', false ) ) { // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 // Autoloader for dependencies.
18 18
 if ( file_exists( __DIR__ . '/third-party/vendor/scoper-autoload.php' ) ) {
19
-	require __DIR__ . '/third-party/vendor/scoper-autoload.php';
19
+    require __DIR__ . '/third-party/vendor/scoper-autoload.php';
20 20
 }
21 21
 
22 22
 // Autoloader for plugin itself.
23 23
 if ( file_exists( __DIR__ . '/includes/vendor/autoload.php' ) ) {
24
-	require __DIR__ . '/includes/vendor/autoload.php';
24
+    require __DIR__ . '/includes/vendor/autoload.php';
25 25
 }
26 26
 
27 27
 /**
@@ -32,24 +32,24 @@  discard block
 block discarded – undo
32 32
  * @return array|array[]
33 33
  */
34 34
 function __wl_include_exclude_get_payload( $config ) {
35
-	// Set the default data.
36
-	if ( ! is_array( $config ) || empty( $config ) || ! isset( $config['include_exclude'] ) || ! isset( $config['urls'] ) ) {
37
-		$config = array(
38
-			'include_exclude' => 'exclude',
39
-			'urls'            => '',
40
-		);
41
-	}
42
-
43
-	// Map the configuration to the payload.
44
-	return array_map(
45
-		function ( $item ) use ( $config ) {
46
-			return array(
47
-				'url'  => ( 1 === preg_match( '@^https?://.*$@', $item ) ? $item : get_home_url( null, $item ) ),
48
-				'flag' => strtoupper( $config['include_exclude'] ),
49
-			);
50
-		},
51
-		array_filter( preg_split( '/[\r\n]+/', $config['urls'] ) )
52
-	);
35
+    // Set the default data.
36
+    if ( ! is_array( $config ) || empty( $config ) || ! isset( $config['include_exclude'] ) || ! isset( $config['urls'] ) ) {
37
+        $config = array(
38
+            'include_exclude' => 'exclude',
39
+            'urls'            => '',
40
+        );
41
+    }
42
+
43
+    // Map the configuration to the payload.
44
+    return array_map(
45
+        function ( $item ) use ( $config ) {
46
+            return array(
47
+                'url'  => ( 1 === preg_match( '@^https?://.*$@', $item ) ? $item : get_home_url( null, $item ) ),
48
+                'flag' => strtoupper( $config['include_exclude'] ),
49
+            );
50
+        },
51
+        array_filter( preg_split( '/[\r\n]+/', $config['urls'] ) )
52
+    );
53 53
 }
54 54
 
55 55
 /**
@@ -75,7 +75,7 @@  discard block
 block discarded – undo
75 75
 
76 76
     // Determine included and excluded URLs.
77 77
     $included = ('include' === strtolower($config['include_exclude'])) ? $urls_added : $urls_removed;
78
-	$excluded = ('include' === strtolower($config['include_exclude'])) ? $urls_removed : $urls_added;
78
+    $excluded = ('include' === strtolower($config['include_exclude'])) ? $urls_removed : $urls_added;
79 79
 
80 80
     // Check if filter type has changed.
81 81
     $filter_changed = strtolower( $config['include_exclude'] ) !== strtolower( $old_config['include_exclude'] );
@@ -100,24 +100,24 @@  discard block
 block discarded – undo
100 100
  * @throws Exception If the application fails to load the services configuration file or if the URL cannot be processed.
101 101
  */
102 102
 function __wl_include_exclude_load_service() {
103
-	// Load the service.
104
-	$container_builder = new ContainerBuilder();
105
-	$loader            = new YamlFileLoader( $container_builder, new FileLocator( __DIR__ ) );
106
-	$loader->load( 'services.yml' );
107
-	$container_builder->compile();
103
+    // Load the service.
104
+    $container_builder = new ContainerBuilder();
105
+    $loader            = new YamlFileLoader( $container_builder, new FileLocator( __DIR__ ) );
106
+    $loader->load( 'services.yml' );
107
+    $container_builder->compile();
108 108
 
109
-	return $container_builder->get( 'Wordlift\Modules\Include_Exclude_Push_Config\Include_Exclude_API' );
109
+    return $container_builder->get( 'Wordlift\Modules\Include_Exclude_Push_Config\Include_Exclude_API' );
110 110
 }
111 111
 
112 112
 /**
113 113
  * Save old config.
114 114
  */
115 115
 function __wl_save_old_config() {
116
-	// Get the current configuration.
117
-	$config = get_option( 'wl_exclude_include_urls_settings', array() );
116
+    // Get the current configuration.
117
+    $config = get_option( 'wl_exclude_include_urls_settings', array() );
118 118
 
119
-	// Save the current configuration to another option.
120
-	update_option( 'wl_exclude_include_urls_settings_old', $config );
119
+    // Save the current configuration to another option.
120
+    update_option( 'wl_exclude_include_urls_settings_old', $config );
121 121
 }
122 122
 
123 123
 /**
@@ -126,14 +126,14 @@  discard block
 block discarded – undo
126 126
  * @throws Exception If the application fails to load the services configuration file or if the URL cannot be processed.
127 127
  */
128 128
 function __wl_include_exclude_push_config() {
129
-	// Get the configuration.
130
-	$config = get_option( 'wl_exclude_include_urls_settings', array() );
129
+    // Get the configuration.
130
+    $config = get_option( 'wl_exclude_include_urls_settings', array() );
131 131
 
132
-	$payload = __wl_include_exclude_get_payload( $config );
132
+    $payload = __wl_include_exclude_get_payload( $config );
133 133
 
134
-	/** @var Include_Exclude_API $api */
135
-	$api = __wl_include_exclude_load_service();
136
-	$api->update( $payload );
134
+    /** @var Include_Exclude_API $api */
135
+    $api = __wl_include_exclude_load_service();
136
+    $api->update( $payload );
137 137
 }
138 138
 
139 139
 /**
@@ -142,23 +142,23 @@  discard block
 block discarded – undo
142 142
  * @throws Exception If the application fails to load the services configuration file or if the URL cannot be processed.
143 143
  */
144 144
 function __wl_include_exclude_event_update() {
145
-	// Get the configurations.
146
-	$config     = get_option( 'wl_exclude_include_urls_settings', array() );
147
-	$old_config = get_option( 'wl_exclude_include_urls_settings_old', array() );
148
-
149
-	// Get included and excluded URLs.
150
-	$urls = __wl_get_included_and_excluded_urls( $config, $old_config );
151
-
152
-	/** @var Include_Exclude_API $api */
153
-	$api = __wl_include_exclude_load_service();
154
-
155
-	// Call API method for each URL.
156
-	foreach ( $urls['included'] as $url ) {
157
-		$api->send_event( $url, 'include' );
158
-	}
159
-	foreach ( $urls['excluded'] as $url ) {
160
-		$api->send_event( $url, 'exclude' );
161
-	}
145
+    // Get the configurations.
146
+    $config     = get_option( 'wl_exclude_include_urls_settings', array() );
147
+    $old_config = get_option( 'wl_exclude_include_urls_settings_old', array() );
148
+
149
+    // Get included and excluded URLs.
150
+    $urls = __wl_get_included_and_excluded_urls( $config, $old_config );
151
+
152
+    /** @var Include_Exclude_API $api */
153
+    $api = __wl_include_exclude_load_service();
154
+
155
+    // Call API method for each URL.
156
+    foreach ( $urls['included'] as $url ) {
157
+        $api->send_event( $url, 'include' );
158
+    }
159
+    foreach ( $urls['excluded'] as $url ) {
160
+        $api->send_event( $url, 'exclude' );
161
+    }
162 162
 }
163 163
 
164 164
 /**
Please login to merge, or discard this patch.
Spacing   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -5,23 +5,23 @@  discard block
 block discarded – undo
5 5
 use Wordlift\Modules\Common\Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
6 6
 use Wordlift\Modules\Include_Exclude_Push_Config\Include_Exclude_API;
7 7
 
8
-if ( ! defined( 'ABSPATH' ) ) {
8
+if ( ! defined('ABSPATH')) {
9 9
 	exit;
10 10
 }
11 11
 
12 12
 // Bail out if the feature isn't enabled.
13
-if ( ! apply_filters( 'wl_feature__enable__include-exclude', false ) ) { // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
13
+if ( ! apply_filters('wl_feature__enable__include-exclude', false)) { // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
14 14
 	return;
15 15
 }
16 16
 
17 17
 // Autoloader for dependencies.
18
-if ( file_exists( __DIR__ . '/third-party/vendor/scoper-autoload.php' ) ) {
19
-	require __DIR__ . '/third-party/vendor/scoper-autoload.php';
18
+if (file_exists(__DIR__.'/third-party/vendor/scoper-autoload.php')) {
19
+	require __DIR__.'/third-party/vendor/scoper-autoload.php';
20 20
 }
21 21
 
22 22
 // Autoloader for plugin itself.
23
-if ( file_exists( __DIR__ . '/includes/vendor/autoload.php' ) ) {
24
-	require __DIR__ . '/includes/vendor/autoload.php';
23
+if (file_exists(__DIR__.'/includes/vendor/autoload.php')) {
24
+	require __DIR__.'/includes/vendor/autoload.php';
25 25
 }
26 26
 
27 27
 /**
@@ -31,9 +31,9 @@  discard block
 block discarded – undo
31 31
  *
32 32
  * @return array|array[]
33 33
  */
34
-function __wl_include_exclude_get_payload( $config ) {
34
+function __wl_include_exclude_get_payload($config) {
35 35
 	// Set the default data.
36
-	if ( ! is_array( $config ) || empty( $config ) || ! isset( $config['include_exclude'] ) || ! isset( $config['urls'] ) ) {
36
+	if ( ! is_array($config) || empty($config) || ! isset($config['include_exclude']) || ! isset($config['urls'])) {
37 37
 		$config = array(
38 38
 			'include_exclude' => 'exclude',
39 39
 			'urls'            => '',
@@ -42,13 +42,13 @@  discard block
 block discarded – undo
42 42
 
43 43
 	// Map the configuration to the payload.
44 44
 	return array_map(
45
-		function ( $item ) use ( $config ) {
45
+		function($item) use ($config) {
46 46
 			return array(
47
-				'url'  => ( 1 === preg_match( '@^https?://.*$@', $item ) ? $item : get_home_url( null, $item ) ),
48
-				'flag' => strtoupper( $config['include_exclude'] ),
47
+				'url'  => (1 === preg_match('@^https?://.*$@', $item) ? $item : get_home_url(null, $item)),
48
+				'flag' => strtoupper($config['include_exclude']),
49 49
 			);
50 50
 		},
51
-		array_filter( preg_split( '/[\r\n]+/', $config['urls'] ) )
51
+		array_filter(preg_split('/[\r\n]+/', $config['urls']))
52 52
 	);
53 53
 }
54 54
 
@@ -62,23 +62,23 @@  discard block
 block discarded – undo
62 62
  */
63 63
 function __wl_get_included_and_excluded_urls($config, $old_config) {
64 64
     // Get the payload for both new and old values:
65
-    $payload_new = __wl_include_exclude_get_payload( $config );
66
-    $payload_old = __wl_include_exclude_get_payload( $old_config );
65
+    $payload_new = __wl_include_exclude_get_payload($config);
66
+    $payload_old = __wl_include_exclude_get_payload($old_config);
67 67
 
68 68
     // Extract URLs from payloads.
69
-    $urls_new = array_column( $payload_new, 'url' );
70
-    $urls_old = array_column( $payload_old, 'url' );
69
+    $urls_new = array_column($payload_new, 'url');
70
+    $urls_old = array_column($payload_old, 'url');
71 71
 
72 72
     // Find added and removed URLs.
73
-    $urls_added   = array_diff( $urls_new, $urls_old );
74
-    $urls_removed = array_diff( $urls_old, $urls_new );
73
+    $urls_added   = array_diff($urls_new, $urls_old);
74
+    $urls_removed = array_diff($urls_old, $urls_new);
75 75
 
76 76
     // Determine included and excluded URLs.
77 77
     $included = ('include' === strtolower($config['include_exclude'])) ? $urls_added : $urls_removed;
78 78
 	$excluded = ('include' === strtolower($config['include_exclude'])) ? $urls_removed : $urls_added;
79 79
 
80 80
     // Check if filter type has changed.
81
-    $filter_changed = strtolower( $config['include_exclude'] ) !== strtolower( $old_config['include_exclude'] );
81
+    $filter_changed = strtolower($config['include_exclude']) !== strtolower($old_config['include_exclude']);
82 82
 
83 83
     if ($filter_changed) {
84 84
         // Filter type changed, so we reverse the logic of adding URLs to included and excluded arrays.
@@ -102,11 +102,11 @@  discard block
 block discarded – undo
102 102
 function __wl_include_exclude_load_service() {
103 103
 	// Load the service.
104 104
 	$container_builder = new ContainerBuilder();
105
-	$loader            = new YamlFileLoader( $container_builder, new FileLocator( __DIR__ ) );
106
-	$loader->load( 'services.yml' );
105
+	$loader            = new YamlFileLoader($container_builder, new FileLocator(__DIR__));
106
+	$loader->load('services.yml');
107 107
 	$container_builder->compile();
108 108
 
109
-	return $container_builder->get( 'Wordlift\Modules\Include_Exclude_Push_Config\Include_Exclude_API' );
109
+	return $container_builder->get('Wordlift\Modules\Include_Exclude_Push_Config\Include_Exclude_API');
110 110
 }
111 111
 
112 112
 /**
@@ -114,10 +114,10 @@  discard block
 block discarded – undo
114 114
  */
115 115
 function __wl_save_old_config() {
116 116
 	// Get the current configuration.
117
-	$config = get_option( 'wl_exclude_include_urls_settings', array() );
117
+	$config = get_option('wl_exclude_include_urls_settings', array());
118 118
 
119 119
 	// Save the current configuration to another option.
120
-	update_option( 'wl_exclude_include_urls_settings_old', $config );
120
+	update_option('wl_exclude_include_urls_settings_old', $config);
121 121
 }
122 122
 
123 123
 /**
@@ -127,13 +127,13 @@  discard block
 block discarded – undo
127 127
  */
128 128
 function __wl_include_exclude_push_config() {
129 129
 	// Get the configuration.
130
-	$config = get_option( 'wl_exclude_include_urls_settings', array() );
130
+	$config = get_option('wl_exclude_include_urls_settings', array());
131 131
 
132
-	$payload = __wl_include_exclude_get_payload( $config );
132
+	$payload = __wl_include_exclude_get_payload($config);
133 133
 
134 134
 	/** @var Include_Exclude_API $api */
135 135
 	$api = __wl_include_exclude_load_service();
136
-	$api->update( $payload );
136
+	$api->update($payload);
137 137
 }
138 138
 
139 139
 /**
@@ -143,32 +143,32 @@  discard block
 block discarded – undo
143 143
  */
144 144
 function __wl_include_exclude_event_update() {
145 145
 	// Get the configurations.
146
-	$config     = get_option( 'wl_exclude_include_urls_settings', array() );
147
-	$old_config = get_option( 'wl_exclude_include_urls_settings_old', array() );
146
+	$config     = get_option('wl_exclude_include_urls_settings', array());
147
+	$old_config = get_option('wl_exclude_include_urls_settings_old', array());
148 148
 
149 149
 	// Get included and excluded URLs.
150
-	$urls = __wl_get_included_and_excluded_urls( $config, $old_config );
150
+	$urls = __wl_get_included_and_excluded_urls($config, $old_config);
151 151
 
152 152
 	/** @var Include_Exclude_API $api */
153 153
 	$api = __wl_include_exclude_load_service();
154 154
 
155 155
 	// Call API method for each URL.
156
-	foreach ( $urls['included'] as $url ) {
157
-		$api->send_event( $url, 'include' );
156
+	foreach ($urls['included'] as $url) {
157
+		$api->send_event($url, 'include');
158 158
 	}
159
-	foreach ( $urls['excluded'] as $url ) {
160
-		$api->send_event( $url, 'exclude' );
159
+	foreach ($urls['excluded'] as $url) {
160
+		$api->send_event($url, 'exclude');
161 161
 	}
162 162
 }
163 163
 
164 164
 /**
165 165
  * Fires after the value of a specific option has been successfully updated.
166 166
  */
167
-add_action( 'update_option_wl_exclude_include_urls_settings', '__wl_include_exclude_push_config', 10, 0 );
168
-add_action( 'update_option_wl_exclude_include_urls_settings', '__wl_include_exclude_event_update', 15, 0 );
169
-add_action( 'update_option_wl_exclude_include_urls_settings', '__wl_save_old_config', 99, 0 );
167
+add_action('update_option_wl_exclude_include_urls_settings', '__wl_include_exclude_push_config', 10, 0);
168
+add_action('update_option_wl_exclude_include_urls_settings', '__wl_include_exclude_event_update', 15, 0);
169
+add_action('update_option_wl_exclude_include_urls_settings', '__wl_save_old_config', 99, 0);
170 170
 
171 171
 /**
172 172
  * Fires daily.
173 173
  */
174
-add_action( 'wl_daily_cron', '__wl_include_exclude_push_config', 10, 0 );
174
+add_action('wl_daily_cron', '__wl_include_exclude_push_config', 10, 0);
Please login to merge, or discard this patch.