@@ -15,26 +15,26 @@ |
||
15 | 15 | */ |
16 | 16 | interface Http_Client { |
17 | 17 | |
18 | - /** |
|
19 | - * Perform a `GET` operation to the specified `$url`. |
|
20 | - * |
|
21 | - * @param string $url The URL. |
|
22 | - * @param array $options An array of options to pass to WordPress {@link wp_remote_request} function, default: array(). |
|
23 | - * |
|
24 | - * @return \WP_Error|array The response or WP_Error on failure. |
|
25 | - * @since 1.0.0 |
|
26 | - */ |
|
27 | - public function get( $url, $options = array() ); |
|
18 | + /** |
|
19 | + * Perform a `GET` operation to the specified `$url`. |
|
20 | + * |
|
21 | + * @param string $url The URL. |
|
22 | + * @param array $options An array of options to pass to WordPress {@link wp_remote_request} function, default: array(). |
|
23 | + * |
|
24 | + * @return \WP_Error|array The response or WP_Error on failure. |
|
25 | + * @since 1.0.0 |
|
26 | + */ |
|
27 | + public function get( $url, $options = array() ); |
|
28 | 28 | |
29 | - /** |
|
30 | - * Perform a request to the specified `$url`. |
|
31 | - * |
|
32 | - * @param string $url The URL. |
|
33 | - * @param array $options An array of options to pass to WordPress {@link wp_remote_request} function, default: array(). |
|
34 | - * |
|
35 | - * @return \WP_Error|array The response or WP_Error on failure. |
|
36 | - * @since 1.0.0 |
|
37 | - */ |
|
38 | - public function request( $url, $options = array() ); |
|
29 | + /** |
|
30 | + * Perform a request to the specified `$url`. |
|
31 | + * |
|
32 | + * @param string $url The URL. |
|
33 | + * @param array $options An array of options to pass to WordPress {@link wp_remote_request} function, default: array(). |
|
34 | + * |
|
35 | + * @return \WP_Error|array The response or WP_Error on failure. |
|
36 | + * @since 1.0.0 |
|
37 | + */ |
|
38 | + public function request( $url, $options = array() ); |
|
39 | 39 | |
40 | 40 | } |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * @return \WP_Error|array The response or WP_Error on failure. |
25 | 25 | * @since 1.0.0 |
26 | 26 | */ |
27 | - public function get( $url, $options = array() ); |
|
27 | + public function get($url, $options = array()); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Perform a request to the specified `$url`. |
@@ -35,6 +35,6 @@ discard block |
||
35 | 35 | * @return \WP_Error|array The response or WP_Error on failure. |
36 | 36 | * @since 1.0.0 |
37 | 37 | */ |
38 | - public function request( $url, $options = array() ); |
|
38 | + public function request($url, $options = array()); |
|
39 | 39 | |
40 | 40 | } |
@@ -14,59 +14,59 @@ |
||
14 | 14 | use Wordlift_Entity_Type_Taxonomy_Service; |
15 | 15 | |
16 | 16 | class Entity_Type_Change_Handler { |
17 | - /** |
|
18 | - * @var Wordlift_Entity_Service |
|
19 | - */ |
|
20 | - private $entity_service; |
|
21 | - /** |
|
22 | - * @var Wordlift_Entity_Type_Service |
|
23 | - */ |
|
24 | - private $entity_type_service; |
|
25 | - |
|
26 | - /** |
|
27 | - * Entity_Type_Change_Handler constructor. |
|
28 | - * |
|
29 | - * @param $entity_service Wordlift_Entity_Service |
|
30 | - * @param $entity_type_service Wordlift_Entity_Type_Service |
|
31 | - */ |
|
32 | - public function __construct( $entity_service, $entity_type_service ) { |
|
33 | - |
|
34 | - $this->entity_service = $entity_service; |
|
35 | - |
|
36 | - $this->entity_type_service = $entity_type_service; |
|
37 | - |
|
38 | - // Takes a performance toll, do we really need it? |
|
39 | - // add_action( 'set_object_terms', array( $this, 'set_object_terms' ), 10, 4 ); |
|
40 | - } |
|
41 | - |
|
42 | - public function set_object_terms( $object_id, $terms, $tt_ids, $taxonomy ) { |
|
43 | - |
|
44 | - if ( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME !== $taxonomy ) { |
|
45 | - return; |
|
46 | - } |
|
47 | - |
|
48 | - if ( count( $terms ) !== 1 ) { |
|
49 | - // Unable to determine which entity type or multiple entity types. |
|
50 | - return; |
|
51 | - } |
|
52 | - |
|
53 | - // This taxonomy is registered only for post, so the object id would |
|
54 | - // be the post id. |
|
55 | - $types = $this->entity_type_service->get_names( $object_id ); |
|
56 | - |
|
57 | - if ( count( $types ) !== 1 ) { |
|
58 | - // Unable to determine which entity type or multiple entity types. |
|
59 | - return; |
|
60 | - } |
|
61 | - |
|
62 | - // Check if set to Article or one of its descendants |
|
63 | - if ( ! in_array( $types[0], Jsonld_Article_Wrapper::$article_types, true ) ) { |
|
64 | - return; |
|
65 | - } |
|
66 | - |
|
67 | - // clear the labels. |
|
68 | - $this->entity_service->set_alternative_labels( $object_id, array() ); |
|
69 | - |
|
70 | - } |
|
17 | + /** |
|
18 | + * @var Wordlift_Entity_Service |
|
19 | + */ |
|
20 | + private $entity_service; |
|
21 | + /** |
|
22 | + * @var Wordlift_Entity_Type_Service |
|
23 | + */ |
|
24 | + private $entity_type_service; |
|
25 | + |
|
26 | + /** |
|
27 | + * Entity_Type_Change_Handler constructor. |
|
28 | + * |
|
29 | + * @param $entity_service Wordlift_Entity_Service |
|
30 | + * @param $entity_type_service Wordlift_Entity_Type_Service |
|
31 | + */ |
|
32 | + public function __construct( $entity_service, $entity_type_service ) { |
|
33 | + |
|
34 | + $this->entity_service = $entity_service; |
|
35 | + |
|
36 | + $this->entity_type_service = $entity_type_service; |
|
37 | + |
|
38 | + // Takes a performance toll, do we really need it? |
|
39 | + // add_action( 'set_object_terms', array( $this, 'set_object_terms' ), 10, 4 ); |
|
40 | + } |
|
41 | + |
|
42 | + public function set_object_terms( $object_id, $terms, $tt_ids, $taxonomy ) { |
|
43 | + |
|
44 | + if ( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME !== $taxonomy ) { |
|
45 | + return; |
|
46 | + } |
|
47 | + |
|
48 | + if ( count( $terms ) !== 1 ) { |
|
49 | + // Unable to determine which entity type or multiple entity types. |
|
50 | + return; |
|
51 | + } |
|
52 | + |
|
53 | + // This taxonomy is registered only for post, so the object id would |
|
54 | + // be the post id. |
|
55 | + $types = $this->entity_type_service->get_names( $object_id ); |
|
56 | + |
|
57 | + if ( count( $types ) !== 1 ) { |
|
58 | + // Unable to determine which entity type or multiple entity types. |
|
59 | + return; |
|
60 | + } |
|
61 | + |
|
62 | + // Check if set to Article or one of its descendants |
|
63 | + if ( ! in_array( $types[0], Jsonld_Article_Wrapper::$article_types, true ) ) { |
|
64 | + return; |
|
65 | + } |
|
66 | + |
|
67 | + // clear the labels. |
|
68 | + $this->entity_service->set_alternative_labels( $object_id, array() ); |
|
69 | + |
|
70 | + } |
|
71 | 71 | |
72 | 72 | } |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | * @param $entity_service Wordlift_Entity_Service |
30 | 30 | * @param $entity_type_service Wordlift_Entity_Type_Service |
31 | 31 | */ |
32 | - public function __construct( $entity_service, $entity_type_service ) { |
|
32 | + public function __construct($entity_service, $entity_type_service) { |
|
33 | 33 | |
34 | 34 | $this->entity_service = $entity_service; |
35 | 35 | |
@@ -39,33 +39,33 @@ discard block |
||
39 | 39 | // add_action( 'set_object_terms', array( $this, 'set_object_terms' ), 10, 4 ); |
40 | 40 | } |
41 | 41 | |
42 | - public function set_object_terms( $object_id, $terms, $tt_ids, $taxonomy ) { |
|
42 | + public function set_object_terms($object_id, $terms, $tt_ids, $taxonomy) { |
|
43 | 43 | |
44 | - if ( Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME !== $taxonomy ) { |
|
44 | + if (Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME !== $taxonomy) { |
|
45 | 45 | return; |
46 | 46 | } |
47 | 47 | |
48 | - if ( count( $terms ) !== 1 ) { |
|
48 | + if (count($terms) !== 1) { |
|
49 | 49 | // Unable to determine which entity type or multiple entity types. |
50 | 50 | return; |
51 | 51 | } |
52 | 52 | |
53 | 53 | // This taxonomy is registered only for post, so the object id would |
54 | 54 | // be the post id. |
55 | - $types = $this->entity_type_service->get_names( $object_id ); |
|
55 | + $types = $this->entity_type_service->get_names($object_id); |
|
56 | 56 | |
57 | - if ( count( $types ) !== 1 ) { |
|
57 | + if (count($types) !== 1) { |
|
58 | 58 | // Unable to determine which entity type or multiple entity types. |
59 | 59 | return; |
60 | 60 | } |
61 | 61 | |
62 | 62 | // Check if set to Article or one of its descendants |
63 | - if ( ! in_array( $types[0], Jsonld_Article_Wrapper::$article_types, true ) ) { |
|
63 | + if ( ! in_array($types[0], Jsonld_Article_Wrapper::$article_types, true)) { |
|
64 | 64 | return; |
65 | 65 | } |
66 | 66 | |
67 | 67 | // clear the labels. |
68 | - $this->entity_service->set_alternative_labels( $object_id, array() ); |
|
68 | + $this->entity_service->set_alternative_labels($object_id, array()); |
|
69 | 69 | |
70 | 70 | } |
71 | 71 |
@@ -10,208 +10,208 @@ |
||
10 | 10 | |
11 | 11 | class Entity_Type_Setter { |
12 | 12 | |
13 | - const STARTER_PLAN = 'entity-types-starter'; |
|
14 | - |
|
15 | - const PROFESSIONAL_PLAN = 'entity-types-professional'; |
|
16 | - |
|
17 | - const BUSINESS_PLAN = 'entity-types-business'; |
|
18 | - |
|
19 | - public function __construct() { |
|
20 | - add_action( |
|
21 | - 'wl_feature__change__entity-types-starter', |
|
22 | - array( |
|
23 | - $this, |
|
24 | - 'wl_entity_types_feature_changed', |
|
25 | - ), |
|
26 | - 10, |
|
27 | - 3 |
|
28 | - ); |
|
29 | - add_action( |
|
30 | - 'wl_feature__change__entity-types-professional', |
|
31 | - array( |
|
32 | - $this, |
|
33 | - 'wl_entity_types_feature_changed', |
|
34 | - ), |
|
35 | - 10, |
|
36 | - 3 |
|
37 | - ); |
|
38 | - add_action( |
|
39 | - 'wl_feature__change__entity-types-business', |
|
40 | - array( |
|
41 | - $this, |
|
42 | - 'wl_entity_types_feature_changed', |
|
43 | - ), |
|
44 | - 10, |
|
45 | - 3 |
|
46 | - ); |
|
47 | - } |
|
48 | - |
|
49 | - public function wl_entity_types_feature_changed( $new_value, $old_value, $feature_slug ) { |
|
50 | - |
|
51 | - // If the entity types is not set by server, then return early. |
|
52 | - if ( ! $new_value ) { |
|
53 | - return; |
|
54 | - } |
|
55 | - |
|
56 | - $entity_types_data = self::get_entity_types_by_feature_flag( $feature_slug ); |
|
57 | - |
|
58 | - // If we dont have entity types returned, then dont reset the entity types, return early. |
|
59 | - if ( ! $entity_types_data ) { |
|
60 | - return; |
|
61 | - } |
|
62 | - // Repopulate the ones returned by package type. |
|
63 | - foreach ( $entity_types_data as $entity_type_data ) { |
|
64 | - |
|
65 | - $schema_label = $entity_type_data['label']; |
|
66 | - |
|
67 | - $term_exists = get_term_by( 'name', $schema_label, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME ) instanceof \WP_Term; |
|
68 | - |
|
69 | - if ( $term_exists ) { |
|
70 | - // Dont create term if it already exists. |
|
71 | - continue; |
|
72 | - } |
|
73 | - |
|
74 | - $term_data = wp_insert_term( |
|
75 | - $schema_label, |
|
76 | - Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, |
|
77 | - array( |
|
78 | - 'description' => $entity_type_data['description'], |
|
79 | - 'slug' => $entity_type_data['slug'], |
|
80 | - ) |
|
81 | - ); |
|
82 | - |
|
83 | - $term_id = $term_data['term_id']; |
|
84 | - |
|
85 | - update_term_meta( $term_id, '_wl_uri', 'http://schema.org/' . $schema_label ); |
|
86 | - update_term_meta( $term_id, '_wl_name', $schema_label ); |
|
87 | - } |
|
88 | - |
|
89 | - } |
|
90 | - |
|
91 | - public static function get_starter_entity_types() { |
|
92 | - return array( |
|
93 | - array( |
|
94 | - 'label' => 'Person', |
|
95 | - 'description' => 'A person (or a music artist).', |
|
96 | - 'slug' => 'person', |
|
97 | - ), |
|
98 | - array( |
|
99 | - 'label' => 'Thing', |
|
100 | - 'description' => 'A generic thing (something that doesn\'t fit in the previous definitions.', |
|
101 | - 'slug' => 'thing', |
|
102 | - ), |
|
103 | - |
|
104 | - array( |
|
105 | - 'label' => 'Place', |
|
106 | - 'description' => 'A place.', |
|
107 | - 'slug' => 'place', |
|
108 | - ), |
|
109 | - |
|
110 | - array( |
|
111 | - 'label' => 'CreativeWork', |
|
112 | - 'description' => 'A creative work (or a Music Album).', |
|
113 | - 'slug' => 'creative-work', |
|
114 | - ), |
|
115 | - array( |
|
116 | - 'label' => 'Organization', |
|
117 | - 'description' => 'An organization, including a government or a newspaper.', |
|
118 | - 'slug' => 'organization', |
|
119 | - ), |
|
120 | - |
|
121 | - array( |
|
122 | - 'label' => 'Article', |
|
123 | - 'description' => 'An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all.', |
|
124 | - 'slug' => 'article', |
|
125 | - ), |
|
126 | - |
|
127 | - array( |
|
128 | - 'label' => 'WebSite', |
|
129 | - 'description' => 'A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.', |
|
130 | - 'slug' => 'web-site', |
|
131 | - ), |
|
132 | - |
|
133 | - array( |
|
134 | - 'label' => 'NewsArticle', |
|
135 | - 'description' => 'A NewsArticle is an article whose content reports news, or provides background context and supporting materials for understanding the news.', |
|
136 | - 'slug' => 'news-article', |
|
137 | - ), |
|
138 | - |
|
139 | - array( |
|
140 | - 'label' => 'AboutPage', |
|
141 | - 'description' => 'An About page.', |
|
142 | - 'slug' => 'about-page', |
|
143 | - ), |
|
144 | - |
|
145 | - array( |
|
146 | - 'label' => 'ContactPage', |
|
147 | - 'description' => 'A Contact Page.', |
|
148 | - 'slug' => 'contact-page', |
|
149 | - ), |
|
150 | - |
|
151 | - ); |
|
152 | - } |
|
153 | - |
|
154 | - public static function get_professional_entity_types() { |
|
155 | - return array( |
|
156 | - |
|
157 | - array( |
|
158 | - 'label' => 'FAQPage', |
|
159 | - 'description' => 'A FAQPage is a WebPage presenting one or more "Frequently asked questions".', |
|
160 | - 'slug' => 'faq-page', |
|
161 | - ), |
|
162 | - array( |
|
163 | - 'label' => 'LocalBusiness', |
|
164 | - 'description' => 'A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc.', |
|
165 | - 'slug' => 'local-business', |
|
166 | - |
|
167 | - ), |
|
168 | - array( |
|
169 | - 'label' => 'Recipe', |
|
170 | - 'description' => 'A recipe', |
|
171 | - 'slug' => 'recipe', |
|
172 | - ), |
|
173 | - array( |
|
174 | - 'label' => 'PodcastEpisode', |
|
175 | - 'description' => 'A single episode of a podcast series.', |
|
176 | - 'slug' => 'podcast-episode', |
|
177 | - ), |
|
178 | - array( |
|
179 | - 'label' => 'Course', |
|
180 | - 'description' => 'A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study.', |
|
181 | - 'slug' => 'course', |
|
182 | - ), |
|
183 | - array( |
|
184 | - 'label' => 'Event', |
|
185 | - 'description' => 'An event happening at a certain time and location, such as a concert, lecture, or festival.', |
|
186 | - 'slug' => 'event', |
|
187 | - ), |
|
188 | - array( |
|
189 | - 'label' => 'Review', |
|
190 | - 'description' => 'A review of an item - for example, of a restaurant, movie, or store.', |
|
191 | - 'slug' => 'review', |
|
192 | - ), |
|
193 | - |
|
194 | - ); |
|
195 | - } |
|
196 | - |
|
197 | - private static function get_entity_types_by_feature_flag( $package_type ) { |
|
198 | - |
|
199 | - switch ( $package_type ) { |
|
200 | - case self::STARTER_PLAN: |
|
201 | - return self::get_starter_entity_types(); |
|
202 | - case self::BUSINESS_PLAN: |
|
203 | - case self::PROFESSIONAL_PLAN: |
|
204 | - // We return same entity types for professional and business plans. |
|
205 | - // Business plan should have sync schema ui feature enabled, to sync all the entity types. |
|
206 | - return array_merge( |
|
207 | - self::get_starter_entity_types(), |
|
208 | - self::get_professional_entity_types() |
|
209 | - ); |
|
210 | - default: |
|
211 | - return array(); |
|
212 | - |
|
213 | - } |
|
214 | - |
|
215 | - } |
|
13 | + const STARTER_PLAN = 'entity-types-starter'; |
|
14 | + |
|
15 | + const PROFESSIONAL_PLAN = 'entity-types-professional'; |
|
16 | + |
|
17 | + const BUSINESS_PLAN = 'entity-types-business'; |
|
18 | + |
|
19 | + public function __construct() { |
|
20 | + add_action( |
|
21 | + 'wl_feature__change__entity-types-starter', |
|
22 | + array( |
|
23 | + $this, |
|
24 | + 'wl_entity_types_feature_changed', |
|
25 | + ), |
|
26 | + 10, |
|
27 | + 3 |
|
28 | + ); |
|
29 | + add_action( |
|
30 | + 'wl_feature__change__entity-types-professional', |
|
31 | + array( |
|
32 | + $this, |
|
33 | + 'wl_entity_types_feature_changed', |
|
34 | + ), |
|
35 | + 10, |
|
36 | + 3 |
|
37 | + ); |
|
38 | + add_action( |
|
39 | + 'wl_feature__change__entity-types-business', |
|
40 | + array( |
|
41 | + $this, |
|
42 | + 'wl_entity_types_feature_changed', |
|
43 | + ), |
|
44 | + 10, |
|
45 | + 3 |
|
46 | + ); |
|
47 | + } |
|
48 | + |
|
49 | + public function wl_entity_types_feature_changed( $new_value, $old_value, $feature_slug ) { |
|
50 | + |
|
51 | + // If the entity types is not set by server, then return early. |
|
52 | + if ( ! $new_value ) { |
|
53 | + return; |
|
54 | + } |
|
55 | + |
|
56 | + $entity_types_data = self::get_entity_types_by_feature_flag( $feature_slug ); |
|
57 | + |
|
58 | + // If we dont have entity types returned, then dont reset the entity types, return early. |
|
59 | + if ( ! $entity_types_data ) { |
|
60 | + return; |
|
61 | + } |
|
62 | + // Repopulate the ones returned by package type. |
|
63 | + foreach ( $entity_types_data as $entity_type_data ) { |
|
64 | + |
|
65 | + $schema_label = $entity_type_data['label']; |
|
66 | + |
|
67 | + $term_exists = get_term_by( 'name', $schema_label, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME ) instanceof \WP_Term; |
|
68 | + |
|
69 | + if ( $term_exists ) { |
|
70 | + // Dont create term if it already exists. |
|
71 | + continue; |
|
72 | + } |
|
73 | + |
|
74 | + $term_data = wp_insert_term( |
|
75 | + $schema_label, |
|
76 | + Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME, |
|
77 | + array( |
|
78 | + 'description' => $entity_type_data['description'], |
|
79 | + 'slug' => $entity_type_data['slug'], |
|
80 | + ) |
|
81 | + ); |
|
82 | + |
|
83 | + $term_id = $term_data['term_id']; |
|
84 | + |
|
85 | + update_term_meta( $term_id, '_wl_uri', 'http://schema.org/' . $schema_label ); |
|
86 | + update_term_meta( $term_id, '_wl_name', $schema_label ); |
|
87 | + } |
|
88 | + |
|
89 | + } |
|
90 | + |
|
91 | + public static function get_starter_entity_types() { |
|
92 | + return array( |
|
93 | + array( |
|
94 | + 'label' => 'Person', |
|
95 | + 'description' => 'A person (or a music artist).', |
|
96 | + 'slug' => 'person', |
|
97 | + ), |
|
98 | + array( |
|
99 | + 'label' => 'Thing', |
|
100 | + 'description' => 'A generic thing (something that doesn\'t fit in the previous definitions.', |
|
101 | + 'slug' => 'thing', |
|
102 | + ), |
|
103 | + |
|
104 | + array( |
|
105 | + 'label' => 'Place', |
|
106 | + 'description' => 'A place.', |
|
107 | + 'slug' => 'place', |
|
108 | + ), |
|
109 | + |
|
110 | + array( |
|
111 | + 'label' => 'CreativeWork', |
|
112 | + 'description' => 'A creative work (or a Music Album).', |
|
113 | + 'slug' => 'creative-work', |
|
114 | + ), |
|
115 | + array( |
|
116 | + 'label' => 'Organization', |
|
117 | + 'description' => 'An organization, including a government or a newspaper.', |
|
118 | + 'slug' => 'organization', |
|
119 | + ), |
|
120 | + |
|
121 | + array( |
|
122 | + 'label' => 'Article', |
|
123 | + 'description' => 'An article, such as a news article or piece of investigative report. Newspapers and magazines have articles of many different types and this is intended to cover them all.', |
|
124 | + 'slug' => 'article', |
|
125 | + ), |
|
126 | + |
|
127 | + array( |
|
128 | + 'label' => 'WebSite', |
|
129 | + 'description' => 'A WebSite is a set of related web pages and other items typically served from a single web domain and accessible via URLs.', |
|
130 | + 'slug' => 'web-site', |
|
131 | + ), |
|
132 | + |
|
133 | + array( |
|
134 | + 'label' => 'NewsArticle', |
|
135 | + 'description' => 'A NewsArticle is an article whose content reports news, or provides background context and supporting materials for understanding the news.', |
|
136 | + 'slug' => 'news-article', |
|
137 | + ), |
|
138 | + |
|
139 | + array( |
|
140 | + 'label' => 'AboutPage', |
|
141 | + 'description' => 'An About page.', |
|
142 | + 'slug' => 'about-page', |
|
143 | + ), |
|
144 | + |
|
145 | + array( |
|
146 | + 'label' => 'ContactPage', |
|
147 | + 'description' => 'A Contact Page.', |
|
148 | + 'slug' => 'contact-page', |
|
149 | + ), |
|
150 | + |
|
151 | + ); |
|
152 | + } |
|
153 | + |
|
154 | + public static function get_professional_entity_types() { |
|
155 | + return array( |
|
156 | + |
|
157 | + array( |
|
158 | + 'label' => 'FAQPage', |
|
159 | + 'description' => 'A FAQPage is a WebPage presenting one or more "Frequently asked questions".', |
|
160 | + 'slug' => 'faq-page', |
|
161 | + ), |
|
162 | + array( |
|
163 | + 'label' => 'LocalBusiness', |
|
164 | + 'description' => 'A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc.', |
|
165 | + 'slug' => 'local-business', |
|
166 | + |
|
167 | + ), |
|
168 | + array( |
|
169 | + 'label' => 'Recipe', |
|
170 | + 'description' => 'A recipe', |
|
171 | + 'slug' => 'recipe', |
|
172 | + ), |
|
173 | + array( |
|
174 | + 'label' => 'PodcastEpisode', |
|
175 | + 'description' => 'A single episode of a podcast series.', |
|
176 | + 'slug' => 'podcast-episode', |
|
177 | + ), |
|
178 | + array( |
|
179 | + 'label' => 'Course', |
|
180 | + 'description' => 'A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study.', |
|
181 | + 'slug' => 'course', |
|
182 | + ), |
|
183 | + array( |
|
184 | + 'label' => 'Event', |
|
185 | + 'description' => 'An event happening at a certain time and location, such as a concert, lecture, or festival.', |
|
186 | + 'slug' => 'event', |
|
187 | + ), |
|
188 | + array( |
|
189 | + 'label' => 'Review', |
|
190 | + 'description' => 'A review of an item - for example, of a restaurant, movie, or store.', |
|
191 | + 'slug' => 'review', |
|
192 | + ), |
|
193 | + |
|
194 | + ); |
|
195 | + } |
|
196 | + |
|
197 | + private static function get_entity_types_by_feature_flag( $package_type ) { |
|
198 | + |
|
199 | + switch ( $package_type ) { |
|
200 | + case self::STARTER_PLAN: |
|
201 | + return self::get_starter_entity_types(); |
|
202 | + case self::BUSINESS_PLAN: |
|
203 | + case self::PROFESSIONAL_PLAN: |
|
204 | + // We return same entity types for professional and business plans. |
|
205 | + // Business plan should have sync schema ui feature enabled, to sync all the entity types. |
|
206 | + return array_merge( |
|
207 | + self::get_starter_entity_types(), |
|
208 | + self::get_professional_entity_types() |
|
209 | + ); |
|
210 | + default: |
|
211 | + return array(); |
|
212 | + |
|
213 | + } |
|
214 | + |
|
215 | + } |
|
216 | 216 | |
217 | 217 | } |
@@ -46,27 +46,27 @@ discard block |
||
46 | 46 | ); |
47 | 47 | } |
48 | 48 | |
49 | - public function wl_entity_types_feature_changed( $new_value, $old_value, $feature_slug ) { |
|
49 | + public function wl_entity_types_feature_changed($new_value, $old_value, $feature_slug) { |
|
50 | 50 | |
51 | 51 | // If the entity types is not set by server, then return early. |
52 | - if ( ! $new_value ) { |
|
52 | + if ( ! $new_value) { |
|
53 | 53 | return; |
54 | 54 | } |
55 | 55 | |
56 | - $entity_types_data = self::get_entity_types_by_feature_flag( $feature_slug ); |
|
56 | + $entity_types_data = self::get_entity_types_by_feature_flag($feature_slug); |
|
57 | 57 | |
58 | 58 | // If we dont have entity types returned, then dont reset the entity types, return early. |
59 | - if ( ! $entity_types_data ) { |
|
59 | + if ( ! $entity_types_data) { |
|
60 | 60 | return; |
61 | 61 | } |
62 | 62 | // Repopulate the ones returned by package type. |
63 | - foreach ( $entity_types_data as $entity_type_data ) { |
|
63 | + foreach ($entity_types_data as $entity_type_data) { |
|
64 | 64 | |
65 | 65 | $schema_label = $entity_type_data['label']; |
66 | 66 | |
67 | - $term_exists = get_term_by( 'name', $schema_label, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME ) instanceof \WP_Term; |
|
67 | + $term_exists = get_term_by('name', $schema_label, Wordlift_Entity_Type_Taxonomy_Service::TAXONOMY_NAME) instanceof \WP_Term; |
|
68 | 68 | |
69 | - if ( $term_exists ) { |
|
69 | + if ($term_exists) { |
|
70 | 70 | // Dont create term if it already exists. |
71 | 71 | continue; |
72 | 72 | } |
@@ -82,8 +82,8 @@ discard block |
||
82 | 82 | |
83 | 83 | $term_id = $term_data['term_id']; |
84 | 84 | |
85 | - update_term_meta( $term_id, '_wl_uri', 'http://schema.org/' . $schema_label ); |
|
86 | - update_term_meta( $term_id, '_wl_name', $schema_label ); |
|
85 | + update_term_meta($term_id, '_wl_uri', 'http://schema.org/'.$schema_label); |
|
86 | + update_term_meta($term_id, '_wl_name', $schema_label); |
|
87 | 87 | } |
88 | 88 | |
89 | 89 | } |
@@ -194,9 +194,9 @@ discard block |
||
194 | 194 | ); |
195 | 195 | } |
196 | 196 | |
197 | - private static function get_entity_types_by_feature_flag( $package_type ) { |
|
197 | + private static function get_entity_types_by_feature_flag($package_type) { |
|
198 | 198 | |
199 | - switch ( $package_type ) { |
|
199 | + switch ($package_type) { |
|
200 | 200 | case self::STARTER_PLAN: |
201 | 201 | return self::get_starter_entity_types(); |
202 | 202 | case self::BUSINESS_PLAN: |
@@ -7,152 +7,152 @@ |
||
7 | 7 | |
8 | 8 | class Default_Api_Service implements Api_Service, Api_Service_Ext { |
9 | 9 | |
10 | - /** |
|
11 | - * @var string |
|
12 | - */ |
|
13 | - private $wordlift_key; |
|
14 | - /** |
|
15 | - * @var int |
|
16 | - */ |
|
17 | - private $timeout; |
|
18 | - |
|
19 | - /** |
|
20 | - * @var string |
|
21 | - */ |
|
22 | - private $user_agent; |
|
23 | - |
|
24 | - /** |
|
25 | - * @var array |
|
26 | - */ |
|
27 | - private $headers; |
|
28 | - /** |
|
29 | - * @var string |
|
30 | - */ |
|
31 | - private $base_url; |
|
32 | - |
|
33 | - /** |
|
34 | - * @var \Wordlift_Log_Service |
|
35 | - */ |
|
36 | - private $log; |
|
37 | - |
|
38 | - /** |
|
39 | - * Default_Api_Service constructor. |
|
40 | - * |
|
41 | - * @param string $base_url |
|
42 | - * @param int $timeout |
|
43 | - * @param string $user_agent |
|
44 | - * @param string $wordlift_key |
|
45 | - */ |
|
46 | - protected function __construct( $base_url, $timeout, $user_agent, $wordlift_key ) { |
|
47 | - |
|
48 | - $this->log = \Wordlift_Log_Service::get_logger( get_class() ); |
|
49 | - |
|
50 | - $this->base_url = untrailingslashit( $base_url ); |
|
51 | - $this->timeout = $timeout; |
|
52 | - $this->user_agent = $user_agent; |
|
53 | - $this->wordlift_key = $wordlift_key; |
|
54 | - |
|
55 | - $this->headers = array( |
|
56 | - 'Content-Type' => 'application/json', |
|
57 | - 'Authorization' => "Key $wordlift_key", |
|
58 | - 'Expect' => '', |
|
59 | - ); |
|
60 | - |
|
61 | - self::$instance = $this; |
|
62 | - } |
|
63 | - |
|
64 | - private static $instance; |
|
65 | - |
|
66 | - /** |
|
67 | - * @return Default_Api_Service |
|
68 | - */ |
|
69 | - public static function get_instance() { |
|
70 | - if ( ! isset( self::$instance ) ) { |
|
71 | - self::$instance = new self( |
|
72 | - apply_filters( 'wl_api_base_url', WL_CONFIG_WORDLIFT_API_URL_DEFAULT_VALUE ), |
|
73 | - 60, |
|
74 | - User_Agent::get_user_agent(), |
|
75 | - Wordlift_Configuration_Service::get_instance()->get_key() |
|
76 | - ); |
|
77 | - } |
|
78 | - |
|
79 | - return self::$instance; |
|
80 | - } |
|
81 | - |
|
82 | - public function request( $method, $path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array() ) { |
|
83 | - |
|
84 | - // Get the timeout for this request. |
|
85 | - $request_timeout = isset( $timeout ) ? $timeout : $this->timeout; |
|
86 | - |
|
87 | - // Set the time limit if lesser than our request timeout. |
|
88 | - $max_execution_time = ini_get( 'max_execution_time' ); |
|
89 | - if ( ! ( defined( 'WP_CLI' ) && WP_CLI ) |
|
90 | - && ( 0 !== intval( $max_execution_time ) ) |
|
91 | - && ( $max_execution_time < $request_timeout ) ) { |
|
92 | - // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged |
|
93 | - @set_time_limit( $request_timeout ); |
|
94 | - } |
|
95 | - |
|
96 | - $request_url = $this->base_url . $path; |
|
97 | - // Create the request args in the following order: |
|
98 | - // 1. use `$args` as base if provided. |
|
99 | - // 2. set the custom timeout if provided. |
|
100 | - // 3. set the custom user-agent if provided. |
|
101 | - // 4. merge the API headers to the provided headers. |
|
102 | - // 5. add the body. |
|
103 | - // |
|
104 | - // In this way the user can fully control the request if wanted (using `$args`) and we can add our defaults. |
|
105 | - $request_args = apply_filters( |
|
106 | - 'wl_api_service__request', |
|
107 | - $args + array( |
|
108 | - 'method' => $method, |
|
109 | - 'timeout' => $request_timeout, |
|
110 | - 'user-agent' => isset( $user_agent ) ? $user_agent : $this->user_agent, |
|
111 | - 'headers' => $headers + $this->headers + Api_Headers_Service::get_instance()->get_wp_headers(), |
|
112 | - 'body' => $body, |
|
113 | - ) |
|
114 | - ); |
|
115 | - |
|
116 | - /** |
|
117 | - * Allow 3rd parties to process the response. |
|
118 | - */ |
|
119 | - $response = apply_filters( |
|
120 | - 'wl_api_service__response', |
|
121 | - wp_remote_request( $request_url, $request_args ), |
|
122 | - $request_url, |
|
123 | - $request_args |
|
124 | - ); |
|
125 | - |
|
126 | - if ( defined( 'WL_DEBUG' ) && WL_DEBUG ) { |
|
127 | - $this->log->trace( |
|
128 | - "=== REQUEST ===========================\n" |
|
129 | - . "=== URL: $request_url ===========================\n" |
|
130 | - // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_var_export |
|
131 | - . var_export( $request_args, true ) |
|
132 | - . "=== RESPONSE ===========================\n" |
|
133 | - // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_var_export |
|
134 | - . var_export( $response, true ) |
|
135 | - ); |
|
136 | - } |
|
137 | - |
|
138 | - return new Response( $response ); |
|
139 | - } |
|
140 | - |
|
141 | - public function get( $path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array() ) { |
|
142 | - |
|
143 | - return $this->request( 'GET', $path, $headers, $body, $timeout, $user_agent, $args ); |
|
144 | - } |
|
145 | - |
|
146 | - public function get_base_url() { |
|
147 | - return $this->base_url; |
|
148 | - } |
|
149 | - |
|
150 | - /** |
|
151 | - * @return Me_Response |
|
152 | - * @throws Exception when an error occurs. |
|
153 | - */ |
|
154 | - public function me() { |
|
155 | - return json_decode( $this->get( '/me' )->get_body() ); |
|
156 | - } |
|
10 | + /** |
|
11 | + * @var string |
|
12 | + */ |
|
13 | + private $wordlift_key; |
|
14 | + /** |
|
15 | + * @var int |
|
16 | + */ |
|
17 | + private $timeout; |
|
18 | + |
|
19 | + /** |
|
20 | + * @var string |
|
21 | + */ |
|
22 | + private $user_agent; |
|
23 | + |
|
24 | + /** |
|
25 | + * @var array |
|
26 | + */ |
|
27 | + private $headers; |
|
28 | + /** |
|
29 | + * @var string |
|
30 | + */ |
|
31 | + private $base_url; |
|
32 | + |
|
33 | + /** |
|
34 | + * @var \Wordlift_Log_Service |
|
35 | + */ |
|
36 | + private $log; |
|
37 | + |
|
38 | + /** |
|
39 | + * Default_Api_Service constructor. |
|
40 | + * |
|
41 | + * @param string $base_url |
|
42 | + * @param int $timeout |
|
43 | + * @param string $user_agent |
|
44 | + * @param string $wordlift_key |
|
45 | + */ |
|
46 | + protected function __construct( $base_url, $timeout, $user_agent, $wordlift_key ) { |
|
47 | + |
|
48 | + $this->log = \Wordlift_Log_Service::get_logger( get_class() ); |
|
49 | + |
|
50 | + $this->base_url = untrailingslashit( $base_url ); |
|
51 | + $this->timeout = $timeout; |
|
52 | + $this->user_agent = $user_agent; |
|
53 | + $this->wordlift_key = $wordlift_key; |
|
54 | + |
|
55 | + $this->headers = array( |
|
56 | + 'Content-Type' => 'application/json', |
|
57 | + 'Authorization' => "Key $wordlift_key", |
|
58 | + 'Expect' => '', |
|
59 | + ); |
|
60 | + |
|
61 | + self::$instance = $this; |
|
62 | + } |
|
63 | + |
|
64 | + private static $instance; |
|
65 | + |
|
66 | + /** |
|
67 | + * @return Default_Api_Service |
|
68 | + */ |
|
69 | + public static function get_instance() { |
|
70 | + if ( ! isset( self::$instance ) ) { |
|
71 | + self::$instance = new self( |
|
72 | + apply_filters( 'wl_api_base_url', WL_CONFIG_WORDLIFT_API_URL_DEFAULT_VALUE ), |
|
73 | + 60, |
|
74 | + User_Agent::get_user_agent(), |
|
75 | + Wordlift_Configuration_Service::get_instance()->get_key() |
|
76 | + ); |
|
77 | + } |
|
78 | + |
|
79 | + return self::$instance; |
|
80 | + } |
|
81 | + |
|
82 | + public function request( $method, $path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array() ) { |
|
83 | + |
|
84 | + // Get the timeout for this request. |
|
85 | + $request_timeout = isset( $timeout ) ? $timeout : $this->timeout; |
|
86 | + |
|
87 | + // Set the time limit if lesser than our request timeout. |
|
88 | + $max_execution_time = ini_get( 'max_execution_time' ); |
|
89 | + if ( ! ( defined( 'WP_CLI' ) && WP_CLI ) |
|
90 | + && ( 0 !== intval( $max_execution_time ) ) |
|
91 | + && ( $max_execution_time < $request_timeout ) ) { |
|
92 | + // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged |
|
93 | + @set_time_limit( $request_timeout ); |
|
94 | + } |
|
95 | + |
|
96 | + $request_url = $this->base_url . $path; |
|
97 | + // Create the request args in the following order: |
|
98 | + // 1. use `$args` as base if provided. |
|
99 | + // 2. set the custom timeout if provided. |
|
100 | + // 3. set the custom user-agent if provided. |
|
101 | + // 4. merge the API headers to the provided headers. |
|
102 | + // 5. add the body. |
|
103 | + // |
|
104 | + // In this way the user can fully control the request if wanted (using `$args`) and we can add our defaults. |
|
105 | + $request_args = apply_filters( |
|
106 | + 'wl_api_service__request', |
|
107 | + $args + array( |
|
108 | + 'method' => $method, |
|
109 | + 'timeout' => $request_timeout, |
|
110 | + 'user-agent' => isset( $user_agent ) ? $user_agent : $this->user_agent, |
|
111 | + 'headers' => $headers + $this->headers + Api_Headers_Service::get_instance()->get_wp_headers(), |
|
112 | + 'body' => $body, |
|
113 | + ) |
|
114 | + ); |
|
115 | + |
|
116 | + /** |
|
117 | + * Allow 3rd parties to process the response. |
|
118 | + */ |
|
119 | + $response = apply_filters( |
|
120 | + 'wl_api_service__response', |
|
121 | + wp_remote_request( $request_url, $request_args ), |
|
122 | + $request_url, |
|
123 | + $request_args |
|
124 | + ); |
|
125 | + |
|
126 | + if ( defined( 'WL_DEBUG' ) && WL_DEBUG ) { |
|
127 | + $this->log->trace( |
|
128 | + "=== REQUEST ===========================\n" |
|
129 | + . "=== URL: $request_url ===========================\n" |
|
130 | + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_var_export |
|
131 | + . var_export( $request_args, true ) |
|
132 | + . "=== RESPONSE ===========================\n" |
|
133 | + // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_var_export |
|
134 | + . var_export( $response, true ) |
|
135 | + ); |
|
136 | + } |
|
137 | + |
|
138 | + return new Response( $response ); |
|
139 | + } |
|
140 | + |
|
141 | + public function get( $path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array() ) { |
|
142 | + |
|
143 | + return $this->request( 'GET', $path, $headers, $body, $timeout, $user_agent, $args ); |
|
144 | + } |
|
145 | + |
|
146 | + public function get_base_url() { |
|
147 | + return $this->base_url; |
|
148 | + } |
|
149 | + |
|
150 | + /** |
|
151 | + * @return Me_Response |
|
152 | + * @throws Exception when an error occurs. |
|
153 | + */ |
|
154 | + public function me() { |
|
155 | + return json_decode( $this->get( '/me' )->get_body() ); |
|
156 | + } |
|
157 | 157 | |
158 | 158 | } |
@@ -43,11 +43,11 @@ discard block |
||
43 | 43 | * @param string $user_agent |
44 | 44 | * @param string $wordlift_key |
45 | 45 | */ |
46 | - protected function __construct( $base_url, $timeout, $user_agent, $wordlift_key ) { |
|
46 | + protected function __construct($base_url, $timeout, $user_agent, $wordlift_key) { |
|
47 | 47 | |
48 | - $this->log = \Wordlift_Log_Service::get_logger( get_class() ); |
|
48 | + $this->log = \Wordlift_Log_Service::get_logger(get_class()); |
|
49 | 49 | |
50 | - $this->base_url = untrailingslashit( $base_url ); |
|
50 | + $this->base_url = untrailingslashit($base_url); |
|
51 | 51 | $this->timeout = $timeout; |
52 | 52 | $this->user_agent = $user_agent; |
53 | 53 | $this->wordlift_key = $wordlift_key; |
@@ -67,9 +67,9 @@ discard block |
||
67 | 67 | * @return Default_Api_Service |
68 | 68 | */ |
69 | 69 | public static function get_instance() { |
70 | - if ( ! isset( self::$instance ) ) { |
|
70 | + if ( ! isset(self::$instance)) { |
|
71 | 71 | self::$instance = new self( |
72 | - apply_filters( 'wl_api_base_url', WL_CONFIG_WORDLIFT_API_URL_DEFAULT_VALUE ), |
|
72 | + apply_filters('wl_api_base_url', WL_CONFIG_WORDLIFT_API_URL_DEFAULT_VALUE), |
|
73 | 73 | 60, |
74 | 74 | User_Agent::get_user_agent(), |
75 | 75 | Wordlift_Configuration_Service::get_instance()->get_key() |
@@ -79,21 +79,21 @@ discard block |
||
79 | 79 | return self::$instance; |
80 | 80 | } |
81 | 81 | |
82 | - public function request( $method, $path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array() ) { |
|
82 | + public function request($method, $path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array()) { |
|
83 | 83 | |
84 | 84 | // Get the timeout for this request. |
85 | - $request_timeout = isset( $timeout ) ? $timeout : $this->timeout; |
|
85 | + $request_timeout = isset($timeout) ? $timeout : $this->timeout; |
|
86 | 86 | |
87 | 87 | // Set the time limit if lesser than our request timeout. |
88 | - $max_execution_time = ini_get( 'max_execution_time' ); |
|
89 | - if ( ! ( defined( 'WP_CLI' ) && WP_CLI ) |
|
90 | - && ( 0 !== intval( $max_execution_time ) ) |
|
91 | - && ( $max_execution_time < $request_timeout ) ) { |
|
88 | + $max_execution_time = ini_get('max_execution_time'); |
|
89 | + if ( ! (defined('WP_CLI') && WP_CLI) |
|
90 | + && (0 !== intval($max_execution_time)) |
|
91 | + && ($max_execution_time < $request_timeout)) { |
|
92 | 92 | // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged |
93 | - @set_time_limit( $request_timeout ); |
|
93 | + @set_time_limit($request_timeout); |
|
94 | 94 | } |
95 | 95 | |
96 | - $request_url = $this->base_url . $path; |
|
96 | + $request_url = $this->base_url.$path; |
|
97 | 97 | // Create the request args in the following order: |
98 | 98 | // 1. use `$args` as base if provided. |
99 | 99 | // 2. set the custom timeout if provided. |
@@ -107,7 +107,7 @@ discard block |
||
107 | 107 | $args + array( |
108 | 108 | 'method' => $method, |
109 | 109 | 'timeout' => $request_timeout, |
110 | - 'user-agent' => isset( $user_agent ) ? $user_agent : $this->user_agent, |
|
110 | + 'user-agent' => isset($user_agent) ? $user_agent : $this->user_agent, |
|
111 | 111 | 'headers' => $headers + $this->headers + Api_Headers_Service::get_instance()->get_wp_headers(), |
112 | 112 | 'body' => $body, |
113 | 113 | ) |
@@ -118,29 +118,29 @@ discard block |
||
118 | 118 | */ |
119 | 119 | $response = apply_filters( |
120 | 120 | 'wl_api_service__response', |
121 | - wp_remote_request( $request_url, $request_args ), |
|
121 | + wp_remote_request($request_url, $request_args), |
|
122 | 122 | $request_url, |
123 | 123 | $request_args |
124 | 124 | ); |
125 | 125 | |
126 | - if ( defined( 'WL_DEBUG' ) && WL_DEBUG ) { |
|
126 | + if (defined('WL_DEBUG') && WL_DEBUG) { |
|
127 | 127 | $this->log->trace( |
128 | 128 | "=== REQUEST ===========================\n" |
129 | 129 | . "=== URL: $request_url ===========================\n" |
130 | 130 | // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_var_export |
131 | - . var_export( $request_args, true ) |
|
131 | + . var_export($request_args, true) |
|
132 | 132 | . "=== RESPONSE ===========================\n" |
133 | 133 | // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_var_export |
134 | - . var_export( $response, true ) |
|
134 | + . var_export($response, true) |
|
135 | 135 | ); |
136 | 136 | } |
137 | 137 | |
138 | - return new Response( $response ); |
|
138 | + return new Response($response); |
|
139 | 139 | } |
140 | 140 | |
141 | - public function get( $path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array() ) { |
|
141 | + public function get($path, $headers = array(), $body = null, $timeout = null, $user_agent = null, $args = array()) { |
|
142 | 142 | |
143 | - return $this->request( 'GET', $path, $headers, $body, $timeout, $user_agent, $args ); |
|
143 | + return $this->request('GET', $path, $headers, $body, $timeout, $user_agent, $args); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | public function get_base_url() { |
@@ -152,7 +152,7 @@ discard block |
||
152 | 152 | * @throws Exception when an error occurs. |
153 | 153 | */ |
154 | 154 | public function me() { |
155 | - return json_decode( $this->get( '/me' )->get_body() ); |
|
155 | + return json_decode($this->get('/me')->get_body()); |
|
156 | 156 | } |
157 | 157 | |
158 | 158 | } |
@@ -4,33 +4,33 @@ |
||
4 | 4 | |
5 | 5 | class Api_Headers_Service { |
6 | 6 | |
7 | - private static $instance = null; |
|
8 | - |
|
9 | - protected function __construct() { |
|
10 | - |
|
11 | - } |
|
12 | - |
|
13 | - /** |
|
14 | - * This function is used to append WordPress endpoint data to every request made. |
|
15 | - * |
|
16 | - * @return array |
|
17 | - */ |
|
18 | - public function get_wp_headers() { |
|
19 | - return array( |
|
20 | - 'X-Wordlift-Plugin-Wp-Admin' => untrailingslashit( get_admin_url() ), |
|
21 | - 'X-Wordlift-Plugin-Wp-Json' => untrailingslashit( get_rest_url() ), |
|
22 | - ); |
|
23 | - } |
|
24 | - |
|
25 | - /** |
|
26 | - * @return Api_Headers_Service |
|
27 | - */ |
|
28 | - public static function get_instance() { |
|
29 | - if ( null === self::$instance ) { |
|
30 | - self::$instance = new Api_Headers_Service(); |
|
31 | - } |
|
32 | - |
|
33 | - return self::$instance; |
|
34 | - } |
|
7 | + private static $instance = null; |
|
8 | + |
|
9 | + protected function __construct() { |
|
10 | + |
|
11 | + } |
|
12 | + |
|
13 | + /** |
|
14 | + * This function is used to append WordPress endpoint data to every request made. |
|
15 | + * |
|
16 | + * @return array |
|
17 | + */ |
|
18 | + public function get_wp_headers() { |
|
19 | + return array( |
|
20 | + 'X-Wordlift-Plugin-Wp-Admin' => untrailingslashit( get_admin_url() ), |
|
21 | + 'X-Wordlift-Plugin-Wp-Json' => untrailingslashit( get_rest_url() ), |
|
22 | + ); |
|
23 | + } |
|
24 | + |
|
25 | + /** |
|
26 | + * @return Api_Headers_Service |
|
27 | + */ |
|
28 | + public static function get_instance() { |
|
29 | + if ( null === self::$instance ) { |
|
30 | + self::$instance = new Api_Headers_Service(); |
|
31 | + } |
|
32 | + |
|
33 | + return self::$instance; |
|
34 | + } |
|
35 | 35 | |
36 | 36 | } |
@@ -17,8 +17,8 @@ discard block |
||
17 | 17 | */ |
18 | 18 | public function get_wp_headers() { |
19 | 19 | return array( |
20 | - 'X-Wordlift-Plugin-Wp-Admin' => untrailingslashit( get_admin_url() ), |
|
21 | - 'X-Wordlift-Plugin-Wp-Json' => untrailingslashit( get_rest_url() ), |
|
20 | + 'X-Wordlift-Plugin-Wp-Admin' => untrailingslashit(get_admin_url()), |
|
21 | + 'X-Wordlift-Plugin-Wp-Json' => untrailingslashit(get_rest_url()), |
|
22 | 22 | ); |
23 | 23 | } |
24 | 24 | |
@@ -26,7 +26,7 @@ discard block |
||
26 | 26 | * @return Api_Headers_Service |
27 | 27 | */ |
28 | 28 | public static function get_instance() { |
29 | - if ( null === self::$instance ) { |
|
29 | + if (null === self::$instance) { |
|
30 | 30 | self::$instance = new Api_Headers_Service(); |
31 | 31 | } |
32 | 32 |
@@ -4,50 +4,50 @@ discard block |
||
4 | 4 | |
5 | 5 | class Import_Videos_Page { |
6 | 6 | |
7 | - /** |
|
8 | - * Sync_Page constructor. |
|
9 | - */ |
|
10 | - public function __construct() { |
|
7 | + /** |
|
8 | + * Sync_Page constructor. |
|
9 | + */ |
|
10 | + public function __construct() { |
|
11 | 11 | |
12 | - add_action( 'admin_menu', array( $this, 'admin_menu' ) ); |
|
12 | + add_action( 'admin_menu', array( $this, 'admin_menu' ) ); |
|
13 | 13 | |
14 | - } |
|
14 | + } |
|
15 | 15 | |
16 | - public function admin_menu() { |
|
16 | + public function admin_menu() { |
|
17 | 17 | |
18 | - add_submenu_page( |
|
19 | - 'wl_admin_menu', |
|
20 | - __( 'Import all videos', 'wordlift' ), |
|
21 | - __( 'Import all videos', 'wordlift' ), |
|
22 | - 'manage_options', |
|
23 | - 'wl_videos_import', |
|
24 | - array( |
|
25 | - $this, |
|
26 | - 'render', |
|
27 | - ) |
|
28 | - ); |
|
18 | + add_submenu_page( |
|
19 | + 'wl_admin_menu', |
|
20 | + __( 'Import all videos', 'wordlift' ), |
|
21 | + __( 'Import all videos', 'wordlift' ), |
|
22 | + 'manage_options', |
|
23 | + 'wl_videos_import', |
|
24 | + array( |
|
25 | + $this, |
|
26 | + 'render', |
|
27 | + ) |
|
28 | + ); |
|
29 | 29 | |
30 | - } |
|
30 | + } |
|
31 | 31 | |
32 | - public function render() { |
|
32 | + public function render() { |
|
33 | 33 | |
34 | - wp_enqueue_script( |
|
35 | - 'wl-videos-sync-page', |
|
36 | - plugin_dir_url( __FILE__ ) . 'assets/videoobject-import-page.js', |
|
37 | - array( 'wp-api' ), |
|
38 | - WORDLIFT_VERSION, |
|
39 | - false |
|
40 | - ); |
|
41 | - wp_localize_script( |
|
42 | - 'wl-videos-sync-page', |
|
43 | - '_wlVideoObjectImportSettings', |
|
44 | - array( |
|
45 | - 'restUrl' => get_rest_url(), |
|
46 | - 'nonce' => wp_create_nonce( 'wp_rest' ), |
|
47 | - ) |
|
48 | - ) |
|
34 | + wp_enqueue_script( |
|
35 | + 'wl-videos-sync-page', |
|
36 | + plugin_dir_url( __FILE__ ) . 'assets/videoobject-import-page.js', |
|
37 | + array( 'wp-api' ), |
|
38 | + WORDLIFT_VERSION, |
|
39 | + false |
|
40 | + ); |
|
41 | + wp_localize_script( |
|
42 | + 'wl-videos-sync-page', |
|
43 | + '_wlVideoObjectImportSettings', |
|
44 | + array( |
|
45 | + 'restUrl' => get_rest_url(), |
|
46 | + 'nonce' => wp_create_nonce( 'wp_rest' ), |
|
47 | + ) |
|
48 | + ) |
|
49 | 49 | |
50 | - ?> |
|
50 | + ?> |
|
51 | 51 | <div class="wrap"> |
52 | 52 | <h2><?php esc_html_e( 'Import all videos', 'wordlift' ); ?></h2> |
53 | 53 | |
@@ -58,17 +58,17 @@ discard block |
||
58 | 58 | |
59 | 59 | <button id="wl-start-btn" type="button" class="button button-large button-primary"> |
60 | 60 | <?php |
61 | - esc_html_e( 'Start', 'wordlift' ); |
|
62 | - ?> |
|
61 | + esc_html_e( 'Start', 'wordlift' ); |
|
62 | + ?> |
|
63 | 63 | </button> |
64 | 64 | <button id="wl-stop-btn" type="button" class="button button-large button-primary hidden"> |
65 | 65 | <?php |
66 | - esc_html_e( 'Stop', 'wordlift' ); |
|
67 | - ?> |
|
66 | + esc_html_e( 'Stop', 'wordlift' ); |
|
67 | + ?> |
|
68 | 68 | </button> |
69 | 69 | |
70 | 70 | </div> |
71 | 71 | <?php |
72 | - } |
|
72 | + } |
|
73 | 73 | |
74 | 74 | } |
@@ -9,7 +9,7 @@ discard block |
||
9 | 9 | */ |
10 | 10 | public function __construct() { |
11 | 11 | |
12 | - add_action( 'admin_menu', array( $this, 'admin_menu' ) ); |
|
12 | + add_action('admin_menu', array($this, 'admin_menu')); |
|
13 | 13 | |
14 | 14 | } |
15 | 15 | |
@@ -17,8 +17,8 @@ discard block |
||
17 | 17 | |
18 | 18 | add_submenu_page( |
19 | 19 | 'wl_admin_menu', |
20 | - __( 'Import all videos', 'wordlift' ), |
|
21 | - __( 'Import all videos', 'wordlift' ), |
|
20 | + __('Import all videos', 'wordlift'), |
|
21 | + __('Import all videos', 'wordlift'), |
|
22 | 22 | 'manage_options', |
23 | 23 | 'wl_videos_import', |
24 | 24 | array( |
@@ -33,8 +33,8 @@ discard block |
||
33 | 33 | |
34 | 34 | wp_enqueue_script( |
35 | 35 | 'wl-videos-sync-page', |
36 | - plugin_dir_url( __FILE__ ) . 'assets/videoobject-import-page.js', |
|
37 | - array( 'wp-api' ), |
|
36 | + plugin_dir_url(__FILE__).'assets/videoobject-import-page.js', |
|
37 | + array('wp-api'), |
|
38 | 38 | WORDLIFT_VERSION, |
39 | 39 | false |
40 | 40 | ); |
@@ -43,13 +43,13 @@ discard block |
||
43 | 43 | '_wlVideoObjectImportSettings', |
44 | 44 | array( |
45 | 45 | 'restUrl' => get_rest_url(), |
46 | - 'nonce' => wp_create_nonce( 'wp_rest' ), |
|
46 | + 'nonce' => wp_create_nonce('wp_rest'), |
|
47 | 47 | ) |
48 | 48 | ) |
49 | 49 | |
50 | 50 | ?> |
51 | 51 | <div class="wrap"> |
52 | - <h2><?php esc_html_e( 'Import all videos', 'wordlift' ); ?></h2> |
|
52 | + <h2><?php esc_html_e('Import all videos', 'wordlift'); ?></h2> |
|
53 | 53 | |
54 | 54 | <div class="wl-task__progress" style="border: 1px solid #23282D; height: 20px; margin: 8px 0;"> |
55 | 55 | <div class="wl-task__progress__bar" |
@@ -58,12 +58,12 @@ discard block |
||
58 | 58 | |
59 | 59 | <button id="wl-start-btn" type="button" class="button button-large button-primary"> |
60 | 60 | <?php |
61 | - esc_html_e( 'Start', 'wordlift' ); |
|
61 | + esc_html_e('Start', 'wordlift'); |
|
62 | 62 | ?> |
63 | 63 | </button> |
64 | 64 | <button id="wl-stop-btn" type="button" class="button button-large button-primary hidden"> |
65 | 65 | <?php |
66 | - esc_html_e( 'Stop', 'wordlift' ); |
|
66 | + esc_html_e('Stop', 'wordlift'); |
|
67 | 67 | ?> |
68 | 68 | </button> |
69 | 69 |
@@ -8,31 +8,31 @@ |
||
8 | 8 | */ |
9 | 9 | class Parser_Factory { |
10 | 10 | |
11 | - const BLOCK_EDITOR = 'block-editor'; |
|
12 | - |
|
13 | - const CLASSIC_EDITOR = 'classic-editor'; |
|
14 | - |
|
15 | - /** |
|
16 | - * @param $parser_config |
|
17 | - * |
|
18 | - * @return Parser |
|
19 | - */ |
|
20 | - public static function get_parser( $parser_config ) { |
|
21 | - if ( self::BLOCK_EDITOR === $parser_config ) { |
|
22 | - return new Block_Editor_Parser(); |
|
23 | - } elseif ( self::CLASSIC_EDITOR === $parser_config ) { |
|
24 | - return new Classic_Editor_Parser(); |
|
25 | - } |
|
26 | - |
|
27 | - } |
|
28 | - |
|
29 | - public static function get_parser_from_content( $post_content ) { |
|
30 | - if ( function_exists( 'has_blocks' ) |
|
31 | - && function_exists( 'parse_blocks' ) && has_blocks( $post_content ) ) { |
|
32 | - return self::get_parser( self::BLOCK_EDITOR ); |
|
33 | - } else { |
|
34 | - return self::get_parser( self::CLASSIC_EDITOR ); |
|
35 | - } |
|
36 | - } |
|
11 | + const BLOCK_EDITOR = 'block-editor'; |
|
12 | + |
|
13 | + const CLASSIC_EDITOR = 'classic-editor'; |
|
14 | + |
|
15 | + /** |
|
16 | + * @param $parser_config |
|
17 | + * |
|
18 | + * @return Parser |
|
19 | + */ |
|
20 | + public static function get_parser( $parser_config ) { |
|
21 | + if ( self::BLOCK_EDITOR === $parser_config ) { |
|
22 | + return new Block_Editor_Parser(); |
|
23 | + } elseif ( self::CLASSIC_EDITOR === $parser_config ) { |
|
24 | + return new Classic_Editor_Parser(); |
|
25 | + } |
|
26 | + |
|
27 | + } |
|
28 | + |
|
29 | + public static function get_parser_from_content( $post_content ) { |
|
30 | + if ( function_exists( 'has_blocks' ) |
|
31 | + && function_exists( 'parse_blocks' ) && has_blocks( $post_content ) ) { |
|
32 | + return self::get_parser( self::BLOCK_EDITOR ); |
|
33 | + } else { |
|
34 | + return self::get_parser( self::CLASSIC_EDITOR ); |
|
35 | + } |
|
36 | + } |
|
37 | 37 | |
38 | 38 | } |
@@ -17,21 +17,21 @@ |
||
17 | 17 | * |
18 | 18 | * @return Parser |
19 | 19 | */ |
20 | - public static function get_parser( $parser_config ) { |
|
21 | - if ( self::BLOCK_EDITOR === $parser_config ) { |
|
20 | + public static function get_parser($parser_config) { |
|
21 | + if (self::BLOCK_EDITOR === $parser_config) { |
|
22 | 22 | return new Block_Editor_Parser(); |
23 | - } elseif ( self::CLASSIC_EDITOR === $parser_config ) { |
|
23 | + } elseif (self::CLASSIC_EDITOR === $parser_config) { |
|
24 | 24 | return new Classic_Editor_Parser(); |
25 | 25 | } |
26 | 26 | |
27 | 27 | } |
28 | 28 | |
29 | - public static function get_parser_from_content( $post_content ) { |
|
30 | - if ( function_exists( 'has_blocks' ) |
|
31 | - && function_exists( 'parse_blocks' ) && has_blocks( $post_content ) ) { |
|
32 | - return self::get_parser( self::BLOCK_EDITOR ); |
|
29 | + public static function get_parser_from_content($post_content) { |
|
30 | + if (function_exists('has_blocks') |
|
31 | + && function_exists('parse_blocks') && has_blocks($post_content)) { |
|
32 | + return self::get_parser(self::BLOCK_EDITOR); |
|
33 | 33 | } else { |
34 | - return self::get_parser( self::CLASSIC_EDITOR ); |
|
34 | + return self::get_parser(self::CLASSIC_EDITOR); |
|
35 | 35 | } |
36 | 36 | } |
37 | 37 |
@@ -11,32 +11,32 @@ |
||
11 | 11 | */ |
12 | 12 | class Block_Editor_Parser implements Parser { |
13 | 13 | |
14 | - public function get_videos( $post_id ) { |
|
15 | - $post = get_post( $post_id ); |
|
16 | - $content = $post->post_content; |
|
17 | - $video_blocks = array_filter( parse_blocks( $content ), array( $this, 'filter_blocks' ) ); |
|
18 | - return array_map( array( $this, 'block_to_video' ), $video_blocks ); |
|
19 | - } |
|
14 | + public function get_videos( $post_id ) { |
|
15 | + $post = get_post( $post_id ); |
|
16 | + $content = $post->post_content; |
|
17 | + $video_blocks = array_filter( parse_blocks( $content ), array( $this, 'filter_blocks' ) ); |
|
18 | + return array_map( array( $this, 'block_to_video' ), $video_blocks ); |
|
19 | + } |
|
20 | 20 | |
21 | - /** |
|
22 | - * @param $block |
|
23 | - * |
|
24 | - * @return Embedded_Video |
|
25 | - */ |
|
26 | - public function block_to_video( $block ) { |
|
27 | - return Embedded_Video_Factory::get_embedded_video( $block['attrs']['url'] ); |
|
28 | - } |
|
21 | + /** |
|
22 | + * @param $block |
|
23 | + * |
|
24 | + * @return Embedded_Video |
|
25 | + */ |
|
26 | + public function block_to_video( $block ) { |
|
27 | + return Embedded_Video_Factory::get_embedded_video( $block['attrs']['url'] ); |
|
28 | + } |
|
29 | 29 | |
30 | - public function filter_blocks( $block ) { |
|
31 | - return array_key_exists( 'blockName', $block ) |
|
32 | - && ( 'core/embed' === $block['blockName'] || 'core-embed/youtube' === $block['blockName'] |
|
33 | - || 'core-embed/vimeo' === $block['blockName'] ) |
|
34 | - // Check if attributes present |
|
35 | - && array_key_exists( 'attrs', $block ) |
|
36 | - && is_array( $block['attrs'] ) |
|
37 | - // check if valid url present. |
|
38 | - && array_key_exists( 'url', $block['attrs'] ) |
|
39 | - && is_string( $block['attrs']['url'] ); |
|
40 | - } |
|
30 | + public function filter_blocks( $block ) { |
|
31 | + return array_key_exists( 'blockName', $block ) |
|
32 | + && ( 'core/embed' === $block['blockName'] || 'core-embed/youtube' === $block['blockName'] |
|
33 | + || 'core-embed/vimeo' === $block['blockName'] ) |
|
34 | + // Check if attributes present |
|
35 | + && array_key_exists( 'attrs', $block ) |
|
36 | + && is_array( $block['attrs'] ) |
|
37 | + // check if valid url present. |
|
38 | + && array_key_exists( 'url', $block['attrs'] ) |
|
39 | + && is_string( $block['attrs']['url'] ); |
|
40 | + } |
|
41 | 41 | |
42 | 42 | } |
@@ -11,11 +11,11 @@ discard block |
||
11 | 11 | */ |
12 | 12 | class Block_Editor_Parser implements Parser { |
13 | 13 | |
14 | - public function get_videos( $post_id ) { |
|
15 | - $post = get_post( $post_id ); |
|
14 | + public function get_videos($post_id) { |
|
15 | + $post = get_post($post_id); |
|
16 | 16 | $content = $post->post_content; |
17 | - $video_blocks = array_filter( parse_blocks( $content ), array( $this, 'filter_blocks' ) ); |
|
18 | - return array_map( array( $this, 'block_to_video' ), $video_blocks ); |
|
17 | + $video_blocks = array_filter(parse_blocks($content), array($this, 'filter_blocks')); |
|
18 | + return array_map(array($this, 'block_to_video'), $video_blocks); |
|
19 | 19 | } |
20 | 20 | |
21 | 21 | /** |
@@ -23,20 +23,20 @@ discard block |
||
23 | 23 | * |
24 | 24 | * @return Embedded_Video |
25 | 25 | */ |
26 | - public function block_to_video( $block ) { |
|
27 | - return Embedded_Video_Factory::get_embedded_video( $block['attrs']['url'] ); |
|
26 | + public function block_to_video($block) { |
|
27 | + return Embedded_Video_Factory::get_embedded_video($block['attrs']['url']); |
|
28 | 28 | } |
29 | 29 | |
30 | - public function filter_blocks( $block ) { |
|
31 | - return array_key_exists( 'blockName', $block ) |
|
32 | - && ( 'core/embed' === $block['blockName'] || 'core-embed/youtube' === $block['blockName'] |
|
33 | - || 'core-embed/vimeo' === $block['blockName'] ) |
|
30 | + public function filter_blocks($block) { |
|
31 | + return array_key_exists('blockName', $block) |
|
32 | + && ('core/embed' === $block['blockName'] || 'core-embed/youtube' === $block['blockName'] |
|
33 | + || 'core-embed/vimeo' === $block['blockName']) |
|
34 | 34 | // Check if attributes present |
35 | - && array_key_exists( 'attrs', $block ) |
|
36 | - && is_array( $block['attrs'] ) |
|
35 | + && array_key_exists('attrs', $block) |
|
36 | + && is_array($block['attrs']) |
|
37 | 37 | // check if valid url present. |
38 | - && array_key_exists( 'url', $block['attrs'] ) |
|
39 | - && is_string( $block['attrs']['url'] ); |
|
38 | + && array_key_exists('url', $block['attrs']) |
|
39 | + && is_string($block['attrs']['url']); |
|
40 | 40 | } |
41 | 41 | |
42 | 42 | } |
@@ -7,45 +7,45 @@ |
||
7 | 7 | |
8 | 8 | class Classic_Editor_Parser implements Parser { |
9 | 9 | |
10 | - public function get_videos( $post_id ) { |
|
11 | - |
|
12 | - $post = get_post( $post_id ); |
|
13 | - |
|
14 | - $content = $post->post_content; |
|
15 | - |
|
16 | - $line_matches = array(); |
|
17 | - $paragraph_matches = array(); |
|
18 | - |
|
19 | - /** |
|
20 | - * This replicates the wp autoembed function, instead of replacing we capture |
|
21 | - * all the urls. |
|
22 | - */ |
|
23 | - if ( preg_match( '#(^|\s|>)https?://#i', $content ) ) { |
|
24 | - // Find URLs on their own line. |
|
25 | - preg_match_all( '|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', $content, $line_matches, PREG_SET_ORDER ); |
|
26 | - // Find URLs in their own paragraph. |
|
27 | - preg_match_all( '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i', $content, $paragraph_matches, PREG_SET_ORDER ); |
|
28 | - } |
|
29 | - |
|
30 | - $regex_matches = array_merge( $line_matches, $paragraph_matches ); |
|
31 | - $matches = array_map( array( $this, 'get_url_from_match' ), $regex_matches ); |
|
32 | - |
|
33 | - $matches = array_values( array_unique( array_filter( $matches ) ) ); |
|
34 | - |
|
35 | - return array_map( array( $this, 'url_to_embedded_video_object' ), $matches ); |
|
36 | - } |
|
37 | - |
|
38 | - /** |
|
39 | - * @param $url |
|
40 | - * |
|
41 | - * @return Embedded_Video |
|
42 | - */ |
|
43 | - private static function url_to_embedded_video_object( $url ) { |
|
44 | - return Embedded_Video_Factory::get_embedded_video( trim( $url ) ); |
|
45 | - } |
|
46 | - |
|
47 | - public static function get_url_from_match( $match ) { |
|
48 | - return array_key_exists( 0, $match ) ? $match[0] : false; |
|
49 | - } |
|
10 | + public function get_videos( $post_id ) { |
|
11 | + |
|
12 | + $post = get_post( $post_id ); |
|
13 | + |
|
14 | + $content = $post->post_content; |
|
15 | + |
|
16 | + $line_matches = array(); |
|
17 | + $paragraph_matches = array(); |
|
18 | + |
|
19 | + /** |
|
20 | + * This replicates the wp autoembed function, instead of replacing we capture |
|
21 | + * all the urls. |
|
22 | + */ |
|
23 | + if ( preg_match( '#(^|\s|>)https?://#i', $content ) ) { |
|
24 | + // Find URLs on their own line. |
|
25 | + preg_match_all( '|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', $content, $line_matches, PREG_SET_ORDER ); |
|
26 | + // Find URLs in their own paragraph. |
|
27 | + preg_match_all( '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i', $content, $paragraph_matches, PREG_SET_ORDER ); |
|
28 | + } |
|
29 | + |
|
30 | + $regex_matches = array_merge( $line_matches, $paragraph_matches ); |
|
31 | + $matches = array_map( array( $this, 'get_url_from_match' ), $regex_matches ); |
|
32 | + |
|
33 | + $matches = array_values( array_unique( array_filter( $matches ) ) ); |
|
34 | + |
|
35 | + return array_map( array( $this, 'url_to_embedded_video_object' ), $matches ); |
|
36 | + } |
|
37 | + |
|
38 | + /** |
|
39 | + * @param $url |
|
40 | + * |
|
41 | + * @return Embedded_Video |
|
42 | + */ |
|
43 | + private static function url_to_embedded_video_object( $url ) { |
|
44 | + return Embedded_Video_Factory::get_embedded_video( trim( $url ) ); |
|
45 | + } |
|
46 | + |
|
47 | + public static function get_url_from_match( $match ) { |
|
48 | + return array_key_exists( 0, $match ) ? $match[0] : false; |
|
49 | + } |
|
50 | 50 | |
51 | 51 | } |
@@ -7,9 +7,9 @@ discard block |
||
7 | 7 | |
8 | 8 | class Classic_Editor_Parser implements Parser { |
9 | 9 | |
10 | - public function get_videos( $post_id ) { |
|
10 | + public function get_videos($post_id) { |
|
11 | 11 | |
12 | - $post = get_post( $post_id ); |
|
12 | + $post = get_post($post_id); |
|
13 | 13 | |
14 | 14 | $content = $post->post_content; |
15 | 15 | |
@@ -20,19 +20,19 @@ discard block |
||
20 | 20 | * This replicates the wp autoembed function, instead of replacing we capture |
21 | 21 | * all the urls. |
22 | 22 | */ |
23 | - if ( preg_match( '#(^|\s|>)https?://#i', $content ) ) { |
|
23 | + if (preg_match('#(^|\s|>)https?://#i', $content)) { |
|
24 | 24 | // Find URLs on their own line. |
25 | - preg_match_all( '|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', $content, $line_matches, PREG_SET_ORDER ); |
|
25 | + preg_match_all('|^(\s*)(https?://[^\s<>"]+)(\s*)$|im', $content, $line_matches, PREG_SET_ORDER); |
|
26 | 26 | // Find URLs in their own paragraph. |
27 | - preg_match_all( '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i', $content, $paragraph_matches, PREG_SET_ORDER ); |
|
27 | + preg_match_all('|(<p(?: [^>]*)?>\s*)(https?://[^\s<>"]+)(\s*<\/p>)|i', $content, $paragraph_matches, PREG_SET_ORDER); |
|
28 | 28 | } |
29 | 29 | |
30 | - $regex_matches = array_merge( $line_matches, $paragraph_matches ); |
|
31 | - $matches = array_map( array( $this, 'get_url_from_match' ), $regex_matches ); |
|
30 | + $regex_matches = array_merge($line_matches, $paragraph_matches); |
|
31 | + $matches = array_map(array($this, 'get_url_from_match'), $regex_matches); |
|
32 | 32 | |
33 | - $matches = array_values( array_unique( array_filter( $matches ) ) ); |
|
33 | + $matches = array_values(array_unique(array_filter($matches))); |
|
34 | 34 | |
35 | - return array_map( array( $this, 'url_to_embedded_video_object' ), $matches ); |
|
35 | + return array_map(array($this, 'url_to_embedded_video_object'), $matches); |
|
36 | 36 | } |
37 | 37 | |
38 | 38 | /** |
@@ -40,12 +40,12 @@ discard block |
||
40 | 40 | * |
41 | 41 | * @return Embedded_Video |
42 | 42 | */ |
43 | - private static function url_to_embedded_video_object( $url ) { |
|
44 | - return Embedded_Video_Factory::get_embedded_video( trim( $url ) ); |
|
43 | + private static function url_to_embedded_video_object($url) { |
|
44 | + return Embedded_Video_Factory::get_embedded_video(trim($url)); |
|
45 | 45 | } |
46 | 46 | |
47 | - public static function get_url_from_match( $match ) { |
|
48 | - return array_key_exists( 0, $match ) ? $match[0] : false; |
|
47 | + public static function get_url_from_match($match) { |
|
48 | + return array_key_exists(0, $match) ? $match[0] : false; |
|
49 | 49 | } |
50 | 50 | |
51 | 51 | } |