PluginProbe
WPSSO Core – Complete Schema Markup and Meta Tags / 22.7.0
WPSSO Core – Complete Schema Markup and Meta Tags v22.7.0
22.7.0 22.6.1 22.6.0 22.5.3 22.5.2 22.5.1 22.4.0 22.3.0 22.2.1 22.2.0 22.1.3 22.1.2 22.1.1 22.1.0 22.0.0 21.13.3 21.13.2 trunk 21.13.1
wpsso / lib / config.php

config.php in WPSSO Core – Complete Schema Markup and Meta Tags 22.7.0, at lib/config.php

5,830 lines 248.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 * License: GPLv3
4 * License URI: https://www.gnu.org/licenses/gpl.txt
5 * Copyright 2012-2026 Jean-Sebastien Morisset (https://wpsso.com/)
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9
10 die( 'These aren\'t the droids you\'re looking for.' );
11 }
12
13 if ( ! class_exists( 'WpssoConfig' ) ) {
14
15 class WpssoConfig {
16
17 public static $cf = array(
18 'packages' => array(
19 'pro' => 'Premium',
20 'std' => 'Standard',
21 ),
22 'plugin' => array(
23 'wpsso' => array( // Plugin acronym.
24 'version' => '22.7.0', // Plugin version.
25 'opt_version' => '1048', // Increment when changing default option values.
26 'short' => 'WPSSO Core', // Short plugin name.
27 'name' => 'WPSSO Core',
28 'desc' => 'Present your content at its best for social sites and search results, no matter how URLs are shared, reshared, messaged, posted, embedded, or crawled.',
29 'slug' => 'wpsso',
30 'base' => 'wpsso/wpsso.php',
31 'update_auth' => 'tid',
32 'text_domain' => 'wpsso',
33 'domain_path' => '/languages',
34 'admin_l10n' => 'wpssoAdminPageL10n',
35
36 /*
37 * URLs or relative paths to plugin banners and icons.
38 */
39 'assets' => array(
40
41 /*
42 * Banner image array keys are 'low' and 'high'.
43 */
44 'banners' => array(
45 'low' => 'https://surniaulula.github.io/wpsso/assets/banner-772x250.jpg',
46 'high' => 'https://surniaulula.github.io/wpsso/assets/banner-1544x500.jpg',
47 ),
48
49 /*
50 * Icon image array keys are '1x' and '2x'.
51 */
52 'icons' => array(
53 '1x' => 'images/icon-128x128.png',
54 '2x' => 'images/icon-256x256.png',
55 ),
56 ),
57 'hosts' => array(
58 'wp_org' => true,
59 'github' => true,
60 'wpsso' => true,
61 ),
62 'url' => array(
63
64 /*
65 * WordPress.org URLs.
66 */
67 'home' => 'https://wordpress.org/plugins/wpsso/',
68 'forum' => 'https://wordpress.org/support/plugin/wpsso',
69 'review' => 'https://wordpress.org/support/plugin/wpsso/reviews/?rate=5#new-post',
70
71 /*
72 * GitHub.com URLs.
73 */
74 'debug_html' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso/master/html/debug.html',
75 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso/master/readme.txt',
76 'setup_html' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso/master/html/setup.html',
77
78 /*
79 * WPSSO.com URLs.
80 */
81 'changelog' => 'https://wpsso.com/extend/plugins/wpsso/changelog/',
82 'docs' => 'https://wpsso.com/docs/plugins/wpsso/',
83 'install' => 'https://wpsso.com/docs/plugins/wpsso/installation/',
84 'faqs' => 'https://wpsso.com/docs/plugins/wpsso/faqs/',
85 'notes' => 'https://wpsso.com/docs/plugins/wpsso/notes/',
86 'support' => 'https://surniaulula.com/support/create_ticket/', // Premium support ticket.
87 'purchase' => 'https://wpsso.com/extend/plugins/wpsso/', // Purchase page.
88 'info' => 'https://wpsso.com/extend/plugins/wpsso/info/', // License information.
89 'update' => 'https://wpsso.com/extend/plugins/wpsso/update/',
90 'download' => '',
91 ),
92 'lib' => array(
93 'dashboard' => array(
94 ),
95 'integ' => array(
96 'data' => array(
97 'aioseop-meta' => 'Import All in One SEO Pack Metadata',
98 'rankmath-meta' => 'Import Rank Math SEO Metadata',
99 'seoframework-meta' => 'Import The SEO Framework Metadata',
100 'wpmetaseo-meta' => 'Import WP Meta SEO Metadata',
101 'wpseo-blocks' => 'Import Yoast SEO Block Attrs',
102 'wpseo-meta' => 'Import Yoast SEO Metadata',
103 ),
104 'ecom' => array(
105 'perfect-woocommerce-brands' => 'Perfect Brands for WooCommerce',
106 'woocommerce' => 'WooCommerce',
107 'woocommerce-brands' => 'WooCommerce Brands',
108 'woocommerce-currency-switcher' => 'WooCommerce Currency Switcher',
109 'woo-add-gtin' => 'WooCommerce UPC, EAN, and ISBN',
110 'wpm-product-gtin-wc' => 'Product GTIN for WooCommerce',
111 'yith-woocommerce-brands' => 'YITH WooCommerce Brands Add-on',
112 ),
113 'event' => array(
114 'the-events-calendar' => 'The Events Calendar',
115 ),
116 'form' => array(
117 'gravityforms' => 'Gravity Forms',
118 'gravityview' => 'Gravity View',
119 ),
120 'job' => array(
121 'simplejobboard' => 'Simple Job Board',
122 'wpjobmanager' => 'WP Job Manager',
123 ),
124 'lang' => array(
125 'polylang' => 'Polylang',
126 'qtranslate-xt' => 'qTranslate-XT',
127 'wpml' => 'WPML',
128 ),
129 'media' => array(
130 'wp-retina-2x' => 'Perfect Images',
131 ),
132 'rating' => array(
133 'rate-my-post' => 'Rate my Post',
134 'wppostratings' => 'WP-PostRatings',
135 ),
136 'recipe' => array(
137 'wprecipemaker' => 'WP Recipe Maker',
138 ),
139 'review' => array(
140 'judgeme-for-wc' => 'Judge.me Product Reviews for WooCommerce',
141 'wpproductreview' => 'WP Product Review',
142 'yotpowc' => 'Yotpo Social Reviews for WooCommerce',
143 ),
144 'seo' => array(
145 'aioseop' => 'All in One SEO Pack',
146 'rankmath' => 'Rank Math SEO',
147 'seoframework' => 'The SEO Framework',
148 'seopress' => 'SEOPress',
149 'wpmetaseo' => 'WP Meta SEO',
150 'wpseo' => 'Yoast SEO',
151 ),
152 'user' => array(
153 'co-authors-plus' => 'Co-Authors Plus',
154 'publishpress-authors' => 'PublishPress Authors',
155 'ultimate-member' => 'Ultimate Member',
156 ),
157 'util' => array(
158 'duplicate-post' => 'Yoast Duplicate Post',
159 'elementor' => 'Elementor Website Builder',
160 'jetpack' => 'Jetpack',
161 'jetpack-boost' => 'Jetpack Boost',
162 ),
163 ),
164 'json' => array(
165 'type' => array(
166 'article' => 'Schema Type Article',
167 'audiobook' => 'Schema Type Audiobook',
168 'blog' => 'Schema Type Blog',
169 'book' => 'Schema Type Book',
170 'brand' => 'Schema Type Brand',
171 'claimreview' => 'Schema Type Claim Review',
172 'collectionpage' => 'Schema Type Collection Page',
173 'course' => 'Schema Type Course',
174 'creativework' => 'Schema Type CreativeWork',
175 'event' => 'Schema Type Event',
176 'faqpage' => 'Schema Type FAQPage',
177 'foodestablishment' => 'Schema Type Food Establishment',
178 'howto' => 'Schema Type How-To',
179 'itemlist' => 'Schema Type ItemList',
180 'jobposting' => 'Schema Type Job Posting',
181 'learningresource' => 'Schema Type Learning Resource',
182 'localbusiness' => 'Schema Type Local Business',
183 'movie' => 'Schema Type Movie',
184 'organization' => 'Schema Type Organization',
185 'person' => 'Schema Type Person',
186 'place' => 'Schema Type Place',
187 'product' => 'Schema Type Product',
188 'productgroup' => 'Schema Type Product Group',
189 'profilepage' => 'Schema Type Profile Page',
190 'qapage' => 'Schema Type QAPage',
191 'question' => 'Schema Type Question and Answer',
192 'recipe' => 'Schema Type Recipe',
193 'review' => 'Schema Type Review',
194 'searchresultspage' => 'Schema Type Search Results Page',
195 'service' => 'Schema Type Service',
196 'softwareapplication' => 'Schema Type Software Application',
197 'thing' => 'Schema Type Thing',
198 'webpage' => 'Schema Type WebPage',
199 'website' => 'Schema Type WebSite',
200 ),
201 'prop' => array(
202 'aggregaterating' => 'Schema Property aggregateRating',
203 'haspart' => 'Schema Property hasPart',
204 'review' => 'Schema Property review',
205 ),
206 ),
207 'pro' => array(
208 'admin' => array(
209 'advanced' => 'Advanced Settings',
210 'edit' => 'Document SSO Metabox',
211 'general' => 'General Settings',
212 ),
213 'media' => array(
214 'facebook' => 'Facebook Videos',
215 'gravatar' => 'Gravatar Images',
216 'slideshare' => 'Slideshare Presentations',
217 'soundcloud' => 'Soundcloud Tracks',
218 'upscale' => 'Upscale Media Library Images',
219 'vimeo' => 'Vimeo Videos',
220 'wistia' => 'Wistia Videos',
221 'wpvideoblock' => 'WP Media Library Video Blocks',
222 'wpvideoshortcode' => 'WP Media Library Video Shortcodes',
223 'youtube' => 'YouTube Videos and Playlists',
224 ),
225 'review' => array(
226 'judgeme' => 'Judge.me Reviews',
227 'shopperapproved' => 'Shopper Approved Reviews',
228 'stamped' => 'Stamped.io Reviews',
229 ),
230 'util' => array(
231 'shorten' => 'URL Shortening Services',
232 ),
233 ),
234 'profile' => array(
235 'your-sso' => 'Profile SSO - Social and Search Optimization',
236 ),
237 'sitesubmenu' => array(
238 'site-advanced' => 'Advanced Settings',
239 'site-licenses' => 'Premium Licenses',
240 'site-addons' => 'Plugin Add-ons',
241 'site-setup' => 'Setup Guide',
242 'site-debug' => 'Troubleshooting',
243 ),
244 'std' => array( // Standard distribution modules.
245 'admin' => array(
246 'advanced' => 'Advanced Settings',
247 'edit' => 'Document SSO Metabox',
248 'general' => 'General Settings',
249 ),
250 'media' => array(
251 'facebook' => 'Facebook Videos',
252 'slideshare' => 'Slideshare Presentations',
253 'soundcloud' => 'Soundcloud Tracks',
254 'vimeo' => 'Vimeo Videos',
255 'wistia' => 'Wistia Videos',
256 'wpvideoblock' => 'WP Media Library Video Blocks',
257 'wpvideoshortcode' => 'WP Media Library Video Shortcodes',
258 'youtube' => 'YouTube Videos and Playlists',
259 ),
260 'review' => array(
261 'judgeme' => 'Judge.me Reviews',
262 ),
263 ),
264 'submenu' => array(
265 'essential' => 'Essential Settings',
266 'general' => 'General Settings',
267 'advanced' => 'Advanced Settings',
268 'licenses' => 'Premium Licenses',
269 'addons' => 'Plugin Add-ons',
270 'tools' => 'Tools and Actions',
271 'setup' => 'Setup Guide',
272 'debug' => 'Troubleshooting',
273 ),
274 'users' => array(
275 'add-person' => 'Add Person',
276 ),
277 ),
278
279 /*
280 * Declare compatibility with WooCommerce HPOS.
281 *
282 * See https://github.com/woocommerce/woocommerce/wiki/High-Performance-Order-Storage-Upgrade-Recipe-Book.
283 */
284 'wc_compat' => array(
285 'custom_order_tables',
286 ),
287 ),
288 'wpssobc' => array( // Plugin acronym.
289 'short' => 'WPSSO BC', // Short plugin name.
290 'name' => 'WPSSO Schema Breadcrumbs Markup',
291 'desc' => 'Schema BreadcrumbList markup in JSON-LD format for Google Rich Results.',
292 'slug' => 'wpsso-breadcrumbs',
293 'base' => 'wpsso-breadcrumbs/wpsso-breadcrumbs.php',
294 'update_auth' => '', // No premium version.
295
296 /*
297 * URLs or relative paths to plugin banners and icons.
298 */
299 'assets' => array(
300
301 /*
302 * Banner image array keys are 'low' and 'high'.
303 */
304 'banners' => array(
305 'low' => 'https://surniaulula.github.io/wpsso-breadcrumbs/assets/banner-772x250.jpg',
306 'high' => 'https://surniaulula.github.io/wpsso-breadcrumbs/assets/banner-1544x500.jpg',
307 ),
308
309 /*
310 * Icon image array keys are '1x' and '2x'.
311 */
312 'icons' => array(
313 '1x' => 'https://surniaulula.github.io/wpsso-breadcrumbs/assets/icon-128x128.png',
314 '2x' => 'https://surniaulula.github.io/wpsso-breadcrumbs/assets/icon-256x256.png',
315 ),
316 ),
317 'hosts' => array(
318 'wp_org' => true,
319 'github' => true,
320 'wpsso' => true,
321 ),
322 'url' => array(
323
324 /*
325 * WordPress.org URLs.
326 */
327 'home' => 'https://wordpress.org/plugins/wpsso-breadcrumbs/',
328 'forum' => 'https://wordpress.org/support/plugin/wpsso-breadcrumbs',
329 'review' => 'https://wordpress.org/support/plugin/wpsso-breadcrumbs/reviews/?rate=5#new-post',
330
331 /*
332 * GitHub.com URLs.
333 */
334 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-breadcrumbs/master/readme.txt',
335
336 /*
337 * WPSSO.com URLs.
338 */
339 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-breadcrumbs/changelog/',
340 'docs' => 'https://wpsso.com/docs/plugins/wpsso-breadcrumbs/',
341 'install' => 'https://wpsso.com/docs/plugins/wpsso-breadcrumbs/installation/',
342 'faqs' => 'https://wpsso.com/docs/plugins/wpsso-breadcrumbs/faqs/',
343 'notes' => '',
344 'support' => '', // Premium support ticket.
345 'purchase' => '', // Purchase page.
346 'info' => '', // License information.
347 'update' => 'https://wpsso.com/extend/plugins/wpsso-breadcrumbs/update/',
348 'download' => 'https://wpsso.com/extend/plugins/wpsso-breadcrumbs/latest/',
349 ),
350 ),
351 'wpssocmcf' => array( // Plugin acronym.
352 'short' => 'WPSSO CMCF', // Short plugin name.
353 'name' => 'WPSSO Commerce Manager Catalog Feed XML',
354 'desc' => 'Facebook and Instagram Commerce Manager Catalog Feed XMLs for WooCommerce and custom product pages.',
355 'slug' => 'wpsso-commerce-manager-catalog-feed',
356 'base' => 'wpsso-commerce-manager-catalog-feed/wpsso-commerce-manager-catalog-feed.php',
357 'update_auth' => '', // No premium version.
358
359 /*
360 * URLs or relative paths to plugin banners and icons.
361 */
362 'assets' => array(
363
364 /*
365 * Banner image array keys are 'low' and 'high'.
366 */
367 'banners' => array(
368 'low' => 'https://surniaulula.github.io/wpsso-commerce-manager-catalog-feed/assets/banner-772x250.jpg',
369 'high' => 'https://surniaulula.github.io/wpsso-commerce-manager-catalog-feed/assets/banner-1544x500.jpg',
370 ),
371
372 /*
373 * Icon image array keys are '1x' and '2x'.
374 */
375 'icons' => array(
376 '1x' => 'https://surniaulula.github.io/wpsso-commerce-manager-catalog-feed/assets/icon-128x128.png',
377 '2x' => 'https://surniaulula.github.io/wpsso-commerce-manager-catalog-feed/assets/icon-256x256.png',
378 ),
379 ),
380 'hosts' => array(
381 'wp_org' => true,
382 'github' => true,
383 'wpsso' => true,
384 ),
385 'url' => array(
386
387 /*
388 * WordPress.org URLs.
389 */
390 'home' => 'https://wordpress.org/plugins/wpsso-commerce-manager-catalog-feed/',
391 'forum' => 'https://wordpress.org/support/plugin/wpsso-commerce-manager-catalog-feed',
392 'review' => 'https://wordpress.org/support/plugin/wpsso-commerce-manager-catalog-feed/reviews/?rate=5#new-post',
393
394 /*
395 * GitHub.com URLs.
396 */
397 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-commerce-manager-catalog-feed/master/readme.txt',
398
399 /*
400 * WPSSO.com URLs.
401 */
402 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-commerce-manager-catalog-feed/changelog/',
403 'docs' => 'https://wpsso.com/docs/plugins/wpsso-commerce-manager-catalog-feed/',
404 'install' => 'https://wpsso.com/docs/plugins/wpsso-commerce-manager-catalog-feed/installation/',
405 'faqs' => '',
406 'notes' => '',
407 'support' => '', // Premium support ticket.
408 'purchase' => '', // Purchase page.
409 'info' => '', // License information.
410 'update' => 'https://wpsso.com/extend/plugins/wpsso-commerce-manager-catalog-feed/update/',
411 'download' => 'https://wpsso.com/extend/plugins/wpsso-commerce-manager-catalog-feed/latest/',
412 ),
413 ),
414 'wpssofaq' => array( // Plugin acronym.
415 'short' => 'WPSSO FAQ', // Short plugin name.
416 'name' => 'WPSSO Schema FAQ Page Manager',
417 'desc' => 'Create FAQ and Question / Answer Pages with optional shortcodes to include FAQs and Questions / Answers in your content.',
418 'slug' => 'wpsso-faq',
419 'base' => 'wpsso-faq/wpsso-faq.php',
420 'update_auth' => '', // No premium version.
421
422 /*
423 * URLs or relative paths to plugin banners and icons.
424 */
425 'assets' => array(
426
427 /*
428 * Banner image array keys are 'low' and 'high'.
429 */
430 'banners' => array(
431 'low' => 'https://surniaulula.github.io/wpsso-faq/assets/banner-772x250.jpg',
432 'high' => 'https://surniaulula.github.io/wpsso-faq/assets/banner-1544x500.jpg',
433 ),
434
435 /*
436 * Icon image array keys are '1x' and '2x'.
437 */
438 'icons' => array(
439 '1x' => 'https://surniaulula.github.io/wpsso-faq/assets/icon-128x128.png',
440 '2x' => 'https://surniaulula.github.io/wpsso-faq/assets/icon-256x256.png',
441 ),
442 ),
443 'hosts' => array(
444 'wp_org' => true,
445 'github' => true,
446 'wpsso' => true,
447 ),
448 'url' => array(
449
450 /*
451 * WordPress.org URLs.
452 */
453 'home' => 'https://wordpress.org/plugins/wpsso-faq/',
454 'forum' => 'https://wordpress.org/support/plugin/wpsso-faq',
455 'review' => 'https://wordpress.org/support/plugin/wpsso-faq/reviews/?rate=5#new-post',
456
457 /*
458 * GitHub.com URLs.
459 */
460 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-faq/master/readme.txt',
461
462 /*
463 * WPSSO.com URLs.
464 */
465 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-faq/changelog/',
466 'docs' => 'https://wpsso.com/docs/plugins/wpsso-faq/',
467 'install' => 'https://wpsso.com/docs/plugins/wpsso-faq/installation/',
468 'faqs' => 'https://wpsso.com/docs/plugins/wpsso-faq/faqs/',
469 'notes' => 'https://wpsso.com/docs/plugins/wpsso-faq/notes/',
470 'support' => '', // Premium support ticket.
471 'purchase' => '', // Purchase page.
472 'info' => '', // License information.
473 'update' => 'https://wpsso.com/extend/plugins/wpsso-faq/update/',
474 'download' => 'https://wpsso.com/extend/plugins/wpsso-faq/latest/',
475 ),
476 ),
477 'wpssogmf' => array( // Plugin acronym.
478 'short' => 'WPSSO GMF', // Short plugin name.
479 'name' => 'WPSSO Google Merchant Feed XML',
480 'desc' => 'Google Merchant product and inventory feed XML for WooCommerce and custom product pages, including multilingual support.',
481 'slug' => 'wpsso-google-merchant-feed',
482 'base' => 'wpsso-google-merchant-feed/wpsso-google-merchant-feed.php',
483 'update_auth' => '', // No premium version.
484
485 /*
486 * URLs or relative paths to plugin banners and icons.
487 */
488 'assets' => array(
489
490 /*
491 * Banner image array keys are 'low' and 'high'.
492 */
493 'banners' => array(
494 'low' => 'https://surniaulula.github.io/wpsso-google-merchant-feed/assets/banner-772x250.jpg',
495 'high' => 'https://surniaulula.github.io/wpsso-google-merchant-feed/assets/banner-1544x500.jpg',
496 ),
497
498 /*
499 * Icon image array keys are '1x' and '2x'.
500 */
501 'icons' => array(
502 '1x' => 'https://surniaulula.github.io/wpsso-google-merchant-feed/assets/icon-128x128.png',
503 '2x' => 'https://surniaulula.github.io/wpsso-google-merchant-feed/assets/icon-256x256.png',
504 ),
505 ),
506 'hosts' => array(
507 'wp_org' => true,
508 'github' => true,
509 'wpsso' => true,
510 ),
511 'url' => array(
512
513 /*
514 * WordPress.org URLs.
515 */
516 'home' => 'https://wordpress.org/plugins/wpsso-google-merchant-feed/',
517 'forum' => 'https://wordpress.org/support/plugin/wpsso-google-merchant-feed',
518 'review' => 'https://wordpress.org/support/plugin/wpsso-google-merchant-feed/reviews/?rate=5#new-post',
519
520 /*
521 * GitHub.com URLs.
522 */
523 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-google-merchant-feed/master/readme.txt',
524
525 /*
526 * WPSSO.com URLs.
527 */
528 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-google-merchant-feed/changelog/',
529 'docs' => 'https://wpsso.com/docs/plugins/wpsso-google-merchant-feed/',
530 'install' => 'https://wpsso.com/docs/plugins/wpsso-google-merchant-feed/installation/',
531 'faqs' => '',
532 'notes' => '',
533 'support' => '', // Premium support ticket.
534 'purchase' => '', // Purchase page.
535 'info' => '', // License information.
536 'update' => 'https://wpsso.com/extend/plugins/wpsso-google-merchant-feed/update/',
537 'download' => 'https://wpsso.com/extend/plugins/wpsso-google-merchant-feed/latest/',
538 ),
539 ),
540 'wpssomrp' => array( // Plugin acronym.
541 'short' => 'WPSSO MRP', // Short plugin name.
542 'name' => 'WPSSO Schema Merchant Return Policy Manager',
543 'desc' => 'Manage Merchant Return Policies for Google Merchant listings and Schema markup.',
544 'slug' => 'wpsso-merchant-return-policy',
545 'base' => 'wpsso-merchant-return-policy/wpsso-merchant-return-policy.php',
546 'update_auth' => '', // No premium version.
547
548 /*
549 * URLs or relative paths to plugin banners and icons.
550 */
551 'assets' => array(
552
553 /*
554 * Banner image array keys are 'low' and 'high'.
555 */
556 'banners' => array(
557 'low' => 'https://surniaulula.github.io/wpsso-merchant-return-policy/assets/banner-772x250.jpg',
558 'high' => 'https://surniaulula.github.io/wpsso-merchant-return-policy/assets/banner-1544x500.jpg',
559 ),
560
561 /*
562 * Icon image array keys are '1x' and '2x'.
563 */
564 'icons' => array(
565 '1x' => 'https://surniaulula.github.io/wpsso-merchant-return-policy/assets/icon-128x128.png',
566 '2x' => 'https://surniaulula.github.io/wpsso-merchant-return-policy/assets/icon-256x256.png',
567 ),
568 ),
569 'hosts' => array(
570 'wp_org' => true,
571 'github' => true,
572 'wpsso' => true,
573 ),
574 'url' => array(
575
576 /*
577 * WordPress.org URLs.
578 */
579 'home' => 'https://wordpress.org/plugins/wpsso-merchant-return-policy/',
580 'forum' => 'https://wordpress.org/support/plugin/wpsso-merchant-return-policy',
581 'review' => 'https://wordpress.org/support/plugin/wpsso-merchant-return-policy/reviews/?rate=5#new-post',
582
583 /*
584 * GitHub.com URLs.
585 */
586 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-merchant-return-policy/master/readme.txt',
587
588 /*
589 * WPSSO.com URLs.
590 */
591 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-merchant-return-policy/changelog/',
592 'docs' => 'https://wpsso.com/docs/plugins/wpsso-merchant-return-policy/',
593 'install' => 'https://wpsso.com/docs/plugins/wpsso-merchant-return-policy/installation/',
594 'faqs' => '',
595 'notes' => '',
596 'support' => '', // Premium support ticket.
597 'purchase' => '', // Purchase page.
598 'info' => '', // License information.
599 'update' => 'https://wpsso.com/extend/plugins/wpsso-merchant-return-policy/update/',
600 'download' => 'https://wpsso.com/extend/plugins/wpsso-merchant-return-policy/latest/',
601 ),
602 ),
603 'wpssoopm' => array( // Plugin acronym.
604 'short' => 'WPSSO OPM', // Short plugin name.
605 'name' => 'WPSSO Schema Organization and Place Manager',
606 'desc' => 'Manage Organizations and Places (Local Businesses, Venues, etc.) for Google, Facebook, Pinterest, and Schema markup.',
607 'slug' => 'wpsso-organization-place',
608 'base' => 'wpsso-organization-place/wpsso-organization-place.php',
609 'update_auth' => '', // No premium version.
610
611 /*
612 * URLs or relative paths to plugin banners and icons.
613 */
614 'assets' => array(
615
616 /*
617 * Banner image array keys are 'low' and 'high'.
618 */
619 'banners' => array(
620 'low' => 'https://surniaulula.github.io/wpsso-organization-place/assets/banner-772x250.jpg',
621 'high' => 'https://surniaulula.github.io/wpsso-organization-place/assets/banner-1544x500.jpg',
622 ),
623
624 /*
625 * Icon image array keys are '1x' and '2x'.
626 */
627 'icons' => array(
628 '1x' => 'https://surniaulula.github.io/wpsso-organization-place/assets/icon-128x128.png',
629 '2x' => 'https://surniaulula.github.io/wpsso-organization-place/assets/icon-256x256.png',
630 ),
631 ),
632 'hosts' => array(
633 'wp_org' => true,
634 'github' => true,
635 'wpsso' => true,
636 ),
637 'url' => array(
638
639 /*
640 * WordPress.org URLs.
641 */
642 'home' => 'https://wordpress.org/plugins/wpsso-organization-place/',
643 'forum' => 'https://wordpress.org/support/plugin/wpsso-organization-place',
644 'review' => 'https://wordpress.org/support/plugin/wpsso-organization-place/reviews/?rate=5#new-post',
645
646 /*
647 * GitHub.com URLs.
648 */
649 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-organization-place/master/readme.txt',
650
651 /*
652 * WPSSO.com URLs.
653 */
654 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-organization-place/changelog/',
655 'docs' => 'https://wpsso.com/docs/plugins/wpsso-organization-place/',
656 'install' => 'https://wpsso.com/docs/plugins/wpsso-organization-place/installation/',
657 'faqs' => '',
658 'notes' => '',
659 'support' => '', // Premium support ticket.
660 'purchase' => '', // Purchase page.
661 'info' => '', // License information.
662 'update' => 'https://wpsso.com/extend/plugins/wpsso-organization-place/update/',
663 'download' => 'https://wpsso.com/extend/plugins/wpsso-organization-place/latest/',
664 ),
665 ),
666 'wpssorar' => array( // Plugin acronym.
667 'short' => 'WPSSO RAR', // Short plugin name.
668 'name' => 'WPSSO Ratings and Reviews',
669 'desc' => 'Adds Ratings and Reviews Features to the WordPress Comments System.',
670 'slug' => 'wpsso-ratings-and-reviews',
671 'base' => 'wpsso-ratings-and-reviews/wpsso-ratings-and-reviews.php',
672 'update_auth' => '', // No premium version.
673
674 /*
675 * URLs or relative paths to plugin banners and icons.
676 */
677 'assets' => array(
678
679 /*
680 * Banner image array keys are 'low' and 'high'.
681 */
682 'banners' => array(
683 'low' => 'https://surniaulula.github.io/wpsso-ratings-and-reviews/assets/banner-772x250.jpg',
684 'high' => 'https://surniaulula.github.io/wpsso-ratings-and-reviews/assets/banner-1544x500.jpg',
685 ),
686
687 /*
688 * Icon image array keys are '1x' and '2x'.
689 */
690 'icons' => array(
691 '1x' => 'https://surniaulula.github.io/wpsso-ratings-and-reviews/assets/icon-128x128.png',
692 '2x' => 'https://surniaulula.github.io/wpsso-ratings-and-reviews/assets/icon-256x256.png',
693 ),
694 ),
695 'hosts' => array(
696 'wp_org' => true,
697 'github' => true,
698 'wpsso' => true,
699 ),
700 'url' => array(
701
702 /*
703 * WordPress.org URLs.
704 */
705 'home' => 'https://wordpress.org/plugins/wpsso-ratings-and-reviews/',
706 'forum' => 'https://wordpress.org/support/plugin/wpsso-ratings-and-reviews',
707 'review' => 'https://wordpress.org/support/plugin/wpsso-ratings-and-reviews/reviews/?rate=5#new-post',
708
709 /*
710 * GitHub.com URLs.
711 */
712 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-ratings-and-reviews/master/readme.txt',
713
714 /*
715 * WPSSO.com URLs.
716 */
717 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-ratings-and-reviews/changelog/',
718 'docs' => 'https://wpsso.com/docs/plugins/wpsso-ratings-and-reviews/',
719 'install' => 'https://wpsso.com/docs/plugins/wpsso-ratings-and-reviews/installation/',
720 'faqs' => '',
721 'notes' => 'https://wpsso.com/docs/plugins/wpsso-ratings-and-reviews/notes/',
722 'support' => '', // Premium support ticket.
723 'purchase' => '', // Purchase page.
724 'info' => '', // License information.
725 'update' => 'https://wpsso.com/extend/plugins/wpsso-ratings-and-reviews/update/',
726 'download' => 'https://wpsso.com/extend/plugins/wpsso-ratings-and-reviews/latest/',
727 ),
728 ),
729 'wpssorest' => array( // Plugin acronym.
730 'short' => 'WPSSO REST', // Short plugin name.
731 'name' => 'WPSSO REST API',
732 'desc' => 'Extends the WordPress REST API post, term, and user query results with an array of meta tags and Schema JSON-LD markup.',
733 'slug' => 'wpsso-rest-api',
734 'base' => 'wpsso-rest-api/wpsso-rest-api.php',
735 'update_auth' => '', // No premium version.
736
737 /*
738 * URLs or relative paths to plugin banners and icons.
739 */
740 'assets' => array(
741
742 /*
743 * Banner image array keys are 'low' and 'high'.
744 */
745 'banners' => array(
746 'low' => 'https://surniaulula.github.io/wpsso-rest-api/assets/banner-772x250.jpg',
747 'high' => 'https://surniaulula.github.io/wpsso-rest-api/assets/banner-1544x500.jpg',
748 ),
749
750 /*
751 * Icon image array keys are '1x' and '2x'.
752 */
753 'icons' => array(
754 '1x' => 'https://surniaulula.github.io/wpsso-rest-api/assets/icon-128x128.png',
755 '2x' => 'https://surniaulula.github.io/wpsso-rest-api/assets/icon-256x256.png',
756 ),
757 ),
758 'hosts' => array(
759 'wp_org' => true,
760 'github' => true,
761 'wpsso' => true,
762 ),
763 'url' => array(
764
765 /*
766 * WordPress.org URLs.
767 */
768 'home' => 'https://wordpress.org/plugins/wpsso-rest-api/',
769 'forum' => 'https://wordpress.org/support/plugin/wpsso-rest-api',
770 'review' => 'https://wordpress.org/support/plugin/wpsso-rest-api/reviews/?rate=5#new-post',
771
772 /*
773 * GitHub.com URLs.
774 */
775 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-rest-api/master/readme.txt',
776
777 /*
778 * WPSSO.com URLs.
779 */
780 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-rest-api/changelog/',
781 'docs' => 'https://wpsso.com/docs/plugins/wpsso-rest-api/',
782 'install' => 'https://wpsso.com/docs/plugins/wpsso-rest-api/installation/',
783 'faqs' => '',
784 'notes' => '',
785 'support' => '', // Premium support ticket.
786 'purchase' => '', // Purchase page.
787 'info' => '', // License information.
788 'update' => 'https://wpsso.com/extend/plugins/wpsso-rest-api/update/',
789 'download' => 'https://wpsso.com/extend/plugins/wpsso-rest-api/latest/',
790 ),
791 ),
792 'wpssossm' => array( // Plugin acronym.
793 'short' => 'WPSSO SSM', // Short plugin name.
794 'name' => 'WPSSO Strip Schema Microdata',
795 'desc' => 'Remove Schema Microdata and RDFa from the webpage for better Google Rich Results using Schema JSON-LD markup.',
796 'slug' => 'wpsso-strip-schema-microdata',
797 'base' => 'wpsso-strip-schema-microdata/wpsso-strip-schema-microdata.php',
798 'update_auth' => '', // No premium version.
799
800 /*
801 * URLs or relative paths to plugin banners and icons.
802 */
803 'assets' => array(
804
805 /*
806 * Banner image array keys are 'low' and 'high'.
807 */
808 'banners' => array(
809 'low' => 'https://surniaulula.github.io/wpsso-strip-schema-microdata/assets/banner-772x250.jpg',
810 'high' => 'https://surniaulula.github.io/wpsso-strip-schema-microdata/assets/banner-1544x500.jpg',
811 ),
812
813 /*
814 * Icon image array keys are '1x' and '2x'.
815 */
816 'icons' => array(
817 '1x' => 'https://surniaulula.github.io/wpsso-strip-schema-microdata/assets/icon-128x128.png',
818 '2x' => 'https://surniaulula.github.io/wpsso-strip-schema-microdata/assets/icon-256x256.png',
819 ),
820 ),
821 'hosts' => array(
822 'wp_org' => true,
823 'github' => true,
824 'wpsso' => true,
825 ),
826 'url' => array(
827
828 /*
829 * WordPress.org URLs.
830 */
831 'home' => 'https://wordpress.org/plugins/wpsso-strip-schema-microdata/',
832 'forum' => 'https://wordpress.org/support/plugin/wpsso-strip-schema-microdata',
833 'review' => 'https://wordpress.org/support/plugin/wpsso-strip-schema-microdata/reviews/?rate=5#new-post',
834
835 /*
836 * GitHub.com URLs.
837 */
838 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-strip-schema-microdata/master/readme.txt',
839
840 /*
841 * WPSSO.com URLs.
842 */
843 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-strip-schema-microdata/changelog/',
844 'docs' => 'https://wpsso.com/docs/plugins/wpsso-strip-schema-microdata/',
845 'install' => 'https://wpsso.com/docs/plugins/wpsso-strip-schema-microdata/installation/',
846 'faqs' => '',
847 'notes' => '',
848 'support' => '', // Premium support ticket.
849 'purchase' => '', // Purchase page.
850 'info' => '', // License information.
851 'update' => 'https://wpsso.com/extend/plugins/wpsso-strip-schema-microdata/update/',
852 'download' => 'https://wpsso.com/extend/plugins/wpsso-strip-schema-microdata/latest/',
853 ),
854 ),
855 'wpssotie' => array( // Plugin acronym.
856 'short' => 'WPSSO TIE', // Short plugin name.
857 'name' => 'WPSSO Tune WP Image Editors',
858 'desc' => 'Improves the appearance of WordPress images for better click through rates from social and search sites.',
859 'slug' => 'wpsso-tune-image-editors',
860 'base' => 'wpsso-tune-image-editors/wpsso-tune-image-editors.php',
861 'update_auth' => '', // No premium version.
862
863 /*
864 * URLs or relative paths to plugin banners and icons.
865 */
866 'assets' => array(
867
868 /*
869 * Banner image array keys are 'low' and 'high'.
870 */
871 'banners' => array(
872 'low' => 'https://surniaulula.github.io/wpsso-tune-image-editors/assets/banner-772x250.jpg',
873 'high' => 'https://surniaulula.github.io/wpsso-tune-image-editors/assets/banner-1544x500.jpg',
874 ),
875
876 /*
877 * Icon image array keys are '1x' and '2x'.
878 */
879 'icons' => array(
880 '1x' => 'https://surniaulula.github.io/wpsso-tune-image-editors/assets/icon-128x128.png',
881 '2x' => 'https://surniaulula.github.io/wpsso-tune-image-editors/assets/icon-256x256.png',
882 ),
883 ),
884 'hosts' => array(
885 'wp_org' => true,
886 'github' => true,
887 'wpsso' => true,
888 ),
889 'url' => array(
890
891 /*
892 * WordPress.org URLs.
893 */
894 'home' => 'https://wordpress.org/plugins/wpsso-tune-image-editors/',
895 'forum' => 'https://wordpress.org/support/plugin/wpsso-tune-image-editors',
896 'review' => 'https://wordpress.org/support/plugin/wpsso-tune-image-editors/reviews/?rate=5#new-post',
897
898 /*
899 * GitHub.com URLs.
900 */
901 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-tune-image-editors/master/readme.txt',
902
903 /*
904 * WPSSO.com URLs.
905 */
906 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-tune-image-editors/changelog/',
907 'docs' => 'https://wpsso.com/docs/plugins/wpsso-tune-image-editors/',
908 'install' => 'https://wpsso.com/docs/plugins/wpsso-tune-image-editors/installation/',
909 'faqs' => '',
910 'notes' => '',
911 'support' => '', // Premium support ticket.
912 'purchase' => '', // Purchase page.
913 'info' => '', // License information.
914 'update' => 'https://wpsso.com/extend/plugins/wpsso-tune-image-editors/update/',
915 'download' => 'https://wpsso.com/extend/plugins/wpsso-tune-image-editors/latest/',
916 ),
917 ),
918 'wpssoul' => array( // Plugin acronym.
919 'short' => 'WPSSO UL', // Short plugin name.
920 'name' => 'WPSSO User Locale Selector',
921 'desc' => 'Quick and easy locale / language / region selector for the WordPress admin toolbar.',
922 'slug' => 'wpsso-user-locale',
923 'base' => 'wpsso-user-locale/wpsso-user-locale.php',
924 'update_auth' => '', // No premium version.
925
926 /*
927 * URLs or relative paths to plugin banners and icons.
928 */
929 'assets' => array(
930
931 /*
932 * Banner image array keys are 'low' and 'high'.
933 */
934 'banners' => array(
935 'low' => 'https://surniaulula.github.io/wpsso-user-locale/assets/banner-772x250.jpg',
936 'high' => 'https://surniaulula.github.io/wpsso-user-locale/assets/banner-1544x500.jpg',
937 ),
938
939 /*
940 * Icon image array keys are '1x' and '2x'.
941 */
942 'icons' => array(
943 '1x' => 'https://surniaulula.github.io/wpsso-user-locale/assets/icon-128x128.png',
944 '2x' => 'https://surniaulula.github.io/wpsso-user-locale/assets/icon-256x256.png',
945 ),
946 ),
947 'hosts' => array(
948 'wp_org' => true,
949 'github' => true,
950 'wpsso' => true,
951 ),
952 'url' => array(
953
954 /*
955 * WordPress.org URLs.
956 */
957 'home' => 'https://wordpress.org/plugins/wpsso-user-locale/',
958 'forum' => 'https://wordpress.org/support/plugin/wpsso-user-locale',
959 'review' => 'https://wordpress.org/support/plugin/wpsso-user-locale/reviews/?rate=5#new-post',
960
961 /*
962 * GitHub.com URLs.
963 */
964 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-user-locale/master/readme.txt',
965
966 /*
967 * WPSSO.com URLs.
968 */
969 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-user-locale/changelog/',
970 'docs' => 'https://wpsso.com/docs/plugins/wpsso-user-locale/',
971 'install' => 'https://wpsso.com/docs/plugins/wpsso-user-locale/installation/',
972 'faqs' => '',
973 'notes' => 'https://wpsso.com/docs/plugins/wpsso-user-locale/notes/',
974 'support' => '', // Premium support ticket.
975 'purchase' => '', // Purchase page.
976 'info' => '', // License information.
977 'update' => 'https://wpsso.com/extend/plugins/wpsso-user-locale/update/',
978 'download' => 'https://wpsso.com/extend/plugins/wpsso-user-locale/latest/',
979 ),
980 ),
981 'wpssoum' => array( // Plugin acronym.
982 'short' => 'WPSSO UM', // Short plugin name.
983 'name' => 'WPSSO Update Manager',
984 'desc' => 'Update Manager for the WPSSO Core Premium plugin.',
985 'slug' => 'wpsso-um',
986 'base' => 'wpsso-um/wpsso-um.php',
987 'update_auth' => '', // No premium version.
988
989 /*
990 * URLs or relative paths to plugin banners and icons.
991 */
992 'assets' => array(
993
994 /*
995 * Banner image array keys are 'low' and 'high'.
996 */
997 'banners' => array(
998 'low' => 'https://surniaulula.github.io/wpsso-um/assets/banner-772x250.jpg',
999 'high' => 'https://surniaulula.github.io/wpsso-um/assets/banner-1544x500.jpg',
1000 ),
1001
1002 /*
1003 * Icon image array keys are '1x' and '2x'.
1004 */
1005 'icons' => array(
1006 '1x' => 'https://surniaulula.github.io/wpsso-um/assets/icon-128x128.png',
1007 '2x' => 'https://surniaulula.github.io/wpsso-um/assets/icon-256x256.png',
1008 ),
1009 ),
1010 'hosts' => array(
1011 'wp_org' => false, // Add-on is not available on wordpress.org.
1012 'github' => true,
1013 'wpsso' => true,
1014 ),
1015 'url' => array(
1016
1017 /*
1018 * GitHub.com URLs.
1019 */
1020 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-um/master/readme.txt',
1021
1022 /*
1023 * WPSSO.com URLs.
1024 */
1025 'home' => 'https://wpsso.com/extend/plugins/wpsso-um/',
1026 'forum' => '',
1027 'review' => '',
1028 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-um/changelog/',
1029 'docs' => 'https://wpsso.com/docs/plugins/wpsso-um/',
1030 'install' => 'https://wpsso.com/docs/plugins/wpsso-um/installation/',
1031 'faqs' => '',
1032 'notes' => '',
1033 'support' => '', // Premium support ticket.
1034 'purchase' => '', // Purchase page.
1035 'info' => '', // License information.
1036 'update' => 'https://wpsso.com/extend/plugins/wpsso-um/update/',
1037 'download' => 'https://wpsso.com/extend/plugins/wpsso-um/latest/',
1038 ),
1039 ),
1040 'wpssowcmd' => array( // Plugin acronym.
1041 'short' => 'WPSSO WCMD', // Short plugin name.
1042 'name' => 'WPSSO Schema Product Metadata for WooCommerce',
1043 'desc' => 'MPN, ISBN, GTIN-8, UPC, EAN, GTIN-14, net dimensions, and fluid volume for better WooCommerce Schema markup.',
1044 'slug' => 'wpsso-wc-metadata',
1045 'base' => 'wpsso-wc-metadata/wpsso-wc-metadata.php',
1046 'update_auth' => '', // No premium version.
1047
1048 /*
1049 * URLs or relative paths to plugin banners and icons.
1050 */
1051 'assets' => array(
1052
1053 /*
1054 * Banner image array keys are 'low' and 'high'.
1055 */
1056 'banners' => array(
1057 'low' => 'https://surniaulula.github.io/wpsso-wc-metadata/assets/banner-772x250.jpg',
1058 'high' => 'https://surniaulula.github.io/wpsso-wc-metadata/assets/banner-1544x500.jpg',
1059 ),
1060
1061 /*
1062 * Icon image array keys are '1x' and '2x'.
1063 */
1064 'icons' => array(
1065 '1x' => 'https://surniaulula.github.io/wpsso-wc-metadata/assets/icon-128x128.png',
1066 '2x' => 'https://surniaulula.github.io/wpsso-wc-metadata/assets/icon-256x256.png',
1067 ),
1068 ),
1069 'hosts' => array(
1070 'wp_org' => true,
1071 'github' => true,
1072 'wpsso' => true,
1073 ),
1074 'url' => array(
1075
1076 /*
1077 * WordPress.org URLs.
1078 */
1079 'home' => 'https://wordpress.org/plugins/wpsso-wc-metadata/',
1080 'forum' => 'https://wordpress.org/support/plugin/wpsso-wc-metadata',
1081 'review' => 'https://wordpress.org/support/plugin/wpsso-wc-metadata/reviews/?rate=5#new-post',
1082
1083 /*
1084 * GitHub.com URLs.
1085 */
1086 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-wc-metadata/master/readme.txt',
1087
1088 /*
1089 * WPSSO.com URLs.
1090 */
1091 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-wc-metadata/changelog/',
1092 'docs' => 'https://wpsso.com/docs/plugins/wpsso-wc-metadata/',
1093 'install' => 'https://wpsso.com/docs/plugins/wpsso-wc-metadata/installation/',
1094 'faqs' => '',
1095 'notes' => '',
1096 'support' => '', // Premium support ticket.
1097 'purchase' => '', // Purchase page.
1098 'info' => '', // License information.
1099 'update' => 'https://wpsso.com/extend/plugins/wpsso-wc-metadata/update/',
1100 'download' => 'https://wpsso.com/extend/plugins/wpsso-wc-metadata/latest/',
1101 ),
1102 ),
1103 'wpssowcsdt' => array( // Plugin acronym.
1104 'short' => 'WPSSO WCSDT', // Short plugin name.
1105 'name' => 'WPSSO Schema Shipping Delivery Time for WooCommerce',
1106 'desc' => 'Shipping delivery time estimates for WooCommerce shipping zones, methods, and classes.',
1107 'slug' => 'wpsso-wc-shipping-delivery-time',
1108 'base' => 'wpsso-wc-shipping-delivery-time/wpsso-wc-shipping-delivery-time.php',
1109 'update_auth' => '', // No premium version.
1110
1111 /*
1112 * URLs or relative paths to plugin banners and icons.
1113 */
1114 'assets' => array(
1115
1116 /*
1117 * Banner image array keys are 'low' and 'high'.
1118 */
1119 'banners' => array(
1120 'low' => 'https://surniaulula.github.io/wpsso-wc-shipping-delivery-time/assets/banner-772x250.jpg',
1121 'high' => 'https://surniaulula.github.io/wpsso-wc-shipping-delivery-time/assets/banner-1544x500.jpg',
1122 ),
1123
1124 /*
1125 * Icon image array keys are '1x' and '2x'.
1126 */
1127 'icons' => array(
1128 '1x' => 'https://surniaulula.github.io/wpsso-wc-shipping-delivery-time/assets/icon-128x128.png',
1129 '2x' => 'https://surniaulula.github.io/wpsso-wc-shipping-delivery-time/assets/icon-256x256.png',
1130 ),
1131 ),
1132 'hosts' => array(
1133 'wp_org' => true,
1134 'github' => true,
1135 'wpsso' => true,
1136 ),
1137 'url' => array(
1138
1139 /*
1140 * WordPress.org URLs.
1141 */
1142 'home' => 'https://wordpress.org/plugins/wpsso-wc-shipping-delivery-time/',
1143 'forum' => 'https://wordpress.org/support/plugin/wpsso-wc-shipping-delivery-time',
1144 'review' => 'https://wordpress.org/support/plugin/wpsso-wc-shipping-delivery-time/reviews/?rate=5#new-post',
1145
1146 /*
1147 * GitHub.com URLs.
1148 */
1149 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-wc-shipping-delivery-time/main/readme.txt',
1150
1151 /*
1152 * WPSSO.com URLs.
1153 */
1154 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-wc-shipping-delivery-time/changelog/',
1155 'docs' => 'https://wpsso.com/docs/plugins/wpsso-wc-shipping-delivery-time/',
1156 'install' => 'https://wpsso.com/docs/plugins/wpsso-wc-shipping-delivery-time/installation/',
1157 'faqs' => 'https://wpsso.com/docs/plugins/wpsso-wc-shipping-delivery-time/faqs/',
1158 'notes' => '',
1159 'support' => '', // Premium support ticket.
1160 'purchase' => '', // Purchase page.
1161 'info' => '', // License information.
1162 'update' => 'https://wpsso.com/extend/plugins/wpsso-wc-shipping-delivery-time/update/',
1163 'download' => 'https://wpsso.com/extend/plugins/wpsso-wc-shipping-delivery-time/latest/',
1164 ),
1165 ),
1166 'wpssowpsm' => array( // Plugin acronym.
1167 'short' => 'WPSSO WPSM', // Short plugin name.
1168 'name' => 'WPSSO WP Sitemaps XML',
1169 'desc' => 'Improves the WordPress sitemaps XML with article modification times, alternate language URLs, images sitemaps, news sitemaps and more.',
1170 'slug' => 'wpsso-wp-sitemaps',
1171 'base' => 'wpsso-wp-sitemaps/wpsso-wp-sitemaps.php',
1172 'update_auth' => '', // No premium version.
1173
1174 /*
1175 * URLs or relative paths to plugin banners and icons.
1176 */
1177 'assets' => array(
1178
1179 /*
1180 * Banner image array keys are 'low' and 'high'.
1181 */
1182 'banners' => array(
1183 'low' => 'https://surniaulula.github.io/wpsso-wp-sitemaps/assets/banner-772x250.jpg',
1184 'high' => 'https://surniaulula.github.io/wpsso-wp-sitemaps/assets/banner-1544x500.jpg',
1185 ),
1186
1187 /*
1188 * Icon image array keys are '1x' and '2x'.
1189 */
1190 'icons' => array(
1191 '1x' => 'https://surniaulula.github.io/wpsso-wp-sitemaps/assets/icon-128x128.png',
1192 '2x' => 'https://surniaulula.github.io/wpsso-wp-sitemaps/assets/icon-256x256.png',
1193 ),
1194 ),
1195 'hosts' => array(
1196 'wp_org' => true,
1197 'github' => true,
1198 'wpsso' => true,
1199 ),
1200 'url' => array(
1201
1202 /*
1203 * WordPress.org URLs.
1204 */
1205 'home' => 'https://wordpress.org/plugins/wpsso-wp-sitemaps/',
1206 'forum' => 'https://wordpress.org/support/plugin/wpsso-wp-sitemaps',
1207 'review' => 'https://wordpress.org/support/plugin/wpsso-wp-sitemaps/reviews/?rate=5#new-post',
1208
1209 /*
1210 * GitHub.com URLs.
1211 */
1212 'readme_txt' => 'https://raw.githubusercontent.com/SurniaUlula/wpsso-wp-sitemaps/master/readme.txt',
1213
1214 /*
1215 * WPSSO.com URLs.
1216 */
1217 'changelog' => 'https://wpsso.com/extend/plugins/wpsso-wp-sitemaps/changelog/',
1218 'docs' => 'https://wpsso.com/docs/plugins/wpsso-wp-sitemaps/',
1219 'install' => 'https://wpsso.com/docs/plugins/wpsso-wp-sitemaps/installation/',
1220 'faqs' => '',
1221 'notes' => '',
1222 'support' => '', // Premium support ticket.
1223 'purchase' => '', // Purchase page.
1224 'info' => '', // License information.
1225 'update' => 'https://wpsso.com/extend/plugins/wpsso-wp-sitemaps/update/',
1226 'download' => 'https://wpsso.com/extend/plugins/wpsso-wp-sitemaps/latest/',
1227 ),
1228 ),
1229 ),
1230 'opt' => array(
1231 'defaults' => array(
1232 'checksum' => '', // Checksum of plugin versions.
1233 'opt_checksum' => '', // Checksum of option versions.
1234 'opt_versions' => array(),
1235
1236 /*
1237 * Site options.
1238 */
1239 'site_name' => '', // Site Name (localized).
1240 'site_name_alt' => '', // Site Alternate Name (localized).
1241 'site_desc' => '', // Site Description (localized).
1242 'site_home_url' => '', // Site Home URL (localized).
1243 'site_pub_schema_type' => 'organization', // Site Publisher Type.
1244 'site_pub_person_id' => 'none', // Site Publisher Person.
1245 'site_org_logo_url' => '', // Organization Logo URL (localized)
1246 'site_org_banner_url' => '', // Organization Banner URL (localized).
1247 'site_org_place_id' => 'none', // Organization Location.
1248 'site_org_schema_type' => 'organization', // Organization Schema Type.
1249
1250 /*
1251 * Facebook options.
1252 */
1253 'fb_publisher_url' => '', // Facebook Business Page URL (localized).
1254 'fb_app_id' => '966242223397117', // Facebook Application ID.
1255 'fb_locale' => 'en_US', // Facebook Locale.
1256
1257 /*
1258 * Open Graph options.
1259 *
1260 * See WpssoOpengraph->add_data_og_type_md().
1261 */
1262 'og_def_img_id' => '', // Default Image ID.
1263 'og_def_img_url' => '', // Default Image URL.
1264 'og_def_currency' => 'USD', // Default Currency.
1265 'og_def_country' => 'none', // Default Country.
1266 'og_def_timezone' => 'UTC', // Default Timezone.
1267 'og_def_dimension_units' => 'cm', // Default Dimension Units.
1268 'og_def_weight_units' => 'kg', // Default Weight Units.
1269 'og_def_fluid_volume_units' => 'ml', // Default Fluid Volume Units.
1270 'og_img_width' => 1200,
1271 'og_img_height' => 628,
1272 'og_img_crop' => 1,
1273 'og_img_crop_x' => 'center',
1274 'og_img_crop_y' => 'center',
1275 'og_img_max' => 1, // Maximum Images to Include.
1276 'og_title_sep' => '-', // Title Separator.
1277 'og_ellipsis' => '...', // Truncated Text Ellipsis.
1278 'og_desc_hashtags' => 0, // Description Hashtags.
1279 'og_vid_max' => 1, // Maximum Videos to Include.
1280 'og_vid_autoplay' => 0, // Force Autoplay when Possible.
1281 'og_vid_prev_img' => 1, // Include Video Preview Images.
1282
1283 /*
1284 * Advanced Settings > Document Types > Open Graph.
1285 */
1286 'og_type_for_archive_page' => 'website',
1287 'og_type_for_comment' => 'article',
1288 'og_type_for_comment_reply' => 'article',
1289 'og_type_for_comment_review' => 'article',
1290 'og_type_for_home_page' => 'website',
1291 'og_type_for_home_posts' => 'website',
1292 'og_type_for_search_page' => 'website',
1293 'og_type_for_user_page' => 'profile',
1294
1295 /*
1296 * Advanced Settings > Document Types > Open Graph tab: Post Types.
1297 */
1298 'og_type_for_attachment' => 'website',
1299 'og_type_for_article' => 'article',
1300 'og_type_for_book' => 'book',
1301 'og_type_for_business' => 'place',
1302 'og_type_for_contact_point' => 'place',
1303 'og_type_for_download' => 'product', // For Easy Digital Downloads.
1304 'og_type_for_organization' => 'website',
1305 'og_type_for_page' => 'article',
1306 'og_type_for_place' => 'place',
1307 'og_type_for_post' => 'article',
1308 'og_type_for_product' => 'product', // For WooCommerce.
1309 'og_type_for_product_variation' => 'product', // For WooCommerce.
1310 'og_type_for_question' => 'article',
1311 'og_type_for_tc_events' => 'article', // For Tickera.
1312 'og_type_for_tribe_events' => 'article', // For The Events Calendar.
1313 'og_type_for_website' => 'website',
1314
1315 /*
1316 * Advanced Settings > Document Types > Open Graph tab: Taxonomies.
1317 */
1318 'og_type_for_tax_category' => 'website',
1319 'og_type_for_tax_faq_category' => 'website',
1320 'og_type_for_tax_link_category' => 'website',
1321 'og_type_for_tax_post_tag' => 'website',
1322 'og_type_for_tax_product_brand' => 'website', // For WooCommerce Brands.
1323 'og_type_for_tax_product_cat' => 'website', // For WooCommerce.
1324 'og_type_for_tax_product_tag' => 'website', // For WooCommerce.
1325 'og_type_for_tax_pwb-brand' => 'website', // For Perfect Brands for WooCommerce.
1326 'og_type_for_tax_tribe_events_cat' => 'website', // For The Events Calendar.
1327 'og_type_for_tax_yith_product_brand' => 'website', // For YITH WooCommerce Brands Add-on.
1328
1329 /*
1330 * Pinterest options.
1331 */
1332 'pin_publisher_url' => '',
1333 'pin_add_nopin_header_img_tag' => 1, // Add "nopin" to Site Header Image.
1334 'pin_add_nopin_media_img_tag' => 0, // Add Pinterest "nopin" to Images.
1335 'pin_add_img_html' => 0, // Add Hidden Image for Pinterest.
1336 'pin_img_width' => 1200,
1337 'pin_img_height' => 1800,
1338 'pin_img_crop' => 0,
1339 'pin_img_crop_x' => 'center',
1340 'pin_img_crop_y' => 'center',
1341
1342 /*
1343 * Robots options.
1344 */
1345 'robots_max_snippet' => -1,
1346 'robots_max_image_preview' => 'large',
1347 'robots_max_video_preview' => -1,
1348
1349 /*
1350 * Schema options.
1351 */
1352 'schema_1x1_img_width' => 1200,
1353 'schema_1x1_img_height' => 1200,
1354 'schema_1x1_img_crop' => 1,
1355 'schema_1x1_img_crop_x' => 'center',
1356 'schema_1x1_img_crop_y' => 'center',
1357 'schema_4x3_img_width' => 1200,
1358 'schema_4x3_img_height' => 900,
1359 'schema_4x3_img_crop' => 1,
1360 'schema_4x3_img_crop_x' => 'center',
1361 'schema_4x3_img_crop_y' => 'center',
1362 'schema_16x9_img_width' => 1200,
1363 'schema_16x9_img_height' => 675,
1364 'schema_16x9_img_crop' => 1,
1365 'schema_16x9_img_crop_x' => 'center',
1366 'schema_16x9_img_crop_y' => 'center',
1367
1368 /*
1369 * Advanced Settings > Document Types > Schema.
1370 */
1371 'schema_type_for_archive_page' => 'item.list',
1372 'schema_type_for_comment' => 'comment',
1373 'schema_type_for_comment_reply' => 'comment',
1374 'schema_type_for_comment_review' => 'review',
1375 'schema_type_for_home_page' => 'website',
1376 'schema_type_for_home_posts' => 'blog',
1377 'schema_type_for_search_page' => 'webpage.search.results',
1378 'schema_type_for_user_page' => 'webpage.profile',
1379
1380 /*
1381 * Advanced Settings > Document Types > Open Graph tab: Post Types.
1382 */
1383 'schema_type_for_attachment' => 'webpage',
1384 'schema_type_for_article' => 'article',
1385 'schema_type_for_book' => 'book',
1386 'schema_type_for_business' => 'local.business',
1387 'schema_type_for_contact_point' => 'contact.point',
1388 'schema_type_for_download' => 'product', // For Easy Digital Downloads.
1389 'schema_type_for_event' => 'event',
1390 'schema_type_for_howto' => 'howto',
1391 'schema_type_for_job_listing' => 'job.posting', // For WP Job Manager.
1392 'schema_type_for_jobpost' => 'job.posting', // For Simple Job Board.
1393 'schema_type_for_organization' => 'organization', // For WPSSO OPM.
1394 'schema_type_for_page' => 'article',
1395 'schema_type_for_person' => 'person',
1396 'schema_type_for_place' => 'place', // For WPSSO OPM.
1397 'schema_type_for_post' => 'blog.posting',
1398 'schema_type_for_product' => 'product', // For WooCommerce.
1399 'schema_type_for_product_group' => 'product.group', // For WooCommerce.
1400 'schema_type_for_qa' => 'webpage.qa',
1401 'schema_type_for_question' => 'question', // For WPSSO FAQ.
1402 'schema_type_for_review' => 'review', // For WP Product Review.
1403 'schema_type_for_service' => 'service', // For WPSSO OPM.
1404 'schema_type_for_tc_events' => 'event', // For Tickera.
1405 'schema_type_for_tribe_events' => 'event', // For The Events Calendar.
1406 'schema_type_for_webpage' => 'webpage',
1407 'schema_type_for_website' => 'website',
1408
1409 /*
1410 * Advanced Settings > Document Types > Open Graph tab: Taxonomies.
1411 */
1412 'schema_type_for_tax_category' => 'item.list',
1413 'schema_type_for_tax_faq_category' => 'webpage.faq', // For WPSSO FAQ.
1414 'schema_type_for_tax_link_category' => 'item.list',
1415 'schema_type_for_tax_post_tag' => 'item.list',
1416 'schema_type_for_tax_product_brand' => 'item.list', // For WooCommerce Brands.
1417 'schema_type_for_tax_product_cat' => 'item.list', // For WooCommerce.
1418 'schema_type_for_tax_product_tag' => 'item.list', // For WooCommerce.
1419 'schema_type_for_tax_pwb-brand' => 'item.list', // For Perfect WooCommerce Brands Add-on.
1420 'schema_type_for_tax_tribe_events_cat' => 'item.list', // For The Events Calendar.
1421 'schema_type_for_tax_yith_product_brand' => 'item.list', // For YITH WooCommerce Brands Add-on.
1422
1423 /*
1424 * Advanced Settings > Schema Defaults > Article.
1425 */
1426 'schema_def_add_articlebody_prop' => 0, // Add Article Body Property.
1427 'schema_def_article_section' => 'none', // Default Article Section.
1428
1429 /*
1430 * Advanced Settings > Schema Defaults > Book.
1431 */
1432 'schema_def_book_format' => 'none', // Default Book Format.
1433 'schema_def_book_author_type' => 'person', // Default Book Author Type.
1434
1435 /*
1436 * Advanced Settings > Schema Defaults > Creative Work.
1437 */
1438 'schema_def_add_date_created' => 0, // Add Date Created Property.
1439 'schema_def_add_date_published' => 1, // Add Date Published Property.
1440 'schema_def_add_date_modified' => 1, // Add Date Modified Property.
1441 'schema_def_add_text_prop' => 0, // Add Text Property.
1442 'schema_def_family_friendly' => 'none', // Default Family Friendly.
1443 'schema_def_pub_org_id' => 'site', // Default Publisher Organization.
1444 'schema_def_pub_person_id' => 'none', // Default Publisher Person.
1445 'schema_def_prov_org_id' => 'none', // Default Provider Organization.
1446 'schema_def_prov_person_id' => 'none', // Default Provider Person.
1447 'schema_def_fund_org_id' => 'none', // Default Funder Organization.
1448 'schema_def_fund_person_id' => 'none', // Default Funder Person.
1449
1450 /*
1451 * Advanced Settings > Schema Defaults > Event.
1452 */
1453 'schema_def_event_attendance' => 'https://schema.org/OfflineEventAttendanceMode', // Default Event Attendance.
1454 'schema_def_event_location_id' => 'none', // Default Event Venue.
1455 'schema_def_event_performer_org_id' => 'none', // Default Event Performer Organization.
1456 'schema_def_event_performer_person_id' => 'none', // Default Event Performer Person.
1457 'schema_def_event_organizer_org_id' => 'none', // Default Event Organizer Organization.
1458 'schema_def_event_organizer_person_id' => 'none', // Default Event Organizer Person.
1459 'schema_def_event_fund_org_id' => 'none', // Default Event Funder Organization.
1460 'schema_def_event_fund_person_id' => 'none', // Default Event Funder Person.
1461
1462 /*
1463 * Advanced Settings > Schema Defaults > Job Posting.
1464 */
1465 'schema_def_job_hiring_org_id' => 'none', // Default Hiring Organization.
1466 'schema_def_job_location_id' => 'none', // Default Job Location.
1467 'schema_def_job_location_type' => 'none', // Default Job Location Type.
1468
1469 /*
1470 * Advanced Settings > Schema Defaults > Place.
1471 */
1472 'schema_def_place_schema_type' => 'local.business', // Default Place Schema Type.
1473 'schema_def_place_country' => 'none', // Default Place Country.
1474 'schema_def_place_timezone' => 'UTC', // Default Place Timezone.
1475
1476 /*
1477 * Advanced Settings > Schema Defaults > Product.
1478 */
1479 'schema_def_product_aggr_offers' => 0, // Aggregate Offers by Currency.
1480 'schema_def_product_price_valid_days' => 30, // Default Product Prices Valid For.
1481 'schema_def_product_adult_type' => 'none', // Default Product Adult Type.
1482 'schema_def_product_age_group' => 'none', // Default Product Age Group.
1483 'schema_def_product_category' => 'none', // Default Product Google Category.
1484 'schema_def_product_condition' => 'https://schema.org/NewCondition', // Default Product Condition.
1485 'schema_def_product_energy_efficiency_min' => 'https://schema.org/EUEnergyEfficiencyCategoryD',
1486 'schema_def_product_energy_efficiency_max' => 'https://schema.org/EUEnergyEfficiencyCategoryA3Plus',
1487 'schema_def_product_mrp' => 'none', // Default Product Return Policy.
1488 'schema_def_product_size_group_0' => 'none',
1489 'schema_def_product_size_group_1' => 'none',
1490 'schema_def_product_size_system' => 'none',
1491 'schema_def_product_target_gender' => 'none', // Default Product Target Gender.
1492
1493 /*
1494 * Advanced Settings > Schema Defaults > Profile Page.
1495 */
1496 'schema_def_profile_page_mentions_prop' => 0, // Add Mentions Property.
1497
1498 /*
1499 * Advanced Settings > Schema Defaults > Review.
1500 */
1501 'schema_def_review_rating_min' => 0.5, // Default Review Rating Min.
1502 'schema_def_review_rating_max' => 5.0, // Default Review Rating Max.
1503 'schema_def_review_item_type' => 'product', // Default Subject Schema Type.
1504
1505 /*
1506 * Advanced Settings > Schema Defaults > Service.
1507 */
1508 'schema_def_service_prov_org_id' => 'none', // Default Service Provider Organization.
1509 'schema_def_service_prov_person_id' => 'none', // Default Service Provider Person.
1510
1511 /*
1512 * X (Twitter) Card options.
1513 */
1514 'tc_site' => '', // X (Twitter) Business @username (localized).
1515 'tc_type_singular' => 'summary_large_image', // X (Twitter) Card for Singular with Image.
1516 'tc_type_default' => 'summary', // X (Twitter) Card Type by Default.
1517
1518 /*
1519 * X (Twitter) Summary Card.
1520 *
1521 * See https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary.
1522 */
1523 'tc_sum_img_width' => 1200,
1524 'tc_sum_img_height' => 1200,
1525 'tc_sum_img_crop' => 1,
1526 'tc_sum_img_crop_x' => 'center',
1527 'tc_sum_img_crop_y' => 'center',
1528
1529 /*
1530 * X (Twitter) Summary Card Large Image.
1531 *
1532 * See https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/summary-card-with-large-image.
1533 */
1534 'tc_lrg_img_width' => 1200,
1535 'tc_lrg_img_height' => 628,
1536 'tc_lrg_img_crop' => 1,
1537 'tc_lrg_img_crop_x' => 'center',
1538 'tc_lrg_img_crop_y' => 'center',
1539
1540 /*
1541 * Schema thumbnail image size.
1542 */
1543 'thumb_img_width' => 1200,
1544 'thumb_img_height' => 628,
1545 'thumb_img_crop' => 1,
1546 'thumb_img_crop_x' => 'center',
1547 'thumb_img_crop_y' => 'center',
1548
1549 /*
1550 * Other publisher page URLs.
1551 */
1552 'instagram_publisher_url' => '', // Instagram Business Page URL (localized).
1553 'linkedin_publisher_url' => '', // LinkedIn Company Page URL (localized).
1554 'medium_publisher_url' => '', // Medium Business Page URL (localized).
1555 'myspace_publisher_url' => '', // Myspace Business Page URL (localized).
1556 'sc_publisher_url' => '', // Soundcloud Business Page URL (localized).
1557 'tiktok_publisher_url' => '', // TikTok Business Page URL (localized).
1558 'tumblr_publisher_url' => '', // Tumblr Business Page URL (localized).
1559 'wikipedia_publisher_url' => '', // Wikipedia Organization Page URL (localized).
1560 'yt_publisher_url' => '', // YouTube Business Channel URL (localized).
1561
1562 /*
1563 * Website verification IDs.
1564 */
1565 'ahrefs_site_verify' => '', // Ahrefs Website Verification ID.
1566 'baidu_site_verify' => '', // Baidu Website Verification ID.
1567 'fb_site_verify' => '', // Facebook Domain Verification ID.
1568 'g_site_verify' => '', // Google Website Verification ID.
1569 'bing_site_verify' => '', // Microsoft Bing Website Verification ID.
1570 'pin_site_verify' => '', // Pinterest Website Verification ID.
1571 'yandex_site_verify' => '', // Yandex Website Verification ID.
1572
1573 /*
1574 * Enable / disable individual head HTML tags.
1575 */
1576 'add_link_rel_author' => 0, // Deprecated - no longer used by Google.
1577 'add_link_rel_canonical' => 1,
1578 'add_link_rel_publisher' => 0, // Deprecated - no longer used by Google.
1579 'add_link_rel_shortlink' => 1,
1580 'add_meta_property_fb:admins' => 1,
1581 'add_meta_property_fb:app_id' => 1,
1582 'add_meta_property_al:android:app_name' => 1,
1583 'add_meta_property_al:android:package' => 1,
1584 'add_meta_property_al:android:url' => 1,
1585 'add_meta_property_al:ios:app_name' => 1,
1586 'add_meta_property_al:ios:app_store_id' => 1,
1587 'add_meta_property_al:ios:url' => 1,
1588 'add_meta_property_al:web:url' => 1,
1589 'add_meta_property_al:web:should_fallback' => 1,
1590 'add_meta_property_og:altitude' => 1,
1591 'add_meta_property_og:description' => 1,
1592 'add_meta_property_og:image:secure_url' => 0, // Use og:image instead.
1593 'add_meta_property_og:image:url' => 0, // Use og:image instead.
1594 'add_meta_property_og:image' => 1,
1595 'add_meta_property_og:image:width' => 1,
1596 'add_meta_property_og:image:height' => 1,
1597 'add_meta_property_og:image:alt' => 1,
1598 'add_meta_property_og:latitude' => 1,
1599 'add_meta_property_og:locale' => 1,
1600 'add_meta_property_og:longitude' => 1,
1601 'add_meta_property_og:site_name' => 1,
1602 'add_meta_property_og:title' => 1,
1603 'add_meta_property_og:type' => 1,
1604 'add_meta_property_og:updated_time' => 1,
1605 'add_meta_property_og:url' => 1,
1606 'add_meta_property_og:video:secure_url' => 0, // Use og:video instead.
1607 'add_meta_property_og:video:url' => 0, // Use og:video instead.
1608 'add_meta_property_og:video' => 1,
1609 'add_meta_property_og:video:type' => 1,
1610 'add_meta_property_og:video:width' => 1,
1611 'add_meta_property_og:video:height' => 1,
1612 'add_meta_property_og:video:tag' => 0, // Disabled by default.
1613 'add_meta_property_article:author' => 1,
1614 'add_meta_property_article:publisher' => 1,
1615 'add_meta_property_article:published_time' => 1,
1616 'add_meta_property_article:modified_time' => 1,
1617 'add_meta_property_article:expiration_time' => 1,
1618 'add_meta_property_article:section' => 1,
1619 'add_meta_property_article:tag' => 1,
1620 'add_meta_property_book:author' => 1,
1621 'add_meta_property_book:isbn' => 1,
1622 'add_meta_property_book:release_date' => 1,
1623 'add_meta_property_book:tag' => 1,
1624 'add_meta_property_music:album' => 1,
1625 'add_meta_property_music:album:disc' => 1,
1626 'add_meta_property_music:album:track' => 1,
1627 'add_meta_property_music:creator' => 1,
1628 'add_meta_property_music:duration' => 1,
1629 'add_meta_property_music:musician' => 1,
1630 'add_meta_property_music:release_date' => 1,
1631 'add_meta_property_music:song' => 1,
1632 'add_meta_property_music:song:disc' => 1,
1633 'add_meta_property_music:song:track' => 1,
1634 'add_meta_property_place:location:altitude' => 1,
1635 'add_meta_property_place:location:latitude' => 1,
1636 'add_meta_property_place:location:longitude' => 1,
1637 'add_meta_property_place:street_address' => 1,
1638 'add_meta_property_place:locality' => 1,
1639 'add_meta_property_place:region' => 1,
1640 'add_meta_property_place:postal_code' => 1,
1641 'add_meta_property_place:country_name' => 1,
1642 'add_meta_property_product:age_group' => 1,
1643 'add_meta_property_product:availability' => 1,
1644 'add_meta_property_product:brand' => 1,
1645 'add_meta_property_product:category' => 1, // Product Google Category.
1646 'add_meta_property_product:color' => 1,
1647 'add_meta_property_product:condition' => 1,
1648 'add_meta_property_product:ean' => 1,
1649 'add_meta_property_product:expiration_time' => 1,
1650 'add_meta_property_product:isbn' => 1,
1651 'add_meta_property_product:item_group_id' => 1,
1652 'add_meta_property_product:material' => 1,
1653 'add_meta_property_product:mfr_part_no' => 1,
1654 'add_meta_property_product:offers' => 1, // Internal meta tag.
1655 'add_meta_property_product:variants' => 1, // Internal meta tag.
1656 'add_meta_property_product:original_price:amount' => 1,
1657 'add_meta_property_product:original_price:currency' => 1,
1658 'add_meta_property_product:pattern' => 1,
1659 'add_meta_property_product:pretax_price:amount' => 1,
1660 'add_meta_property_product:pretax_price:currency' => 1,
1661 'add_meta_property_product:price:amount' => 1,
1662 'add_meta_property_product:price:currency' => 1,
1663 'add_meta_property_product:purchase_limit' => 1,
1664 'add_meta_property_product:retailer_item_id' => 1,
1665 'add_meta_property_product:retailer_part_no' => 1,
1666 'add_meta_property_product:sale_price:amount' => 1,
1667 'add_meta_property_product:sale_price:currency' => 1,
1668 'add_meta_property_product:sale_price_dates:start' => 1,
1669 'add_meta_property_product:sale_price_dates:end' => 1,
1670 'add_meta_property_product:shipping_cost:amount' => 1,
1671 'add_meta_property_product:shipping_cost:currency' => 1,
1672 'add_meta_property_product:shipping_weight:value' => 1,
1673 'add_meta_property_product:shipping_weight:units' => 1,
1674 'add_meta_property_product:size' => 1,
1675 'add_meta_property_product:target_gender' => 1,
1676 'add_meta_property_product:upc' => 1,
1677 'add_meta_property_product:weight:value' => 1,
1678 'add_meta_property_product:weight:units' => 1,
1679 'add_meta_name_ahrefs-site-verification' => 0, // Ahrefs Website Verification ID.
1680 'add_meta_name_author' => 1,
1681 'add_meta_name_baidu-site-verification' => 0, // Baidu Website Verification ID.
1682 'add_meta_name_description' => 1,
1683 'add_meta_name_facebook-domain-verification' => 0,
1684 'add_meta_name_generator' => 1,
1685 'add_meta_name_google-site-verification' => 0, // Google Website Verification ID.
1686 'add_meta_name_msvalidate.01' => 0, // Microsoft Bing Website Verification ID.
1687 'add_meta_name_p:domain_verify' => 0, // Pinterest Website Verification ID.
1688 'add_meta_name_robots' => 1,
1689 'add_meta_name_thumbnail' => 1,
1690 'add_meta_name_twitter:card' => 1,
1691 'add_meta_name_twitter:creator' => 1,
1692 'add_meta_name_twitter:domain' => 1,
1693 'add_meta_name_twitter:site' => 1,
1694 'add_meta_name_twitter:title' => 1,
1695 'add_meta_name_twitter:description' => 1,
1696 'add_meta_name_twitter:image' => 1,
1697 'add_meta_name_twitter:image:width' => 1,
1698 'add_meta_name_twitter:image:height' => 1,
1699 'add_meta_name_twitter:image:alt' => 1,
1700 'add_meta_name_twitter:player' => 1,
1701 'add_meta_name_twitter:player:stream' => 1,
1702 'add_meta_name_twitter:player:stream:content_type' => 1,
1703 'add_meta_name_twitter:player:width' => 1,
1704 'add_meta_name_twitter:player:height' => 1,
1705 'add_meta_name_twitter:app:name:iphone' => 1,
1706 'add_meta_name_twitter:app:id:iphone' => 1,
1707 'add_meta_name_twitter:app:url:iphone' => 1,
1708 'add_meta_name_twitter:app:name:ipad' => 1,
1709 'add_meta_name_twitter:app:id:ipad' => 1,
1710 'add_meta_name_twitter:app:url:ipad' => 1,
1711 'add_meta_name_twitter:app:name:googleplay' => 1,
1712 'add_meta_name_twitter:app:id:googleplay' => 1,
1713 'add_meta_name_twitter:app:url:googleplay' => 1,
1714 'add_meta_name_twitter:label1' => 1,
1715 'add_meta_name_twitter:data1' => 1,
1716 'add_meta_name_twitter:label2' => 1,
1717 'add_meta_name_twitter:data2' => 1,
1718 'add_meta_name_yandex-verification' => 0, // Yandex Website Verification ID.
1719
1720 /*
1721 * Advanced Settings > Plugin Admin.
1722 */
1723 'plugin_clean_on_uninstall' => 0, // Remove Settings on Uninstall.
1724 'plugin_schema_json_min' => 0, // Minimize Schema JSON-LD.
1725 'plugin_load_mofiles' => 0, // Use Plugin MO Translations.
1726 'plugin_debug_html' => 0, // Add Debug Messages to HTML.
1727 'plugin_cache_disable' => 0, // Disable Cache for Debugging.
1728
1729 /*
1730 * Advanced Settings > Integration.
1731 */
1732 'plugin_title_tag' => 'seo_title', // Webpage Title Tag.
1733 'plugin_filter_content' => 0, // Use Filtered Content.
1734 'plugin_filter_excerpt' => 0, // Use Filtered Excerpt.
1735 'plugin_page_excerpt' => 0, // Enable Excerpt for Pages.
1736 'plugin_page_tags' => 0, // Enable Tags for Pages.
1737 'plugin_new_user_is_person' => 0, // Add Person Role for New Users.
1738 'plugin_inherit_featured' => 1, // Inherit Featured Image.
1739 'plugin_inherit_images' => 1, // Inherit Custom Images.
1740 'plugin_attached_images' => 1, // Consider Attached Images.
1741 'plugin_content_images' => 0, // Consider Content Images.
1742 'plugin_check_img_dims' => 1, // Image Dimension Checks.
1743 'plugin_prevent_thumb_conflicts' => 0, // Prevent Thumbnail Conflicts.
1744 'plugin_upscale_images' => 1, // Upscale Media Library Images.
1745 'plugin_upscale_pct_max' => 20, // Maximum Image Upscale Percent.
1746
1747 /*
1748 * Advanced Settings > Integration > Plugin and Theme Integration.
1749 */
1750 'plugin_speakable_css_csv' => '', // Speakable CSS Selectors.
1751 'plugin_check_head' => 1, // Check for Duplicate Meta Tags.
1752 'plugin_page_cache_active' => 0, // Cache Plugin or Service is Active.
1753 'plugin_product_include_vat' => 0, // Include VAT in Product Prices.
1754 'plugin_import_aioseop_meta' => 0, // Import All in One SEO Pack Metadata.
1755 'plugin_import_rankmath_meta' => 0, // Import Rank Math SEO Metadata.
1756 'plugin_import_seoframework_meta' => 0, // Import The SEO Framework Metadata.
1757 'plugin_import_wpmetaseo_meta' => 0, // Import WP Meta SEO Metadata.
1758 'plugin_import_wpseo_meta' => 0, // Import Yoast SEO Metadata.
1759 'plugin_import_wpseo_blocks' => 0, // Import Yoast SEO Block Attrs.
1760
1761 /*
1762 * Advanced Settings > Default Text.
1763 *
1764 * See WpssoOptions->get_defaults()
1765 * See WpssoOptions->get_text()
1766 *
1767 * Advanced Settings > Interface.
1768 */
1769 'plugin_show_opts' => 'basic', // Options to Show by Default.
1770 'plugin_og_types_select_format' => 'name', // Open Graph Type Select Format.
1771 'plugin_schema_types_select_format' => 'name', // Schema Type Select Format.
1772 'plugin_add_toolbar_validate' => 1, // Show Validators Toolbar Menu.
1773 'plugin_add_submenu_essential' => 1,
1774 'plugin_add_submenu_general' => 1,
1775 'plugin_add_submenu_advanced' => 1,
1776 'plugin_add_submenu_licenses' => 1,
1777 'plugin_add_submenu_addons' => 1,
1778 'plugin_add_submenu_tools' => 1,
1779 'plugin_add_submenu_setup' => 1,
1780 'plugin_add_submenu_debug' => 1,
1781 'plugin_add_to_attachment' => 1,
1782 'plugin_add_to_download' => 1, // For Easy Digital Downloads.
1783 'plugin_add_to_page' => 1,
1784 'plugin_add_to_post' => 1,
1785 'plugin_add_to_product' => 1, // For WooCommerce and other e-commerce plugins.
1786 'plugin_add_to_reply' => 0, // For Bbpress
1787 'plugin_add_to_tax_category' => 1,
1788 'plugin_add_to_tax_faq_category' => 1,
1789 'plugin_add_to_tax_link_category' => 1,
1790 'plugin_add_to_tax_post_tag' => 1,
1791 'plugin_add_to_tax_product_brand' => 1, // For WooCommerce Brands.
1792 'plugin_add_to_tax_product_cat' => 1, // For WooCommerce.
1793 'plugin_add_to_tax_product_tag' => 1, // For WooCommerce.
1794 'plugin_add_to_tax_pwb-brand' => 1, // For Perfect WooCommerce Brands Add-on.
1795 'plugin_add_to_tax_tribe_events_cat' => 0, // For The Events Calendar.
1796 'plugin_add_to_tax_yith_product_brand' => 1, // For YITH WooCommerce Brands Add-on.
1797 'plugin_add_to_topic' => 0, // For Bbpress
1798 'plugin_add_to_tribe_events' => 1, // For The Events Calendar.
1799 'plugin_add_to_tribe-ea-record' => 1, // For The Events Calendar.
1800 'plugin_add_to_user_page' => 1,
1801
1802 /*
1803 * Advanced Settings > Interface > WP List Table Columns: Open Graph Description.
1804 */
1805 'plugin_og_desc_col_attachment' => 0,
1806 'plugin_og_desc_col_download' => 0, // For Easy Digital Downloads.
1807 'plugin_og_desc_col_page' => 0,
1808 'plugin_og_desc_col_post' => 0,
1809 'plugin_og_desc_col_product' => 0, // For WooCommerce.
1810 'plugin_og_desc_col_tax_category' => 0,
1811 'plugin_og_desc_col_tax_faq_category' => 0,
1812 'plugin_og_desc_col_tax_link_category' => 0,
1813 'plugin_og_desc_col_tax_post_tag' => 0,
1814 'plugin_og_desc_col_tax_product_cat' => 0, // For WooCommerce.
1815 'plugin_og_desc_col_tax_product_tag' => 0, // For WooCommerce.
1816 'plugin_og_desc_col_tax_tribe_events_cat' => 0, // For The Events Calendar.
1817 'plugin_og_desc_col_user_page' => 0,
1818
1819 /*
1820 * Advanced Settings > Interface > WP List Table Columns: Open Graph Image.
1821 */
1822 'plugin_og_img_col_attachment' => 0,
1823 'plugin_og_img_col_download' => 0, // For Easy Digital Downloads.
1824 'plugin_og_img_col_page' => 0,
1825 'plugin_og_img_col_post' => 0,
1826 'plugin_og_img_col_product' => 0, // For WooCommerce.
1827 'plugin_og_img_col_tax_category' => 0,
1828 'plugin_og_img_col_tax_faq_category' => 0,
1829 'plugin_og_img_col_tax_link_category' => 0,
1830 'plugin_og_img_col_tax_post_tag' => 0,
1831 'plugin_og_img_col_tax_product_cat' => 0, // For WooCommerce.
1832 'plugin_og_img_col_tax_product_tag' => 0, // For WooCommerce.
1833 'plugin_og_img_col_tax_tribe_events_cat' => 0, // For The Events Calendar.
1834 'plugin_og_img_col_user_page' => 0,
1835
1836 /*
1837 * Advanced Settings > Interface > WP List Table Columns: Open Graph Locale.
1838 */
1839 'plugin_schema_lang_col_attachment' => 0,
1840 'plugin_schema_lang_col_download' => 0, // For Easy Digital Downloads.
1841 'plugin_schema_lang_col_page' => 0,
1842 'plugin_schema_lang_col_post' => 0,
1843 'plugin_schema_lang_col_product' => 0, // For WooCommerce.
1844 'plugin_schema_lang_col_tax_category' => 0,
1845 'plugin_schema_lang_col_tax_faq_category' => 0,
1846 'plugin_schema_lang_col_tax_link_category' => 0,
1847 'plugin_schema_lang_col_tax_post_tag' => 0,
1848 'plugin_schema_lang_col_tax_product_cat' => 0, // For WooCommerce.
1849 'plugin_schema_lang_col_tax_product_tag' => 0, // For WooCommerce.
1850 'plugin_schema_lang_col_tax_tribe_events_cat' => 0, // For The Events Calendar.
1851 'plugin_schema_lang_col_user_page' => 0,
1852
1853 /*
1854 * Advanced Settings > Interface > WP List Table Columns: Schema Type.
1855 */
1856 'plugin_schema_type_name_col_attachment' => 0,
1857 'plugin_schema_type_name_col_download' => 0, // For Easy Digital Downloads.
1858 'plugin_schema_type_name_col_page' => 0,
1859 'plugin_schema_type_name_col_post' => 0,
1860 'plugin_schema_type_name_col_product' => 0, // For WooCommerce.
1861 'plugin_schema_type_name_col_tax_category' => 0,
1862 'plugin_schema_type_name_col_tax_faq_category' => 0,
1863 'plugin_schema_type_name_col_tax_link_category' => 0,
1864 'plugin_schema_type_name_col_tax_post_tag' => 0,
1865 'plugin_schema_type_name_col_tax_product_cat' => 0, // For WooCommerce.
1866 'plugin_schema_type_name_col_tax_product_tag' => 0, // For WooCommerce.
1867 'plugin_schema_type_name_col_tax_tribe_events_cat' => 0, // For The Events Calendar.
1868 'plugin_schema_type_name_col_user_page' => 0,
1869
1870 /*
1871 * Advanced Settings > Service APIs > Media Services.
1872 */
1873 'plugin_gravatar_image' => 1, // Gravatar is Default Author Image.
1874 'plugin_gravatar_size' => 1200, // Gravatar Image Size.
1875 'plugin_media_facebook' => 1, // Detect Embedded Media: Facebook Videos.
1876 'plugin_media_slideshare' => 1, // Detect Embedded Media: Slideshare Presentations.
1877 'plugin_media_soundcloud' => 1, // Detect Embedded Media: Soundcloud Tracks.
1878 'plugin_media_vimeo' => 1, // Detect Embedded Media: Vimeo Videos.
1879 'plugin_media_wistia' => 1, // Detect Embedded Media: Wistia Videos.
1880 'plugin_media_wpvideoblock' => 1, // Detect Embedded Media: WP Media Library Video Blocks.
1881 'plugin_media_wpvideoshortcode' => 1, // Detect Embedded Media: WP Media Library Video Shortcodes.
1882 'plugin_media_youtube' => 1, // Detect Embedded Media: Youtube Videos and Playlists.
1883
1884 /*
1885 * Advanced Settings > Service APIs > Shortening Services.
1886 */
1887 'plugin_shortener' => 'none', // URL Shortening Service.
1888 'plugin_min_shorten' => 23, // Minimum URL Length to Shorten.
1889 'plugin_wp_shortlink' => 1, // Use Short URL for WP Shortlink.
1890 'plugin_bitly_access_token' => '', // Bitly Access Token.
1891 'plugin_bitly_domain' => '', // Bitly Short Domain (Optional).
1892 'plugin_bitly_group_name' => '', // Bitly Group Name (Optional).
1893 'plugin_dlmyapp_api_key' => '', // DLMY.App API Key.
1894 'plugin_owly_api_key' => '', // Ow.ly API Key.
1895 'plugin_yourls_api_url' => '', // YOURLS API URL.
1896 'plugin_yourls_username' => '', // YOURLS Username.
1897 'plugin_yourls_password' => '', // YOURLS Password.
1898 'plugin_yourls_token' => '', // YOURLS Token.
1899
1900 /*
1901 * Advanced Settings > Service APIs > Ratings and Reviews.
1902 */
1903 'plugin_ratings_reviews_svc' => 'none', // Ratings and Reviews Service.
1904 'plugin_ratings_reviews_num_max' => 100, // Maximum Number of Reviews.
1905 'plugin_ratings_reviews_months_max' => 60, // Maximum Age of Reviews.
1906 'plugin_ratings_reviews_for_download' => 1, // For Easy Digital Downloads.
1907 'plugin_ratings_reviews_for_product' => 1, // For WooCommerce.
1908 'plugin_judgeme_shop_domain' => '', // Judge.me Shop Domain.
1909 'plugin_judgeme_shop_token' => '', // Judge.me Shop Token.
1910 'plugin_shopperapproved_site_id' => '', // Shopper Approved Site ID.
1911 'plugin_shopperapproved_token' => '', // Shopper Approved API Token.
1912 'plugin_stamped_store_hash' => '', // Stamped Store Hash.
1913 'plugin_stamped_key_public' => '', // Stamped API Key Public.
1914
1915 /*
1916 * Advanced Settings > Contact Fields > Custom Contacts.
1917 */
1918 'plugin_cm_behance_name' => 'behance',
1919 'plugin_cm_behance_label' => 'Behance Profile URL',
1920 'plugin_cm_behance_enabled' => 1,
1921 'plugin_cm_fb_name' => 'facebook',
1922 'plugin_cm_fb_label' => 'Facebook User URL',
1923 'plugin_cm_fb_enabled' => 1,
1924 'plugin_cm_instagram_name' => 'instagram',
1925 'plugin_cm_instagram_label' => 'Instagram URL',
1926 'plugin_cm_instagram_enabled' => 1,
1927 'plugin_cm_linkedin_name' => 'linkedin',
1928 'plugin_cm_linkedin_label' => 'LinkedIn URL',
1929 'plugin_cm_linkedin_enabled' => 1,
1930 'plugin_cm_medium_name' => 'medium',
1931 'plugin_cm_medium_label' => 'Medium URL',
1932 'plugin_cm_medium_enabled' => 1,
1933 'plugin_cm_myspace_name' => 'myspace',
1934 'plugin_cm_myspace_label' => 'Myspace URL',
1935 'plugin_cm_myspace_enabled' => 1,
1936 'plugin_cm_pin_name' => 'pinterest',
1937 'plugin_cm_pin_label' => 'Pinterest URL',
1938 'plugin_cm_pin_enabled' => 1,
1939 'plugin_cm_sc_name' => 'soundcloud',
1940 'plugin_cm_sc_label' => 'Soundcloud URL',
1941 'plugin_cm_sc_enabled' => 1,
1942 'plugin_cm_skype_name' => 'skype',
1943 'plugin_cm_skype_label' => 'Skype Username',
1944 'plugin_cm_skype_enabled' => 1,
1945 'plugin_cm_tiktok_name' => 'tiktok',
1946 'plugin_cm_tiktok_label' => 'TikTok URL',
1947 'plugin_cm_tiktok_enabled' => 1,
1948 'plugin_cm_tumblr_name' => 'tumblr',
1949 'plugin_cm_tumblr_label' => 'Tumblr URL',
1950 'plugin_cm_tumblr_enabled' => 1,
1951 'plugin_cm_wikipedia_name' => 'wikipedia',
1952 'plugin_cm_wikipedia_label' => 'Wikipedia Page URL',
1953 'plugin_cm_wikipedia_enabled' => 1,
1954 'plugin_cm_twitter_name' => 'twitter',
1955 'plugin_cm_twitter_label' => 'X (Twitter) @username',
1956 'plugin_cm_twitter_enabled' => 1,
1957 'plugin_cm_yt_name' => 'youtube',
1958 'plugin_cm_yt_label' => 'YouTube Channel URL',
1959 'plugin_cm_yt_enabled' => 1,
1960
1961 /*
1962 * Advanced Settings > Contact Fields > Default Contacts.
1963 */
1964 'wp_cm_aim_name' => 'aim',
1965 'wp_cm_aim_label' => 'AIM',
1966 'wp_cm_aim_enabled' => 1,
1967 'wp_cm_jabber_name' => 'jabber',
1968 'wp_cm_jabber_label' => 'Google Talk',
1969 'wp_cm_jabber_enabled' => 1,
1970 'wp_cm_yim_name' => 'yim',
1971 'wp_cm_yim_label' => 'Yahoo Messenger',
1972 'wp_cm_yim_enabled' => 1,
1973
1974 /*
1975 * Advanced Settings > About the User.
1976 */
1977 'plugin_user_about_job_title' => 1, // Job Title.
1978 'plugin_user_about_honorific_prefix' => 1, // Honorific Prefix.
1979 'plugin_user_about_honorific_suffix' => 1, // Honorific Suffix.
1980 'plugin_user_about_additional_name' => 1, // Middle or Additional Name.
1981 'plugin_user_about_award' => 1, // Awards.
1982
1983 /*
1984 * Advanced Settings > Attributes and Metadata > Product Attributes.
1985 */
1986 'plugin_attr_book_author_name' => '', // Book Author Name.
1987 'plugin_attr_book_isbn' => '', // Book ISBN Attribute.
1988 'plugin_attr_product_adult_type' => 'Adult Type', // Adult Type Attribute.
1989 'plugin_attr_product_adult_type#fr_BE' => 'Type adulte',
1990 'plugin_attr_product_adult_type#fr_CA' => 'Type adulte',
1991 'plugin_attr_product_adult_type#fr_FR' => 'Type adulte',
1992 'plugin_attr_product_age_group' => 'Age Group', // Age Group Attribute.
1993 'plugin_attr_product_age_group#fr_BE' => 'Groupe d\'âge',
1994 'plugin_attr_product_age_group#fr_CA' => 'Groupe d\'âge',
1995 'plugin_attr_product_age_group#fr_FR' => 'Groupe d\'âge',
1996 'plugin_attr_product_brand' => 'Brand', // Brand Attribute.
1997 'plugin_attr_product_brand#fr_BE' => 'Marque',
1998 'plugin_attr_product_brand#fr_CA' => 'Marque',
1999 'plugin_attr_product_brand#fr_FR' => 'Marque',
2000 'plugin_attr_product_color' => 'Color', // Color Attribute.
2001 'plugin_attr_product_color#fr_BE' => 'Couleur',
2002 'plugin_attr_product_color#fr_CA' => 'Couleur',
2003 'plugin_attr_product_color#fr_FR' => 'Couleur',
2004 'plugin_attr_product_condition' => 'Condition', // Condition Attribute.
2005 'plugin_attr_product_condition#fr_BE' => 'État',
2006 'plugin_attr_product_condition#fr_CA' => 'État',
2007 'plugin_attr_product_condition#fr_FR' => 'État',
2008 'plugin_attr_product_energy_efficiency' => 'Energy Rating', // Energy Rating Attribute.
2009 'plugin_attr_product_energy_efficiency#fr_BE' => 'Classe énergétique',
2010 'plugin_attr_product_energy_efficiency#fr_CA' => 'Classe énergétique',
2011 'plugin_attr_product_energy_efficiency#fr_FR' => 'Classe énergétique',
2012 'plugin_attr_product_fluid_volume_value' => '', // Fluid Volume Attribute.
2013 'plugin_attr_product_gtin14' => '', // GTIN-14 Attribute.
2014 'plugin_attr_product_gtin13' => '', // GTIN-13 (EAN) Attribute.
2015 'plugin_attr_product_gtin12' => '', // GTIN-12 (UPC) Attribute.
2016 'plugin_attr_product_gtin8' => '', // GTIN-8 Attribute.
2017 'plugin_attr_product_gtin' => '', // GTIN Attribute.
2018 'plugin_attr_product_height_value' => '', // Net Height Attribute.
2019 'plugin_attr_product_isbn' => '', // ISBN Attribute.
2020 'plugin_attr_product_length_value' => '', // Net Len. / Depth Attribute.
2021 'plugin_attr_product_material' => 'Material', // Material Attribute.
2022 'plugin_attr_product_material#fr_BE' => 'Matériel',
2023 'plugin_attr_product_material#fr_CA' => 'Matériel',
2024 'plugin_attr_product_material#fr_FR' => 'Matériel',
2025 'plugin_attr_product_mfr_part_no' => '', // MPN Attribute.
2026 'plugin_attr_product_pattern' => 'Pattern', // Pattern Attribute.
2027 'plugin_attr_product_pattern#fr_BE' => 'Motif',
2028 'plugin_attr_product_pattern#fr_CA' => 'Motif',
2029 'plugin_attr_product_pattern#fr_FR' => 'Motif',
2030 'plugin_attr_product_size' => 'Size', // Size Attribute.
2031 'plugin_attr_product_size#fr_BE' => 'Taille',
2032 'plugin_attr_product_size#fr_CA' => 'Taille',
2033 'plugin_attr_product_size#fr_FR' => 'Taille',
2034 'plugin_attr_product_size_group' => 'Size Group', // Size Group Attribute.
2035 'plugin_attr_product_size_group#fr_BE' => 'Groupe de taille',
2036 'plugin_attr_product_size_group#fr_CA' => 'Groupe de taille',
2037 'plugin_attr_product_size_group#fr_FR' => 'Groupe de taille',
2038 'plugin_attr_product_size_system' => 'Size System', // Size System Attribute.
2039 'plugin_attr_product_size_system#fr_BE' => 'Système de taille',
2040 'plugin_attr_product_size_system#fr_CA' => 'Système de taille',
2041 'plugin_attr_product_size_system#fr_FR' => 'Système de taille',
2042 'plugin_attr_product_target_gender' => 'Gender', // Target Gender Attribute.
2043 'plugin_attr_product_target_gender#fr_BE' => 'Sexe',
2044 'plugin_attr_product_target_gender#fr_CA' => 'Sexe',
2045 'plugin_attr_product_target_gender#fr_FR' => 'Sexe',
2046 'plugin_attr_product_weight_value' => '', // Net Weight Attribute.
2047 'plugin_attr_product_width_value' => '', // Net Width Attribute.
2048
2049 /*
2050 * Advanced Settings > Attributes and Metadata > Custom Fields.
2051 */
2052 'plugin_cf_addl_type_urls' => '', // Microdata Type URLs Custom Field.
2053 'plugin_cf_book_author_name' => '', // Book Author Name Custom Field.
2054 'plugin_cf_book_isbn' => '', // Book ISBN Custom Field.
2055 'plugin_cf_img_url' => '', // Image URL Custom Field.
2056 'plugin_cf_product_adult_type' => '', // Product Adult Type Custom Field.
2057 'plugin_cf_product_age_group' => '', // Product Age Group Custom Field.
2058 'plugin_cf_product_avail' => '', // Product Availability Custom Field.
2059 'plugin_cf_product_brand' => '', // Product Brand Custom Field.
2060 'plugin_cf_product_category' => '', // Product Google Cat. ID Custom Field.
2061 'plugin_cf_product_color' => '', // Product Color Custom Field.
2062 'plugin_cf_product_condition' => '', // Product Condition Custom Field.
2063 'plugin_cf_product_currency' => '', // Product Currency Custom Field.
2064 'plugin_cf_product_energy_efficiency' => '', // Product Energy Rating Custom Field.
2065 'plugin_cf_product_fluid_volume_value' => '', // Product Fluid Volume Custom Field.
2066 'plugin_cf_product_gtin14' => '', // Product GTIN-14 Custom Field.
2067 'plugin_cf_product_gtin13' => '', // Product GTIN-13 (EAN) Custom Field.
2068 'plugin_cf_product_gtin12' => '', // Product GTIN-12 (UPC) Custom Field.
2069 'plugin_cf_product_gtin8' => '', // Product GTIN-8 Custom Field.
2070 'plugin_cf_product_gtin' => '_global_unique_id', // Product GTIN Custom Field.
2071 'plugin_cf_product_isbn' => '', // Product ISBN Custom Field.
2072 'plugin_cf_product_height_value' => '', // Product Net Height Custom Field.
2073 'plugin_cf_product_length_value' => '', // Product Net Len. / Depth Custom Field.
2074 'plugin_cf_product_material' => '', // Product Material Custom Field.
2075 'plugin_cf_product_mfr_part_no' => '', // Product MPN Custom Field.
2076 'plugin_cf_product_min_advert_price' => '', // Product Min Advert Price Custom Field.
2077 'plugin_cf_product_pattern' => '', // Product Pattern Custom Field.
2078 'plugin_cf_product_price' => '', // Product Price Custom Field.
2079 'plugin_cf_product_price_type' => '', // Product Price Type Custom Field.
2080 'plugin_cf_product_retailer_part_no' => '', // Product SKU Custom Field.
2081 'plugin_cf_product_shipping_height_value' => '', // Product Shipping Height Custom Field.
2082 'plugin_cf_product_shipping_length_value' => '', // Product Shipping Length Custom Field.
2083 'plugin_cf_product_shipping_weight_value' => '', // Product Shipping Weight Custom Field.
2084 'plugin_cf_product_shipping_width_value' => '', // Product Shipping Width Custom Field.
2085 'plugin_cf_product_size' => '', // Product Size Custom Field.
2086 'plugin_cf_product_size_group' => '', // Product Size Group Custom Field.
2087 'plugin_cf_product_size_system' => '', // Product Size System Custom Field.
2088 'plugin_cf_product_target_gender' => '', // Product Target Gender Custom Field.
2089 'plugin_cf_product_weight_value' => '', // Product Net Weight Custom Field.
2090 'plugin_cf_product_width_value' => '', // Product Net Width Custom Field.
2091 'plugin_cf_review_item_name' => '', // Review Subject Name Custom Field.
2092 'plugin_cf_review_item_desc' => '', // Review Subject Desc Custom Field.
2093 'plugin_cf_review_rating' => '', // Review Rating Custom Field.
2094 'plugin_cf_review_rating_alt_name' => '', // Review Rating Alt Name Custom Field.
2095 'plugin_cf_sameas_urls' => '', // Same-As URLs Custom Field.
2096 'plugin_cf_vid_embed' => '', // Video Embed HTML Custom Field.
2097 'plugin_cf_vid_url' => '', // Video URL Custom Field.
2098
2099 /*
2100 * Premium Licenses.
2101 */
2102 'plugin_wpsso_tid' => '',
2103
2104 ), // End of 'defaults' array.
2105
2106 /*
2107 * Multisite options.
2108 *
2109 * Automatically includes all advanced plugin options.
2110 *
2111 * See the WpssoOptions->get_site_defaults() method.
2112 */
2113 'site_defaults' => array(
2114 'checksum' => '', // Checksum of plugin versions.
2115 'opt_checksum' => '', // Checksum of option versions.
2116 'opt_versions' => array(),
2117 ),
2118
2119 /*
2120 * Contact method and social options prefix.
2121 *
2122 * The options prefix is used for contact method options (for example, 'plugin_cm_fb_enabled') and
2123 * social sharing buttons options (for example, 'fb_utm_source').
2124 */
2125 'cm_prefix' => array(
2126 'behance' => 'behance',
2127 'email' => 'email',
2128 'facebook' => 'fb',
2129 'twitter' => 'twitter',
2130 'instagram' => 'instagram',
2131 'linkedin' => 'linkedin',
2132 'medium' => 'medium',
2133 'myspace' => 'myspace',
2134 'pinterest' => 'pin',
2135 'pocket' => 'pocket',
2136 'buffer' => 'buffer',
2137 'reddit' => 'reddit',
2138 'managewp' => 'managewp',
2139 'soundcloud' => 'sc',
2140 'tiktok' => 'tiktok',
2141 'tumblr' => 'tumblr',
2142 'skype' => 'skype',
2143 'vk' => 'vk',
2144 'whatsapp' => 'wa',
2145 'wikipedia' => 'wikipedia',
2146 'youtube' => 'yt',
2147 ),
2148
2149 /*
2150 * WpssoConfig::$cf[ 'opt' ][ 'attr_md_index' ]
2151 *
2152 * Provides a key index for product attributes to meta data options.
2153 */
2154 'attr_md_index' => array(
2155 'plugin_attr_book_author_name' => 'schema_book_author_name', // Book Author Name (note schema prefix).
2156 'plugin_attr_book_isbn' => 'schema_book_isbn', // Book ISBN (note schema prefix).
2157 'plugin_attr_product_adult_type' => 'product_adult_type',
2158 'plugin_attr_product_age_group' => 'product_age_group',
2159 'plugin_attr_product_brand' => 'product_brand',
2160 'plugin_attr_product_color' => 'product_color',
2161 'plugin_attr_product_condition' => 'product_condition',
2162 'plugin_attr_product_energy_efficiency' => 'product_energy_efficiency',
2163 'plugin_attr_product_fluid_volume_value' => 'product_fluid_volume_value',
2164 'plugin_attr_product_gtin14' => 'product_gtin14',
2165 'plugin_attr_product_gtin13' => 'product_gtin13',
2166 'plugin_attr_product_gtin12' => 'product_gtin12',
2167 'plugin_attr_product_gtin8' => 'product_gtin8',
2168 'plugin_attr_product_gtin' => 'product_gtin',
2169 'plugin_attr_product_height_value' => 'product_height_value',
2170 'plugin_attr_product_isbn' => 'product_isbn',
2171 'plugin_attr_product_length_value' => 'product_length_value',
2172 'plugin_attr_product_material' => 'product_material',
2173 'plugin_attr_product_mfr_part_no' => 'product_mfr_part_no',
2174 'plugin_attr_product_pattern' => 'product_pattern',
2175 'plugin_attr_product_size' => 'product_size',
2176 'plugin_attr_product_size_group' => 'product_size_group',
2177 'plugin_attr_product_size_system' => 'product_size_system',
2178 'plugin_attr_product_target_gender' => 'product_target_gender',
2179 'plugin_attr_product_weight_value' => 'product_weight_value',
2180 'plugin_attr_product_width_value' => 'product_width_value',
2181 ),
2182
2183 /*
2184 * WpssoConfig::$cf[ 'opt' ][ 'cf_md_index' ]
2185 *
2186 * Provides a key index for custom fields to meta data options.
2187 */
2188 'cf_md_index' => array(
2189 'plugin_cf_addl_type_urls' => 'schema_addl_type_url', // Microdata Type URLs Custom Field.
2190 'plugin_cf_book_author_name' => 'schema_book_author_name', // Book Author Name (note schema prefix).
2191 'plugin_cf_book_isbn' => 'schema_book_isbn', // Book ISBN (note schema prefix).
2192 'plugin_cf_img_url' => 'og_img_url',
2193 'plugin_cf_product_adult_type' => 'product_adult_type',
2194 'plugin_cf_product_age_group' => 'product_age_group',
2195 'plugin_cf_product_avail' => 'product_avail',
2196 'plugin_cf_product_brand' => 'product_brand', // Product Brand Custom Field.
2197 'plugin_cf_product_category' => 'product_category', // Product Google Category Custom Field.
2198 'plugin_cf_product_color' => 'product_color',
2199 'plugin_cf_product_condition' => 'product_condition', // Product Condition Custom Field.
2200 'plugin_cf_product_currency' => 'product_currency',
2201 'plugin_cf_product_energy_efficiency' => 'product_energy_efficiency', // Product Energy Rating Custom Field.
2202 'plugin_cf_product_fluid_volume_value' => 'product_fluid_volume_value', // Product Fluid Volume Custom Field.
2203 'plugin_cf_product_gtin14' => 'product_gtin14',
2204 'plugin_cf_product_gtin13' => 'product_gtin13',
2205 'plugin_cf_product_gtin12' => 'product_gtin12',
2206 'plugin_cf_product_gtin8' => 'product_gtin8',
2207 'plugin_cf_product_gtin' => 'product_gtin',
2208 'plugin_cf_product_height_value' => 'product_height_value', // Product Net Height Custom Field.
2209 'plugin_cf_product_isbn' => 'product_isbn',
2210 'plugin_cf_product_length_value' => 'product_length_value', // Product Net Len. / Depth Custom Field.
2211 'plugin_cf_product_material' => 'product_material',
2212 'plugin_cf_product_mfr_part_no' => 'product_mfr_part_no',
2213 'plugin_cf_product_min_advert_price' => 'product_min_advert_price',
2214 'plugin_cf_product_pattern' => 'product_pattern',
2215 'plugin_cf_product_price' => 'product_price',
2216 'plugin_cf_product_price_type' => 'product_price_type',
2217 'plugin_cf_product_retailer_part_no' => 'product_retailer_part_no',
2218 'plugin_cf_product_shipping_height_value' => 'product_shipping_height_value', // Product Shipping Height Custom Field.
2219 'plugin_cf_product_shipping_length_value' => 'product_shipping_length_value', // Product Shipping Length Custom Field.
2220 'plugin_cf_product_shipping_weight_value' => 'product_shipping_weight_value', // Product Shipping Weight Custom Field.
2221 'plugin_cf_product_shipping_width_value' => 'product_shipping_width_value', // Product Shipping Width Custom Field.
2222 'plugin_cf_product_size' => 'product_size',
2223 'plugin_cf_product_size_group' => 'product_size_group',
2224 'plugin_cf_product_size_system' => 'product_size_system',
2225 'plugin_cf_product_target_gender' => 'product_target_gender',
2226 'plugin_cf_product_weight_value' => 'product_weight_value', // Product Net Weight Custom Field.
2227 'plugin_cf_product_width_value' => 'product_width_value', // Product Net Width Custom Field.
2228 'plugin_cf_review_item_name' => 'schema_review_item_name', // Review Subject Name Custom Field.
2229 'plugin_cf_review_item_desc' => 'schema_review_item_desc', // Review Subject Desc Custom Field.
2230 'plugin_cf_review_rating' => 'schema_review_rating', // Review Rating Custom Field.
2231 'plugin_cf_review_rating_alt_name' => 'schema_review_rating_alt_name', // Review Rating Alt Name Custom Field.
2232 'plugin_cf_sameas_urls' => 'schema_sameas_url',
2233 'plugin_cf_vid_embed' => 'og_vid_embed',
2234 'plugin_cf_vid_url' => 'og_vid_url',
2235 ),
2236
2237 /*
2238 * WpssoConfig::$cf[ 'opt' ][ 'md_keys_multi' ]
2239 *
2240 * Provides information to re-number multiple input/textarea fields and read/split custom field
2241 * values into numbered options.
2242 */
2243 'md_keys_multi' => array(
2244 'contact_sameas_url' => true,
2245 'contact_service_area_id' => true,
2246 'org_award' => true, // Organization Awards.
2247 'org_contact_id' => true, // Organization Contact Points.
2248 'org_offer_catalog' => array( // Offer Catalog Name.
2249 'org_offer_catalog_text', // Offer Catalog Description.
2250 'org_offer_catalog_url', // Offer Catalog URL.
2251 ),
2252 'org_service_area_id' => true,
2253 'place_sameas_url' => true,
2254 'product_award' => true, // Product Awards.
2255 'product_size_group' => true, // Product Size Group.
2256 'schema_addl_type_url' => true, // Microdata Type URLs.
2257 'schema_award' => true, // Creative Work Awards.
2258 'schema_book_offer' => array(
2259 'schema_book_offer_name',
2260 'schema_book_offer_price',
2261 'schema_book_offer_currency',
2262 'schema_book_offer_avail',
2263 ),
2264 'schema_citation' => true, // Reference Citations.
2265 'schema_event_offer' => array(
2266 'schema_event_offer_name',
2267 'schema_event_offer_price',
2268 'schema_event_offer_currency',
2269 'schema_event_offer_avail',
2270 ),
2271 'schema_howto_step' => array( // How-To Name.
2272 'schema_howto_step_section', // How-To Step or Section.
2273 'schema_howto_step_text', // How-To Step Description.
2274 'schema_howto_step_anchor_id', // How-To Step Anchor ID.
2275 'schema_howto_step_img_id', // How-To Step Image ID.
2276 'schema_howto_step_img_id_lib',
2277 ),
2278 'schema_howto_supply' => true, // How-To Supplies.
2279 'schema_howto_tool' => true, // How-To Tools.
2280 'schema_ispartof_url' => true, // Is Part of URLs.
2281 'schema_movie_actor_person_name' => true,
2282 'schema_movie_director_person_name' => true,
2283 'schema_recipe_ingredient' => true, // Recipe Ingredients.
2284 'schema_recipe_instruction' => array( // Recipe Instructions.
2285 'schema_recipe_instruction_section', // Recipe Instruction or Section.
2286 'schema_recipe_instruction_text', // Recipe Instruction Description.
2287 'schema_recipe_instruction_anchor_id', // Recipe Instruction Anchor ID.
2288 'schema_recipe_instruction_img_id', // Recipe Instruction Image ID.
2289 'schema_recipe_instruction_img_id_lib',
2290 ),
2291 'schema_review_item_cw_movie_actor_person_name' => true,
2292 'schema_review_item_cw_movie_director_person_name' => true,
2293 'schema_review_item_product_offer' => array(
2294 'schema_review_item_product_offer_name',
2295 'schema_review_item_product_offer_price',
2296 'schema_review_item_product_offer_currency',
2297 'schema_review_item_product_offer_avail',
2298 ),
2299 'schema_review_item_software_app_offer' => array(
2300 'schema_review_item_software_app_offer_name',
2301 'schema_review_item_software_app_offer_price',
2302 'schema_review_item_software_app_offer_currency',
2303 'schema_review_item_software_app_offer_avail',
2304 ),
2305 'schema_sameas_url' => true, // Same-As URLs.
2306 'schema_service_award' => true, // Service Awards.
2307 'schema_service_offer' => array(
2308 'schema_service_offer_name',
2309 'schema_service_offer_price',
2310 'schema_service_offer_currency',
2311 'schema_service_offer_avail',
2312 ),
2313 'schema_service_offer_catalog' => array( // Offer Catalog Name.
2314 'schema_service_offer_catalog_text', // Offer Catalog Description.
2315 'schema_service_offer_catalog_url', // Offer Catalog URL.
2316 ),
2317 'schema_service_area_id' => true,
2318 'schema_webpage_reviewed_by_org_id' => true,
2319 'schema_webpage_reviewed_by_person_id' => true,
2320 ),
2321
2322 /*
2323 * Fallback order for custom Document SSO metadata keys.
2324 */
2325 'md_keys_fallback' => array(
2326
2327 /*
2328 * SEO and Schema metadata keys.
2329 */
2330 'seo_title' => array( 'seo_title' ),
2331 'seo_desc' => array( 'seo_desc' ),
2332 'schema_title' => array( 'schema_title', 'seo_title' ),
2333 'schema_title_alt' => array( 'schema_title_alt', 'schema_title', 'seo_title' ),
2334 'schema_title_bc' => array( 'schema_title_bc', 'schema_title_alt', 'schema_title', 'seo_title' ),
2335 'schema_headline' => array( 'schema_headline', 'schema_title', 'seo_title' ),
2336 'schema_job_title' => array( 'schema_job_title', 'schema_title', 'seo_title' ),
2337 'schema_desc' => array( 'schema_desc', 'seo_desc' ),
2338 'schema_text' => array( 'schema_text' ),
2339
2340 /*
2341 * Open Graph and Social metadata keys.
2342 */
2343 'og_title' => array( 'og_title', 'seo_title' ),
2344 'og_desc' => array( 'og_desc', 'seo_desc' ),
2345 'og_caption' => array( 'og_caption' ),
2346 'tc_title' => array( 'tc_title', 'og_title', 'seo_title' ),
2347 'tc_desc' => array( 'tc_desc', 'og_desc', 'seo_desc' ),
2348 'pin_img_desc' => array( 'pin_img_desc', 'og_desc', 'seo_desc' ),
2349 ),
2350
2351 /*
2352 * Additional fields for the user profile About Yourself / About the user sections.
2353 */
2354 'user_about' => array(
2355 'job_title' => 'Job Title',
2356 'honorific_prefix' => 'Honorific Prefix',
2357 'honorific_suffix' => 'Honorific Suffix',
2358 'additional_name' => 'Middle or Additional Name',
2359 'award' => 'Awards',
2360 ),
2361
2362 'site_verify_meta_names' => array(
2363 'ahrefs_site_verify' => 'ahrefs-site-verification', // Ahrefs Website Verification ID.
2364 'baidu_site_verify' => 'baidu-site-verification', // Baidu Website Verification ID.
2365 'fb_site_verify' => 'facebook-domain-verification', // Facebook Domain Verification ID.
2366 'g_site_verify' => 'google-site-verification', // Google Website Verification ID.
2367 'bing_site_verify' => 'msvalidate.01', // Microsoft Bing Website Verification ID.
2368 'pin_site_verify' => 'p:domain_verify', // Pinterest Website Verification ID.
2369 'yandex_site_verify' => 'yandex-verification', // Yandex Website Verification ID.
2370 ),
2371 ), // End of 'opt' array.
2372
2373 /*
2374 * Update manager.
2375 */
2376 'um' => array(
2377 'min_version' => '7.2.0', // Released on 2024/09/18.
2378 'rec_version' => '7.3.0', // Released on 2025/10/13.
2379 'version_filter' => array(
2380 'dev' => 'Development and Up',
2381 'alpha' => 'Alpha and Up',
2382 'beta' => 'Beta and Up',
2383 'rc' => 'Release Candidate and Up',
2384 'stable' => 'Stable / Production',
2385 ),
2386 'version_regex' => array(
2387 'dev' => '/^[0-9][0-9\.\-]+((dev|a|alpha|b|beta|rc)[0-9\.\-]+)?$/',
2388 'alpha' => '/^[0-9][0-9\.\-]+((a|alpha|b|beta|rc)[0-9\.\-]+)?$/',
2389 'beta' => '/^[0-9][0-9\.\-]+((b|beta|rc)[0-9\.\-]+)?$/',
2390 'rc' => '/^[0-9][0-9\.\-]+((rc)[0-9\.\-]+)?$/',
2391 'stable' => '/^[0-9][0-9\.\-]+$/',
2392 ),
2393 ), // End of 'um' array.
2394
2395 /*
2396 * PHP.
2397 */
2398 'php' => array(
2399 'label' => 'PHP',
2400 'min_version' => '7.4.33', // Hard limit - deactivate the plugin when activating.
2401 'rec_version' => '7.4.33', // Soft limit - issue warning if lower version found.
2402 'version_url' => 'https://www.php.net/supported-versions.php',
2403 'extensions' => array(
2404 'curl' => array( // PHP extension name.
2405 'label' => 'Client URL Library (cURL)',
2406 'url' => 'https://www.php.net/manual/en/book.curl.php',
2407 ),
2408 'dom' => array( // PHP extension name.
2409 'label' => 'Document Object Model',
2410 'url' => 'https://www.php.net/manual/en/book.dom.php',
2411 'classes' => array( // Extra checks to make sure the PHP extension is complete.
2412 'DOMDocument',
2413 ),
2414 ),
2415 'gd' => array( // PHP extension name.
2416 'label' => 'Image Processing (GD)',
2417 'url' => 'https://www.php.net/manual/en/book.image.php',
2418 'wp_image_editor' => array(
2419 'class' => 'WP_Image_Editor_GD',
2420 'url' => 'https://developer.wordpress.org/reference/classes/wp_image_editor_gd/',
2421 ),
2422 ),
2423 'json' => array( // PHP extension name.
2424 'label' => 'JavaScript Object Notation (JSON)',
2425 'url' => 'https://www.php.net/manual/en/book.json.php',
2426 ),
2427 'libxml' => array( // PHP extension name.
2428 'label' => 'libxml',
2429 'url' => 'https://www.php.net/manual/en/book.libxml.php',
2430 'functions' => array( // Extra checks to make sure the PHP extension is complete.
2431 'libxml_use_internal_errors',
2432 ),
2433 ),
2434 'mbstring' => array( // PHP extension name.
2435 'label' => 'Multibyte String',
2436 'url' => 'https://www.php.net/manual/en/book.mbstring.php',
2437 'functions' => array( // Extra checks to make sure the PHP extension is complete.
2438 'mb_convert_encoding',
2439 'mb_decode_numericentity',
2440 'mb_detect_encoding',
2441 'mb_strlen',
2442 'mb_strtolower',
2443 'mb_substr',
2444 ),
2445 ),
2446 'simplexml' => array( // PHP extension name.
2447 'label' => 'SimpleXML',
2448 'url' => 'https://www.php.net/manual/en/book.simplexml.php',
2449 'functions' => array( // Extra checks to make sure the PHP extension is complete.
2450 'simplexml_load_string',
2451 ),
2452 ),
2453 'xml' => array( // PHP extension name.
2454 'label' => 'XML Parser',
2455 'url' => 'https://www.php.net/manual/en/book.xml.php',
2456 'functions' => array( // Extra checks to make sure the PHP extension is complete.
2457 'utf8_encode',
2458 ),
2459 ),
2460 ),
2461 ), // End of 'php' array.
2462
2463 /*
2464 * WordPress.
2465 */
2466 'wp' => array(
2467 'label' => 'WordPress',
2468 'min_version' => '5.9', // Hard limit - deactivate the plugin when activating.
2469 'rec_version' => '6.6.2', // Soft limit - issue warning if lower version found.
2470 'version_url' => 'https://codex.wordpress.org/Supported_Versions?nocache=1',
2471 'tb_iframe' => array( // Thickbox iframe.
2472 'width' => 772, // Url query argument.
2473 'height' => 550, // Url query argument.
2474 ),
2475 'cm_names' => array(
2476 'aim' => 'AIM',
2477 'jabber' => 'Google Talk',
2478 'yim' => 'Yahoo Messenger',
2479 ),
2480 'admin' => array(
2481 'dashboard' => array(
2482 'page' => 'index.php',
2483 'cap' => 'manage_options',
2484 ),
2485 'plugins' => array(
2486 'page' => 'plugins.php',
2487 'cap' => 'install_plugins',
2488 ),
2489 'profile' => array(
2490 'page' => 'profile.php',
2491 'cap' => 'publish_posts',
2492 ),
2493 'settings' => array(
2494 'page' => 'options-general.php',
2495 'cap' => 'manage_options',
2496 ),
2497 'sitesubmenu' => array(
2498 'page' => 'admin.php',
2499 'cap' => 'manage_options',
2500 ),
2501 'submenu' => array(
2502 'page' => 'admin.php',
2503 'cap' => 'manage_options',
2504 ),
2505 'tools' => array(
2506 'page' => 'tools.php',
2507 'cap' => 'manage_options',
2508 ),
2509 'users' => array(
2510 'page' => 'users.php',
2511 'cap' => 'list_users',
2512 'sub' => array(
2513 'add-person' => array(
2514 'cap' => 'create_users',
2515 'pos' => 2,
2516 ),
2517 ),
2518 ),
2519 ),
2520 'roles' => array(
2521 'all' => array(
2522 'administrator',
2523 'editor',
2524 'author',
2525 'contributor',
2526 'subscriber',
2527 ),
2528 'creator' => array( // Users that can create content.
2529 'administrator',
2530 'editor',
2531 'author',
2532 'contributor',
2533 ),
2534 'publisher' => array( // Users that can publish content.
2535 'administrator',
2536 'editor',
2537 'author',
2538 ),
2539 'owner' => array( // Users that can manage content (edit, publish, delete, etc.).
2540 'administrator',
2541 'editor',
2542 ),
2543 'admin' => array(
2544 'administrator',
2545 ),
2546 'person' => array( // Users for Schema Person select.
2547 'person',
2548 ),
2549 ),
2550
2551 /*
2552 * See WpssoAdmin->get_ext_file_content().
2553 */
2554 'cache' => array(
2555 'file' => array(
2556
2557 /*
2558 * See WpssoAdmin->get_ext_file_content().
2559 */
2560 'wpsso_c_' => array(
2561 'label' => 'File Content',
2562 'value' => DAY_IN_SECONDS,
2563 'filter' => 'wpsso_cache_expire_file_content',
2564 ),
2565
2566 /*
2567 * See WpssoProMediaYoutube->filter_video_details().
2568 */
2569 'wpsso_y_' => array(
2570 'label' => 'YouTube Video Details',
2571 'value' => WEEK_IN_SECONDS,
2572 'filter' => 'wpsso_cache_expire_youtube_video_details',
2573 ),
2574
2575 'wpsso_' => array(
2576 'label' => 'All Files',
2577 ),
2578 ),
2579 'transient' => array(
2580
2581 'wpsso_!_' => array(
2582 ),
2583
2584 /*
2585 * See WpssoProMediaFacebook->filter_video_details().
2586 * See WpssoProMediaSlideshare->filter_video_details().
2587 * See WpssoProMediaVimeo->filter_video_details().
2588 * See WpssoProMediaWistia->filter_video_details().
2589 * See WpssoProReviewJudgeme->filter_og().
2590 * See WpssoProReviewShopperApproved->filter_og().
2591 * See WpssoProReviewStamped->filter_og().
2592 */
2593 'wpsso_a_' => array(
2594 'label' => 'API Response Info',
2595 'value' => DAY_IN_SECONDS,
2596 'filter' => 'wpsso_cache_expire_api_response',
2597 ),
2598
2599 /*
2600 * See WpssoAdmin->settings_saved_notice().
2601 * See WpssoHead->clear_head_array().
2602 * See WpssoHead->get_head_array().
2603 */
2604 'wpsso_h_' => array(
2605 'label' => 'Document Markup',
2606 'value' => WEEK_IN_SECONDS,
2607 'filter' => 'wpsso_cache_expire_head_markup',
2608
2609 /*
2610 * If the $mod array condition is true, then use the associated value.
2611 */
2612 'conditional_values' => array(
2613 'is_404' => 0,
2614 'is_attachment' => 0,
2615 'is_date' => 0,
2616 'is_search' => 0,
2617 ),
2618 ),
2619
2620 'wpsso_i_' => array(
2621 'label' => 'Image URL Info',
2622 'value' => DAY_IN_SECONDS,
2623 'filter' => 'wpsso_cache_expire_image_info',
2624 ),
2625
2626 /*
2627 * See WpssoAdmin->get_readme_info().
2628 */
2629 'wpsso_r_' => array(
2630 'label' => 'Plugin Readme Info',
2631 'value' => DAY_IN_SECONDS,
2632 'filter' => 'wpsso_cache_expire_readme_info',
2633 ),
2634
2635 'wpsso_s_' => array(
2636 'label' => 'Short URLs Info',
2637 'value' => 3 * MONTH_IN_SECONDS,
2638 'filter' => 'wpsso_cache_expire_short_url',
2639 ),
2640
2641 /*
2642 * See WpssoSchema->get_schema_types().
2643 * See WpssoSchema->get_schema_type_child_family().
2644 * See WpssoSchema->get_schema_type_children().
2645 * See WpssoSchema->get_schema_type_row_class().
2646 */
2647 'wpsso_t_' => array(
2648 'label' => 'Schema Types Info',
2649 'value' => WEEK_IN_SECONDS,
2650 'filter' => 'wpsso_cache_expire_schema_types',
2651 ),
2652
2653 'wpsso_' => array(
2654 'label' => 'All Transients',
2655 ),
2656 ),
2657 'wp_cache' => array(
2658
2659 /*
2660 * See WpssoPage->get_the_content().
2661 */
2662 'wpsso_c_' => array(
2663 'label' => 'Filtered Content',
2664 'value' => HOUR_IN_SECONDS,
2665 'filter' => 'wpsso_cache_expire_the_content',
2666 ),
2667
2668 'wpsso_' => array(
2669 'label' => 'All WP Objects',
2670 ),
2671 ),
2672 ), // End of 'cache' array.
2673 ), // End of 'wp' array.
2674
2675 /*
2676 * Used by WpssoScript->admin_enqueue_scripts().
2677 *
2678 * See http://qtip2.com/download.
2679 */
2680 'jquery-qtip' => array(
2681 'label' => 'jQuery qTip',
2682 'version' => '3.0.3',
2683 ),
2684
2685 /*
2686 * Required for the datepicker popup.
2687 *
2688 * See https://developers.google.com/speed/libraries/.
2689 *
2690 * See WpssoStyle->admin_enqueue_styles().
2691 */
2692 'jquery-ui' => array(
2693 'label' => 'jQuery UI',
2694 'version' => '1.13.3',
2695 ),
2696
2697 'menu' => array(
2698 'title' => 'SSO - Social and Search Optimization', // Menu title.
2699 'icon-font' => 'WpssoIcons', // Icon font family.
2700 'icon-code' => '\e838', // Icon CSS code, .icon-orange-6.
2701 'dashicons' => array(
2702 'add-person' => 'admin-users',
2703 'addons' => 'admin-plugins',
2704 'advanced' => 'superhero',
2705 'dashboard' => 'dashboard',
2706 'essential' => 'star-filled',
2707 'general' => 'admin-settings',
2708 'licenses' => 'admin-network',
2709 'setup' => 'welcome-learn-more',
2710 'debug' => 'code-standards',
2711 'site-addons' => 'admin-plugins',
2712 'site-licenses' => 'admin-network',
2713 'site-setup' => 'welcome-learn-more',
2714 'site-debug' => 'code-standards',
2715 'tools' => 'admin-tools',
2716 'your-sso' => 'id-alt',
2717 '*' => 'admin-generic', // Default icon.
2718 ),
2719 'must_load' => array( // Settings pages that cannot be disabled.
2720 'general' => true,
2721 'advanced' => true,
2722 'licenses' => true,
2723 'site-advanced' => true,
2724 'site-licenses' => true,
2725 ),
2726 ),
2727 'notice' => array(
2728 'title' => 'SSO', // Notice title.
2729 ),
2730 'meta' => array( // Post, term, user add_meta_box() settings.
2731 'id' => 'sso',
2732 'title' => 'Document SSO',
2733 ),
2734 'edit' => array( // Post, term, user lists.
2735
2736 /*
2737 * Array is defined by the preferred table column order.
2738 */
2739 'columns' => array(
2740 'schema_type_name' => array(
2741 'header' => 'SSO Schema', // First column.
2742 'mt_name' => 'schema:type:name',
2743 'meta_key' => '_wpsso_head_info_schema_type_name',
2744 'orderby' => 'meta_value',
2745 'width' => '10em',
2746 'height' => 'auto',
2747 'def_val' => 'none',
2748 ),
2749 'schema_lang' => array(
2750 'header' => 'SSO Lang', // Second column.
2751 'mt_name' => 'schema:language',
2752 'meta_key' => '_wpsso_head_info_schema_lang',
2753 'orderby' => 'meta_value',
2754 'width' => '8em',
2755 'height' => 'auto',
2756 'def_val' => 'none',
2757 ),
2758 'og_img' => array(
2759 'header' => 'SSO Image', // Third column.
2760 'mt_name' => 'og:image',
2761 'meta_key' => '_wpsso_head_info_og_img_thumb',
2762 'orderby' => false, // Do not offer column sorting.
2763 'width' => '75px',
2764 'height' => '40px',
2765 'def_val' => 'none',
2766 ),
2767 'og_desc' => array(
2768 'header' => 'SSO Desc', // Fourth column.
2769 'mt_name' => 'og:description',
2770 'meta_key' => '_wpsso_head_info_og_desc',
2771 'orderby' => true,
2772 'width' => '200px',
2773 'height' => 'auto',
2774 'def_val' => 'none',
2775 ),
2776 'og_type' => array( // Open Graph Type ID.
2777 'mt_name' => 'og:type',
2778 'meta_key' => '_wpsso_head_info_og_type',
2779 'def_val' => 'none',
2780 ),
2781 'schema_type' => array( // Schema Type ID.
2782 'mt_name' => 'schema:type:id',
2783 'meta_key' => '_wpsso_head_info_schema_type',
2784 'def_val' => 'none',
2785 ),
2786 'schema_review_rating' => array(
2787 'mt_name' => 'schema:review:rating',
2788 'meta_key' => '_wpsso_head_info_schema_review_rating',
2789 'def_val' => '0.0', // The review rating option value type is 'pos_fnum1'.
2790 ),
2791 'is_noindex' => array(
2792 'mt_name' => 'is_noindex',
2793 'meta_key' => '_wpsso_head_info_is_noindex',
2794 'def_val' => '0',
2795 ),
2796 'is_redirect' => array(
2797 'mt_name' => 'is_redirect',
2798 'meta_key' => '_wpsso_head_info_is_redirect',
2799 'def_val' => '0',
2800 ),
2801 ),
2802 ),
2803 'form' => array(
2804 'max_hashtags' => 5,
2805 'max_media_items' => 5,
2806 'tooltip_class' => 'sucom-tooltip',
2807 'yes_no' => array(
2808 1 => 'Yes',
2809 0 => 'No',
2810 ),
2811 'true_false' => array(
2812 1 => 'True',
2813 0 => 'False',
2814 ),
2815 'on_off' => array(
2816 1 => 'On',
2817 0 => 'Off',
2818 ),
2819 'weekdays' => array(
2820 'sunday' => 'Sunday',
2821 'monday' => 'Monday',
2822 'tuesday' => 'Tuesday',
2823 'wednesday' => 'Wednesday',
2824 'thursday' => 'Thursday',
2825 'friday' => 'Friday',
2826 'saturday' => 'Saturday',
2827 'publicholidays' => 'Public Holidays',
2828 ),
2829 'salary_period' => array(
2830 'hour' => 'Hour',
2831 'day' => 'Day',
2832 'week' => 'Week',
2833 'month' => 'Month',
2834 'year' => 'Year',
2835 ),
2836 'notice_timeouts' => array(
2837 -1 => 'Do Not Auto Show',
2838 0 => 'Auto Show (No Timeout)',
2839 1000 => 'Auto Show for 1s',
2840 2000 => 'Auto Show for 2s',
2841 3000 => 'Auto Show for 3s',
2842 4000 => 'Auto Show for 4s',
2843 5000 => 'Auto Show for 5s',
2844 6000 => 'Auto Show for 6s',
2845 7000 => 'Auto Show for 7s',
2846 8000 => 'Auto Show for 8s',
2847 5000 => 'Auto Show for 9s',
2848 ),
2849 'qualifiers' => array(
2850 '(default)',
2851 '(no images)',
2852 '(no videos)',
2853 '(settings value)',
2854 '(option disabled)',
2855 '%1$s (default is %2$s)',
2856 'default is %s',
2857 'checked',
2858 'unchecked',
2859 'Enabled',
2860 'Disabled',
2861 'enabled',
2862 'disabled',
2863 'at',
2864 'tz',
2865
2866 /*
2867 * See SucomForm->get_checklist_post_types().
2868 * See SucomForm->get_checklist_post_tax_user_values().
2869 */
2870 'Post Type',
2871 'Taxonomy',
2872 'User Profiles',
2873 ),
2874 'document_title' => array( // Webpage Title Tag.
2875 'wp_title' => '[WordPress Title]',
2876 'seo_title' => 'SEO Title Tag',
2877 'schema_title' => 'Schema Name',
2878 'schema_title_alt' => 'Schema Alternate Name',
2879 ),
2880 'show_options' => array(
2881 'basic' => 'Basic Options',
2882 'all' => 'All Options',
2883 ),
2884 'site_option_use' => array( // Site Use.
2885 'default' => 'First Activation',
2886 'empty' => 'If Option Is Empty',
2887 'force' => 'Always Force Value',
2888 ),
2889 'script_locations' => array(
2890 'none' => '[None]',
2891 'header' => 'Header',
2892 'footer' => 'Footer',
2893 ),
2894 'caption_types' => array(
2895 'none' => '[None]',
2896 'title' => 'Title Only',
2897 'excerpt' => 'Excerpt Only',
2898 'both' => 'Title and Excerpt',
2899 ),
2900 'author_types' => array(
2901 'none' => '[None]',
2902 'organization' => 'Organization',
2903 'person' => 'Person',
2904 ),
2905 'publisher_types' => array(
2906 'organization' => 'Organization',
2907 'person' => 'Person',
2908 ),
2909 'user_name_fields' => array(
2910 'none' => '[None]',
2911 'fullname' => 'First and Last Names',
2912 'display_name' => 'Display Name',
2913 'nickname' => 'Nickname',
2914 ),
2915 'addr_select' => array(
2916 'none' => '[None]',
2917 'custom' => '[Custom Address]',
2918 'new' => '[New Address]',
2919 ),
2920 'org_select' => array(
2921 'none' => '[None]',
2922 'new' => '[New Organization]',
2923 'site' => '[Site Organization]',
2924 ),
2925 'og_schema_types_select_format' => array(
2926 'id' => 'ID',
2927 'id_url' => 'ID | Host/Name',
2928 'id_name' => 'ID | Name',
2929 'name_id' => 'Name [ID]',
2930 'name' => 'Name',
2931 ),
2932
2933 /*
2934 * Image preferred cropping.
2935 */
2936 'position_crop_x' => array(
2937 'left' => 'Left',
2938 'center' => 'Center',
2939 'right' => 'Right',
2940 ),
2941 'position_crop_y' => array(
2942 'top' => 'Top',
2943 'center' => 'Center',
2944 'bottom' => 'Bottom',
2945 ),
2946
2947 /*
2948 * Robots meta.
2949 *
2950 * See https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag#max-image-preview.
2951 */
2952 'robots_max_image_preview' => array(
2953 'none' => '[None]',
2954 'standard' => 'Standard',
2955 'large' => 'Large',
2956 ),
2957
2958 /*
2959 * Breadcrumbs settings.
2960 */
2961 'breadcrumbs_for_posts' => array( // Breadcrumbs by Post Type.
2962 'none' => '[No Breadcrumbs]',
2963 'categories' => 'Home Page(s) and Categories',
2964 'ancestors' => 'Home Page(s) and Parents',
2965 'primary_cat' => 'Home Page(s) and Primary Category',
2966 ),
2967 'breadcrumbs_for_terms' => array( // Breadcrumbs by Taxonomy.
2968 'none' => '[No Breadcrumbs]',
2969 'ancestors' => 'Home Page(s) and Parents',
2970 ),
2971
2972 /*
2973 * Shortening service.
2974 */
2975 'shorteners' => array(
2976 'none' => '[None]',
2977 'bitly' => 'Bitly', // Requires lib/pro/com/bitly.php.
2978 'dlmyapp' => 'DLMY.App', // Requires lib/pro/ext/dlmy.php.
2979 'owly' => 'Ow.ly', // Requires lib/pro/ext/owly.php.
2980 'tinyurl' => 'TinyURL', // Requires lib/pro/ext/tinyurl.php.
2981 'yourls' => 'YOURLS', // Requires lib/pro/ext/yourls.php.
2982 ),
2983
2984 /*
2985 * Ratings and reviews services.
2986 */
2987 'ratings_reviews' => array(
2988 'none' => '[None]',
2989 'judgeme' => 'Judge.me',
2990 'shopperapproved' => 'Shopper Approved',
2991 'stamped' => 'Stamped.io',
2992 ),
2993
2994 /*
2995 * Social account keys and labels for Organization SameAs.
2996 */
2997 'social_accounts' => array(
2998 'behance_publisher_url' => 'Behance Business Profile URL',
2999 'fb_publisher_url' => 'Facebook Business Page URL',
3000 'instagram_publisher_url' => 'Instagram Business Profile URL',
3001 'linkedin_publisher_url' => 'LinkedIn Business Page URL',
3002 'medium_publisher_url' => 'Medium Business Page URL',
3003 'myspace_publisher_url' => 'Myspace Business Page URL',
3004 'pin_publisher_url' => 'Pinterest Business Page URL',
3005 'sc_publisher_url' => 'Soundcloud Business Page URL',
3006 'tiktok_publisher_url' => 'TikTok Business Page URL',
3007 'tumblr_publisher_url' => 'Tumblr Business Page URL',
3008 'wikipedia_publisher_url' => 'Wikipedia Organization Page URL',
3009 'tc_site' => 'X (Twitter) Business @username',
3010 'yt_publisher_url' => 'YouTube Business Channel URL',
3011 ),
3012
3013 'embed_media' => array( // Check for Embedded Media.
3014 'plugin_media_facebook' => 'Facebook Videos',
3015 'plugin_media_slideshare' => 'Slideshare Presentations',
3016 'plugin_media_soundcloud' => 'Soundcloud Tracks',
3017 'plugin_media_vimeo' => 'Vimeo Videos',
3018 'plugin_media_wistia' => 'Wistia Videos',
3019 'plugin_media_wpvideoblock' => 'WP Media Library Video Blocks',
3020 'plugin_media_wpvideoshortcode' => 'WP Media Library Video Shortcodes',
3021 'plugin_media_youtube' => 'YouTube Videos and Playlists',
3022 ),
3023
3024 /*
3025 * Attribute option labels.
3026 */
3027 'attr_labels' => array(
3028 'plugin_attr_book_author_name' => 'Book Author Name Attribute',
3029 'plugin_attr_book_isbn' => 'Book ISBN Attribute',
3030 'plugin_attr_product_adult_type' => 'Adult Type Attribute',
3031 'plugin_attr_product_age_group' => 'Age Group Attribute',
3032 'plugin_attr_product_brand' => 'Brand Attribute',
3033 'plugin_attr_product_color' => 'Color Attribute',
3034 'plugin_attr_product_condition' => 'Condition Attribute',
3035 'plugin_attr_product_energy_efficiency' => 'Energy Rating Attribute',
3036 'plugin_attr_product_fluid_volume_value' => 'Fluid Volume Attribute',
3037 'plugin_attr_product_gtin14' => 'GTIN-14 Attribute',
3038 'plugin_attr_product_gtin13' => 'GTIN-13 (EAN) Attribute',
3039 'plugin_attr_product_gtin12' => 'GTIN-12 (UPC) Attribute',
3040 'plugin_attr_product_gtin8' => 'GTIN-8 Attribute',
3041 'plugin_attr_product_gtin' => 'GTIN Attribute',
3042 'plugin_attr_product_height_value' => 'Net Height Attribute',
3043 'plugin_attr_product_isbn' => 'ISBN Attribute',
3044 'plugin_attr_product_length_value' => 'Net Len. / Depth Attribute',
3045 'plugin_attr_product_material' => 'Material Attribute',
3046 'plugin_attr_product_mfr_part_no' => 'MPN Attribute',
3047 'plugin_attr_product_pattern' => 'Pattern Attribute',
3048 'plugin_attr_product_size' => 'Size Attribute',
3049 'plugin_attr_product_size_group' => 'Size Group Attribute',
3050 'plugin_attr_product_size_system' => 'Size System Attribute',
3051 'plugin_attr_product_target_gender' => 'Target Gender Attribute',
3052 'plugin_attr_product_weight_value' => 'Net Weight Attribute',
3053 'plugin_attr_product_width_value' => 'Net Width Attribute',
3054 ),
3055
3056 /*
3057 * Custom field option labels.
3058 */
3059 'cf_labels' => array(
3060 'plugin_cf_addl_type_urls' => 'Microdata Type URLs Custom Field',
3061 'plugin_cf_book_author_name' => 'Book Author Name Custom Field',
3062 'plugin_cf_book_isbn' => 'Book ISBN Custom Field',
3063 'plugin_cf_img_url' => 'Image URL Custom Field',
3064 'plugin_cf_product_adult_type' => 'Product Adult Type Custom Field',
3065 'plugin_cf_product_age_group' => 'Product Age Group Custom Field',
3066 'plugin_cf_product_avail' => 'Product Availability Custom Field',
3067 'plugin_cf_product_brand' => 'Product Brand Custom Field',
3068 'plugin_cf_product_category' => 'Product Google Cat. ID Custom Field',
3069 'plugin_cf_product_color' => 'Product Color Custom Field',
3070 'plugin_cf_product_condition' => 'Product Condition Custom Field',
3071 'plugin_cf_product_currency' => 'Product Currency Custom Field',
3072 'plugin_cf_product_energy_efficiency' => 'Product Energy Rating Custom Field',
3073 'plugin_cf_product_fluid_volume_value' => 'Product Fluid Volume Custom Field',
3074 'plugin_cf_product_gtin14' => 'Product GTIN-14 Custom Field',
3075 'plugin_cf_product_gtin13' => 'Product GTIN-13 (EAN) Custom Field',
3076 'plugin_cf_product_gtin12' => 'Product GTIN-12 (UPC) Custom Field',
3077 'plugin_cf_product_gtin8' => 'Product GTIN-8 Custom Field',
3078 'plugin_cf_product_gtin' => 'Product GTIN Custom Field',
3079 'plugin_cf_product_isbn' => 'Product ISBN Custom Field',
3080 'plugin_cf_product_height_value' => 'Product Net Height Custom Field',
3081 'plugin_cf_product_length_value' => 'Product Net Len. / Depth Custom Field',
3082 'plugin_cf_product_material' => 'Product Material Custom Field',
3083 'plugin_cf_product_mfr_part_no' => 'Product MPN Custom Field',
3084 'plugin_cf_product_min_advert_price' => 'Product Min Advert Price Custom Field',
3085 'plugin_cf_product_pattern' => 'Product Pattern Custom Field',
3086 'plugin_cf_product_price' => 'Product Price Custom Field',
3087 'plugin_cf_product_price_type' => 'Product Price Type Custom Field',
3088 'plugin_cf_product_retailer_part_no' => 'Product SKU Custom Field',
3089 'plugin_cf_product_shipping_height_value' => 'Product Shipping Height Custom Field',
3090 'plugin_cf_product_shipping_length_value' => 'Product Shipping Length Custom Field',
3091 'plugin_cf_product_shipping_weight_value' => 'Product Shipping Weight Custom Field',
3092 'plugin_cf_product_shipping_width_value' => 'Product Shipping Width Custom Field',
3093 'plugin_cf_product_size' => 'Product Size Custom Field',
3094 'plugin_cf_product_size_group' => 'Product Size Group Custom Field',
3095 'plugin_cf_product_size_system' => 'Product Size System Custom Field',
3096 'plugin_cf_product_target_gender' => 'Product Target Gender Custom Field',
3097 'plugin_cf_product_weight_value' => 'Product Net Weight Custom Field',
3098 'plugin_cf_product_width_value' => 'Product Net Width Custom Field',
3099 'plugin_cf_review_item_name' => 'Review Subject Name Custom Field',
3100 'plugin_cf_review_item_desc' => 'Review Subject Desc Custom Field',
3101 'plugin_cf_review_rating' => 'Review Rating Custom Field',
3102 'plugin_cf_review_rating_alt_name' => 'Review Rating Alt Name Custom Field',
3103 'plugin_cf_sameas_urls' => 'Same-As URLs Custom Field',
3104 'plugin_cf_vid_url' => 'Video URL Custom Field',
3105 'plugin_cf_vid_embed' => 'Video Embed HTML Custom Field',
3106 ),
3107
3108 /*
3109 * Used with array_intersect_key() to determine which metadata keys can be inherited.
3110 *
3111 * See WpssoAbstractWpMeta->get_inherited_md_opts().
3112 */
3113 'inherit_md_opts' => array(
3114
3115 /*
3116 * Inherited image options.
3117 */
3118 'og_img_max' => null,
3119 'og_img_id' => null,
3120 'og_img_id_lib' => null,
3121 'og_img_url' => null,
3122 'pin_img_id' => null,
3123 'pin_img_id_lib' => null,
3124 'pin_img_url' => null,
3125 'schema_img_id' => null,
3126 'schema_img_id_lib' => null,
3127 'schema_img_url' => null,
3128 'tc_lrg_img_id' => null,
3129 'tc_lrg_img_id_lib' => null,
3130 'tc_lrg_img_url' => null,
3131 'tc_sum_img_id' => null,
3132 'tc_sum_img_id_lib' => null,
3133 'tc_sum_img_url' => null,
3134
3135 /*
3136 * Inherited product options.
3137 */
3138 'product_adult_type' => null,
3139 'product_age_group' => null,
3140 'product_brand' => null,
3141 'product_category' => null, // Product Google Category.
3142 'product_energy_efficiency' => null,
3143 'product_energy_efficiency_min' => null,
3144 'product_energy_efficiency_max' => null,
3145 'product_min_advert_price' => null,
3146 'product_mrp' => null, // Product Return Policy.
3147 'product_price_type' => null,
3148 'product_size_group_0' => null,
3149 'product_size_group_1' => null,
3150 'product_size_system' => null,
3151 'product_target_gender' => null,
3152
3153 /*
3154 * Inherited Schema options.
3155 */
3156 'schema_article_section' => null,
3157 ),
3158
3159 /*
3160 * Inherit required properties from the product group for Google.
3161 *
3162 * Use an associative array to avoid property names from being translated.
3163 *
3164 * See WpssoJsonTypeProductGroup->filter_json_data_https_schema_org_productgroup().
3165 */
3166 'inherit_variant_props' => array(
3167 'name' => null,
3168 'description' => null,
3169 'brand' => null,
3170 ),
3171 'excl_varies_by_props' => array(
3172 '@id' => null,
3173 '@context' => null,
3174 '@type' => null,
3175 'url' => null,
3176 'name' => null,
3177 'description' => null,
3178 'image' => null,
3179 'subjectOf' => null,
3180 'inProductGroupWithID' => null,
3181 ),
3182
3183 /*
3184 * Organization and Place default selection.
3185 */
3186 'contact_is_defaults' => array(
3187 ),
3188 'org_is_defaults' => array(
3189 'schema_def_pub_org_id' => 'Default Creative Work Publisher Organization',
3190 'schema_def_prov_org_id' => 'Default Creative Work Provider Organization',
3191 'schema_def_fund_org_id' => 'Default Creative Work Funder Organization',
3192 'schema_def_event_performer_org_id' => 'Default Event Performer Organization',
3193 'schema_def_event_organizer_org_id' => 'Default Event Organizer Organization',
3194 'schema_def_event_fund_org_id' => 'Default Event Funder Organization',
3195 'schema_def_job_hiring_org_id' => 'Default Job Hiring Organization',
3196 'schema_def_service_prov_org_id' => 'Default Service Provider Organization',
3197 ),
3198 'place_is_defaults' => array(
3199 'schema_def_event_location_id' => 'Default Event Venue',
3200 'schema_def_job_location_id' => 'Default Job Location',
3201 ),
3202
3203 /*
3204 * Validated on 2022/12/26.
3205 *
3206 * Used for the Schema Product and Offer 'hasAdultConsideration' property.
3207 *
3208 * See https://schema.org/AdultOrientedEnumeration.
3209 * See https://support.google.com/merchants/answer/6324508.
3210 */
3211 'adult_type' => array(
3212 'none' => '[None]', // Removed for checklists.
3213 'https://schema.org/AlcoholConsideration' => 'Alcohol',
3214 'https://schema.org/DangerousGoodConsideration' => 'Dangerous Good',
3215 'https://schema.org/HealthcareConsideration' => 'Healthcare',
3216 'https://schema.org/NarcoticConsideration' => 'Narcotic',
3217 'https://schema.org/ReducedRelevanceForChildrenConsideration' => 'Reduced Relevance for Children',
3218 'https://schema.org/SexualContentConsideration' => 'Sexual Content',
3219 'https://schema.org/TobaccoNicotineConsideration' => 'Tobacco Nicotine',
3220 'https://schema.org/UnclassifiedAdultConsideration' => 'Unclassified Adult',
3221 'https://schema.org/ViolenceConsideration' => 'Violence',
3222 'https://schema.org/WeaponConsideration' => 'Weapon',
3223 ),
3224
3225 /*
3226 * Validated on 2022/09/24.
3227 *
3228 * See https://developers.facebook.com/docs/marketing-api/catalog/reference/.
3229 * See https://support.google.com/merchants/answer/6324463.
3230 */
3231 'age_group' => array(
3232 'none' => '[None]', // Removed for checklists.
3233 'adult' => 'Adult (13 years old or more)',
3234 'all ages' => 'All Ages (13 years old or more)',
3235 'infant' => 'Infant (3–12 months old)',
3236 'kids' => 'Kids (5–13 years old)',
3237 'newborn' => 'Newborn (0-3 months old)',
3238 'teen' => 'Teen (13 years old or more)',
3239 'toddler' => 'Toddler (1–5 years old)',
3240 ),
3241
3242 /*
3243 * Validated on 2022/12/26.
3244 *
3245 * See https://schema.org/BookFormatType.
3246 */
3247 'book_format' => array(
3248 'none' => '[None]', // Removed for checklists.
3249 'https://schema.org/AudiobookFormat' => 'Audiobook',
3250 'https://schema.org/EBook' => 'eBook',
3251 'https://schema.org/GraphicNovel' => 'Graphic Novel',
3252 'https://schema.org/Hardcover' => 'Hardcover',
3253 'https://schema.org/Paperback' => 'Paperback',
3254 ),
3255
3256 /*
3257 * Validated on 2025/06/13.
3258 *
3259 * See https://schema.org/ContactPointOption.
3260 */
3261 'contact_point_option' => array(
3262 'none' => '[None]', // Removed for checklists.
3263 'https://schema.org/HearingImpairedSupported' => 'Hearing Impaired',
3264 'https://schema.org/TollFree' => 'Toll Free',
3265 ),
3266
3267 /*
3268 * Validated on 2026/05/25.
3269 *
3270 * See https://schema.org/DayOfWeek.
3271 */
3272 'day_of_week' => array(
3273 'sunday' => 'https://schema.org/Sunday',
3274 'monday' => 'https://schema.org/Monday',
3275 'tuesday' => 'https://schema.org/Tuesday',
3276 'wednesday' => 'https://schema.org/Wednesday',
3277 'thursday' => 'https://schema.org/Thursday',
3278 'friday' => 'https://schema.org/Friday',
3279 'saturday' => 'https://schema.org/Saturday',
3280 'publicholidays' => 'https://schema.org/PublicHolidays',
3281 ),
3282
3283 /*
3284 * Validated on 2020/08/17.
3285 *
3286 * See https://developers.google.com/search/docs/data-types/job-postings.
3287 */
3288 'employment_type' => array(
3289 'none' => '[None]', // Removed for checklists.
3290 'FULL_TIME' => 'Full Time',
3291 'PART_TIME' => 'Part Time',
3292 'CONTRACTOR' => 'Contractor',
3293 'TEMPORARY' => 'Temporary',
3294 'INTERN' => 'Intern',
3295 'VOLUNTEER' => 'Volunteer',
3296 'PER_DIEM' => 'Per Diem',
3297 'OTHER' => 'Other',
3298 ),
3299
3300 /*
3301 * Validated on 2022/12/26.
3302 *
3303 * See https://schema.org/EUEnergyEfficiencyEnumeration.
3304 * See https://support.google.com/merchants/answer/7562785.
3305 */
3306 'energy_efficiency' => array(
3307 'none' => '[None]', // Removed for checklists.
3308 'https://schema.org/EUEnergyEfficiencyCategoryA3Plus' => 'A+++',
3309 'https://schema.org/EUEnergyEfficiencyCategoryA2Plus' => 'A++',
3310 'https://schema.org/EUEnergyEfficiencyCategoryA1Plus' => 'A+',
3311 'https://schema.org/EUEnergyEfficiencyCategoryA' => 'A',
3312 'https://schema.org/EUEnergyEfficiencyCategoryB' => 'B',
3313 'https://schema.org/EUEnergyEfficiencyCategoryC' => 'C',
3314 'https://schema.org/EUEnergyEfficiencyCategoryD' => 'D',
3315 'https://schema.org/EUEnergyEfficiencyCategoryE' => 'E',
3316 'https://schema.org/EUEnergyEfficiencyCategoryF' => 'F',
3317 'https://schema.org/EUEnergyEfficiencyCategoryG' => 'G',
3318 ),
3319
3320 /*
3321 * Validated on 2022/12/26.
3322 *
3323 * Used by WpssoSchema->filter_sanitize_md_options().
3324 *
3325 * See https://schema.org/EventAttendanceModeEnumeration.
3326 */
3327 'event_attendance' => array(
3328 'none' => '[None]', // Removed for checklists.
3329 'https://schema.org/MixedEventAttendanceMode' => 'Mixed',
3330 'https://schema.org/OnlineEventAttendanceMode' => 'Online',
3331 'https://schema.org/OfflineEventAttendanceMode' => 'Physical Location',
3332 ),
3333
3334 /*
3335 * Validated on 2022/12/26.
3336 *
3337 * Used by WpssoSchema->filter_sanitize_md_options().
3338 *
3339 * See https://schema.org/EventStatusType.
3340 */
3341 'event_status' => array(
3342 'none' => '[None]', // Removed for checklists.
3343 'https://schema.org/EventCancelled' => 'Cancelled',
3344 'https://schema.org/EventMovedOnline' => 'Moved Online',
3345 'https://schema.org/EventPostponed' => 'Postponed',
3346 'https://schema.org/EventRescheduled' => 'Rescheduled',
3347 'https://schema.org/EventScheduled' => 'Scheduled', // Default.
3348 ),
3349
3350 /*
3351 * Validated on 2022/12/26.
3352 *
3353 * Used by WpssoSchema->filter_sanitize_md_options().
3354 *
3355 * See https://schema.org/ItemAvailability.
3356 */
3357 'item_availability' => array(
3358 'none' => '[None]', // Removed for checklists.
3359 'https://schema.org/BackOrder' => 'Back Order', // Indicates that the item is available on back order.
3360 'https://schema.org/Discontinued' => 'Discontinued',
3361 'https://schema.org/InStock' => 'In Stock',
3362 'https://schema.org/InStoreOnly' => 'In Store Only',
3363 'https://schema.org/LimitedAvailability' => 'Limited Availability',
3364 'https://schema.org/OnlineOnly' => 'Online Only',
3365 'https://schema.org/OutOfStock' => 'Out Of Stock',
3366 'https://schema.org/PreOrder' => 'Pre-Order',
3367 'https://schema.org/PreSale' => 'Pre-Sale',
3368 'https://schema.org/SoldOut' => 'Sold Out',
3369 ),
3370
3371 /*
3372 * Validated on 2022/12/26.
3373 *
3374 * Used by WpssoSchema->filter_sanitize_md_options().
3375 *
3376 * See https://schema.org/OfferItemCondition.
3377 * See https://support.google.com/merchants/answer/6324469.
3378 */
3379 'item_condition' => array(
3380 'none' => '[None]', // Removed for checklists.
3381 'https://schema.org/DamagedCondition' => 'Damaged',
3382 'https://schema.org/NewCondition' => 'New',
3383 'https://schema.org/RefurbishedCondition' => 'Refurbished',
3384 'https://schema.org/UsedCondition' => 'Used',
3385 ),
3386
3387 /*
3388 * Validated on 2021/04/15.
3389 *
3390 * See https://developers.google.com/search/docs/data-types/job-postings.
3391 */
3392 'job_location_type' => array(
3393 'none' => '[None]', // Removed for checklists.
3394 'TELECOMMUTE' => 'Telecommute (100% Remote)',
3395 ),
3396
3397 /*
3398 * Validated on 2025/07/09.
3399 *
3400 * See https://schema.org/RefundTypeEnumeration.
3401 * See https://developers.google.com/search/docs/appearance/structured-data/return-policy.
3402 */
3403 'refund_type' => array(
3404 'https://schema.org/ExchangeRefund' => 'Exchange Refund',
3405 'https://schema.org/FullRefund' => 'Full Refund',
3406 'https://schema.org/StoreCreditRefund' => 'Store Credit Refund',
3407 ),
3408
3409 /*
3410 * Validated on 2024/07/31.
3411 *
3412 * See https://schema.org/MerchantReturnEnumeration.
3413 * See https://developers.google.com/search/docs/appearance/structured-data/return-policy.
3414 */
3415 'merchant_return' => array(
3416 'https://schema.org/MerchantReturnFiniteReturnWindow' => 'Limited Return Window',
3417 'https://schema.org/MerchantReturnNotPermitted' => 'Not Permitted',
3418 'https://schema.org/MerchantReturnUnlimitedWindow' => 'Unlimited Window',
3419 'https://schema.org/MerchantReturnUnspecified' => 'Unspecified',
3420 ),
3421
3422 /*
3423 * Validated on 2025/01/21.
3424 *
3425 * Used by WpssoSchema->filter_sanitize_md_options().
3426 *
3427 * See https://schema.org/PriceTypeEnumeration.
3428 */
3429 'price_type' => array(
3430 'none' => '[None]', // Removed for checklists.
3431 'https://schema.org/InvoicePrice' => 'Invoice Price',
3432 'https://schema.org/ListPrice' => 'List Price',
3433 'https://schema.org/MSRP' => 'Manufacturer Suggested Retail Price',
3434 'https://schema.org/MinimumAdvertisedPrice' => 'Minimum Advertised Price',
3435 'https://schema.org/RegularPrice' => 'Regular Price',
3436 'https://schema.org/SalePrice' => 'Sale Price',
3437 'https://schema.org/SRP' => 'Suggested Retail Price',
3438 'https://schema.org/StrikethroughPrice' => 'Strikethrough Price',
3439 ),
3440
3441 /*
3442 * Validated on 2024/07/31.
3443 *
3444 * See https://schema.org/ReturnFeesEnumeration.
3445 */
3446 'return_fees' => array(
3447 'https://schema.org/FreeReturn' => 'Free Return',
3448 'https://schema.org/ReturnFeesCustomerResponsibility' => 'Customer Pays Shipping',
3449 'https://schema.org/ReturnShippingFees' => 'Return Has Shipping Fees',
3450 ),
3451
3452 /*
3453 * Validated on 2025/07/09.
3454 *
3455 * See https://schema.org/ReturnLabelSourceEnumeration.
3456 * See https://developers.google.com/search/docs/appearance/structured-data/return-policy.
3457 */
3458 'return_label_source' => array(
3459 'https://schema.org/ReturnLabelCustomerResponsibility' => 'Customer Responsibility',
3460 'https://schema.org/ReturnLabelDownloadAndPrint' => 'Download And Print',
3461 'https://schema.org/ReturnLabelInBox' => 'Label In Box',
3462 ),
3463
3464 /*
3465 * Validated on 2023/06/02.
3466 *
3467 * See https://schema.org/ReturnMethodEnumeration.
3468 * See https://developers.google.com/search/docs/appearance/structured-data/merchant-listing#returns.
3469 */
3470 'return_method' => array(
3471 'https://schema.org/ReturnAtKiosk' => 'At Kiosk',
3472 'https://schema.org/ReturnByMail' => 'By Mail',
3473 'https://schema.org/ReturnInStore' => 'In Store',
3474 ),
3475
3476 /*
3477 * Validated on 2021/11/09.
3478 *
3479 * Used by WpssoSchema->filter_sanitize_md_options().
3480 *
3481 * See https://support.google.com/merchants/answer/6324497.
3482 */
3483 'size_group' => array(
3484 'none' => '[None]', // Removed for checklists.
3485 'https://schema.org/WearableSizeGroupRegular' => 'Regular',
3486 'https://schema.org/WearableSizeGroupPetite' => 'Petite',
3487 'https://schema.org/WearableSizeGroupPlus' => 'Plus',
3488 'https://schema.org/WearableSizeGroupTall' => 'Tall',
3489 'https://schema.org/WearableSizeGroupBig' => 'Big',
3490 'https://schema.org/WearableSizeGroupMaternity' => 'Maternity',
3491 ),
3492
3493 /*
3494 * Validated on 2022/12/26.
3495 *
3496 * Used by WpssoSchema->filter_sanitize_md_options().
3497 *
3498 * Not supposed by Google:
3499 *
3500 * https://schema.org/WearableSizeSystemContinental
3501 * https://schema.org/WearableSizeSystemEN13402
3502 * https://schema.org/WearableSizeSystemGS1
3503 *
3504 * See https://support.google.com/merchants/answer/6324502.
3505 */
3506 'size_system' => array(
3507 'none' => '[None]', // Removed for checklists.
3508 'https://schema.org/WearableSizeSystemAU' => 'AU',
3509 'https://schema.org/WearableSizeSystemBR' => 'BR',
3510 'https://schema.org/WearableSizeSystemCN' => 'CN',
3511 'https://schema.org/WearableSizeSystemDE' => 'DE',
3512 'https://schema.org/WearableSizeSystemEurope' => 'EU',
3513 'https://schema.org/WearableSizeSystemFR' => 'FR',
3514 'https://schema.org/WearableSizeSystemIT' => 'IT',
3515 'https://schema.org/WearableSizeSystemJP' => 'JP',
3516 'https://schema.org/WearableSizeSystemMX' => 'MX',
3517 'https://schema.org/WearableSizeSystemUK' => 'UK',
3518 'https://schema.org/WearableSizeSystemUS' => 'US',
3519 ),
3520
3521 /*
3522 * Validated on 2020/08/17.
3523 *
3524 * See https://developers.facebook.com/docs/marketing-api/catalog/reference/.
3525 * See https://schema.org/suggestedGender.
3526 * See https://support.google.com/merchants/answer/6324479.
3527 */
3528 'target_gender' => array(
3529 'none' => '[None]', // Removed for checklists.
3530 'female' => 'Female',
3531 'male' => 'Male',
3532 'unisex' => 'Unisex',
3533 ),
3534
3535 /*
3536 * The default warning is 90% of the maximum length.
3537 *
3538 * See sucomTextLen() in wpsso/live/js/com/jquery-admin-page.js.
3539 */
3540 'input_limits' => array(
3541
3542 /*
3543 * While Google does not specify a recommended length for title tags, most desktop and
3544 * mobile browsers are able to display the first 50–60 characters of a title tag. If you
3545 * keep your titles under 60 characters, our research suggests that you can expect about
3546 * 90% of your titles to display properly in the SERPs. (There's no exact character limit
3547 * because characters can vary in pixel width. Google SERPs can usually display up to 600
3548 * pixels.) While writing concise titles is important for human readability and
3549 * comprehension, Google’s spiders will take into account the entire title tag (within
3550 * reason) when they crawl the page, even if it is not displayed in full in the SERPs.
3551 *
3552 * See https://moz.com/learn/seo/title-tag.
3553 */
3554 'seo_title' => array(
3555 'min' => 10,
3556 'warn' => 60,
3557 'max' => 70,
3558 ),
3559
3560 /*
3561 * Meta descriptions can technically be any length, but Google generally truncates snippets
3562 * to ~155-160 characters. It's best to keep meta descriptions long enough that they're
3563 * sufficiently descriptive, so we recommend descriptions between 50 and 160 characters.
3564 *
3565 * See https://moz.com/learn/seo/meta-description.
3566 */
3567 'seo_desc' => array(
3568 'min' => 50,
3569 'warn' => 150,
3570 'max' => 180,
3571 ),
3572
3573 /*
3574 * Keep it short to prevent overflow. There’s no official guidance on this, but 40
3575 * characters for mobile and 60 for desktop is roughly the sweet spot.
3576 *
3577 * See https://ahrefs.com/blog/open-graph-meta-tags/.
3578 */
3579 'og_title' => array(
3580 'warn' => 40,
3581 'max' => 70,
3582 ),
3583
3584 /*
3585 * Keep it short and sweet. Facebook recommends 2–4 sentences, but that often truncates.
3586 *
3587 * See https://ahrefs.com/blog/open-graph-meta-tags/.
3588 */
3589 'og_desc' => array(
3590 'warn' => 200,
3591 'max' => 300,
3592 ),
3593 'schema_title' => array(
3594 'min' => 10,
3595 'warn' => 60,
3596 'max' => 70,
3597 ),
3598 'schema_title_alt' => array(
3599 'max' => 110,
3600 ),
3601 'schema_title_bc' => array(
3602 'max' => 70,
3603 ),
3604
3605 /*
3606 * The headline of the article. Headlines should not exceed 110 characters. For AMP
3607 * stories, the headline should match the text in the first cover page in the AMP Story.
3608 *
3609 * See https://developers.google.com/search/docs/advanced/structured-data/article.
3610 */
3611 'schema_headline' => array(
3612 'max' => 110,
3613 ),
3614 'schema_desc' => array(
3615 'min' => 50,
3616 'warn' => 150,
3617 'max' => 300,
3618 ),
3619 'schema_text' => array(
3620 'max' => 10000,
3621 ),
3622 'pin_img_desc' => array(
3623 'warn' => 100,
3624 'max' => 300,
3625 ),
3626 'tc_title' => array(
3627 'max' => 70,
3628 ),
3629 'tc_desc' => array(
3630 'max' => 200,
3631 ),
3632 ),
3633 ), // End of 'form' array.
3634
3635 /*
3636 * Reference for meta tags and Schema property values (limits, conversions, etc.).
3637 */
3638 'head' => array(
3639 'limit' => array(
3640 'schema_1x1_img_ratio' => 1.000,
3641 'schema_4x3_img_ratio' => 1.333,
3642 'schema_16x9_img_ratio' => 1.778,
3643 'org_banner_width' => 600,
3644 'org_banner_height' => 60,
3645 ),
3646 'limit_min' => array(
3647 'og_desc_len' => 160,
3648 'og_img_width' => 200,
3649 'og_img_height' => 200,
3650 'schema_desc_len' => 156,
3651 'seo_desc_len' => 156,
3652 'tc_desc_len' => 160,
3653 'tc_sum_img_width' => 144,
3654 'tc_sum_img_height' => 144,
3655 'tc_lrg_img_width' => 300,
3656 'tc_lrg_img_height' => 157,
3657 'schema_1x1_img_width' => 1200,
3658 'schema_1x1_img_height' => 1200,
3659 'schema_4x3_img_width' => 1200,
3660 'schema_4x3_img_height' => 900,
3661 'schema_16x9_img_width' => 1200,
3662 'schema_16x9_img_height' => 675,
3663 'thumb_img_width' => 300,
3664 'thumb_img_height' => 200,
3665 'org_logo_width' => 112,
3666 'org_logo_height' => 112,
3667 ),
3668 'limit_max' => array(
3669 'og_img_ratio' => 3.000,
3670 'schema_headline_len' => 110,
3671 'tc_sum_img_width' => 4096,
3672 'tc_sum_img_height' => 4096,
3673 'tc_lrg_img_width' => 4096,
3674 'tc_lrg_img_height' => 4096,
3675 ),
3676
3677 /*
3678 * Hard-code the Open Graph type based on the WordPress post type.
3679 *
3680 * Example, if the post type is 'product', hard-code the Open Graph type to 'product'.
3681 */
3682 'og_type_by_post_type' => array(
3683 'book' => 'book',
3684 'download' => 'product',
3685 'organization' => 'website',
3686 'place' => 'place',
3687 'product' => 'product',
3688 'profile' => 'profile',
3689 'question' => 'article',
3690 ),
3691
3692 /*
3693 * Hard-code the Open Graph type based on the Schema type.
3694 *
3695 * Example, if the Schema type is 'product', hard-code the Open Graph type to 'product'.
3696 */
3697 'og_type_by_schema_type' => array(
3698 'article' => 'article',
3699 'book' => 'book',
3700 'webpage.checkout' => 'website',
3701 'event' => 'product',
3702 'item.list' => 'website',
3703 'place' => 'place', // Check for Schema place before Schema organization.
3704 'organization' => 'website', // Check for Schema place before Schema organization.
3705 'product' => 'product', // Allows for product offer options.
3706 'question' => 'article',
3707 'review' => 'article',
3708 'service' => 'product',
3709 'software.application' => 'product', // Allows for product offer options.
3710 'webpage.profile' => 'profile',
3711 'website' => 'website',
3712 ),
3713
3714 'og_type_ns' => array( // See https://ogp.me/#types.
3715 'article' => 'https://ogp.me/ns/article#',
3716 'book' => 'https://ogp.me/ns/book#',
3717 'books.author' => 'https://ogp.me/ns/books#',
3718 'books.book' => 'https://ogp.me/ns/books#',
3719 'books.genre' => 'https://ogp.me/ns/books#',
3720 'business.business' => 'https://ogp.me/ns/business#',
3721 'music.album' => 'https://ogp.me/ns/music#',
3722 'music.playlist' => 'https://ogp.me/ns/music#',
3723 'music.radio_station' => 'https://ogp.me/ns/music#',
3724 'music.song' => 'https://ogp.me/ns/music#',
3725 'place' => 'https://ogp.me/ns/place#', // Supported by Facebook and Pinterest.
3726 'product' => 'https://ogp.me/ns/product#', // Supported by Facebook and Pinterest.
3727 'profile' => 'https://ogp.me/ns/profile#',
3728 'video.episode' => 'https://ogp.me/ns/video#',
3729 'video.movie' => 'https://ogp.me/ns/video#',
3730 'video.other' => 'https://ogp.me/ns/video#',
3731 'video.tv_show' => 'https://ogp.me/ns/video#',
3732 'website' => 'https://ogp.me/ns/website#',
3733 ),
3734 'og_type_ns_compat' => array(
3735 'article' => 'https://ogp.me/ns/article#',
3736 'book' => 'https://ogp.me/ns/book#',
3737 'place' => 'https://ogp.me/ns/place#', // Supported by Facebook and Pinterest.
3738 'product' => 'https://ogp.me/ns/product#', // Supported by Facebook and Pinterest.
3739 'profile' => 'https://ogp.me/ns/profile#',
3740 'website' => 'https://ogp.me/ns/website#',
3741 ),
3742
3743 /*
3744 * An array of Open Graph types, their meta tags, and their associated metadata keys.
3745 *
3746 * See WpssoOpengraph->add_data_og_type_md().
3747 * See WpssoOpengraph->sanitize_mt_array().
3748 * See https://developers.facebook.com/docs/reference/opengraph/.
3749 */
3750 'og_type_mt' => array(
3751
3752 /*
3753 * See https://developers.facebook.com/docs/reference/opengraph/object-type/article/.
3754 */
3755 'article' => array(
3756 'article:author' => '',
3757 'article:publisher' => '',
3758 'article:published_time' => '',
3759 'article:modified_time' => '',
3760 'article:expiration_time' => '',
3761 'article:section' => 'schema_article_section',
3762 'article:tag' => '',
3763 ),
3764 'book' => array(
3765 'book:author' => 'schema_book_author_url',
3766 'book:isbn' => 'schema_book_isbn',
3767 'book:release_date' => '',
3768 'book:tag' => '',
3769 ),
3770 'books.author' => array(
3771 'books:book' => '',
3772 'books:gender' => '',
3773 'books:genre' => '',
3774 'books:official_site' => '',
3775 ),
3776 'books.book' => array(
3777 'books:author' => '',
3778 'books:genre' => '',
3779 'books:initial_release_date' => '',
3780 'books:isbn' => '',
3781 'books:language:locale' => '',
3782 'books:language:alternate' => '',
3783 'books:page_count' => '',
3784 'books:rating:value' => '',
3785 'books:rating:scale' => '',
3786 'books:rating:normalized_value' => '',
3787 'books:release_date' => '',
3788 'books:sample' => '',
3789 ),
3790 'books.genre' => array(
3791 'books:author' => '',
3792 'books:book' => '',
3793 'books:canonical_name' => '',
3794 ),
3795 'business.business' => array(
3796 'business:contact_data:street_address' => '',
3797 'business:contact_data:locality' => '',
3798 'business:contact_data:region' => '',
3799 'business:contact_data:postal_code' => '',
3800 'business:contact_data:country_name' => '',
3801 'business:contact_data:email' => '',
3802 'business:contact_data:phone_number' => '',
3803 'business:contact_data:phone_number' => '',
3804 'business:contact_data:website' => '',
3805 'business:hours:day' => '',
3806 'business:hours:start' => '',
3807 'business:hours:end' => '',
3808 ),
3809 'music.album' => array(
3810 'music:song' => '',
3811 'music:song:disc' => '',
3812 'music:song:track' => '',
3813 'music:musician' => '',
3814 'music:release_date' => '',
3815 ),
3816 'music.playlist' => array(
3817 'music:creator' => '',
3818 'music:song' => '',
3819 'music:song:disc' => '',
3820 'music:song:track' => '',
3821 ),
3822 'music.radio_station' => array(
3823 'music:creator' => '',
3824 ),
3825 'music.song' => array(
3826 'music:album' => '',
3827 'music:album:disc' => '',
3828 'music:album:track' => '',
3829 'music:duration' => '',
3830 'music:musician' => '',
3831 ),
3832 'place' => array(
3833 'place:location:latitude' => '',
3834 'place:location:longitude' => '',
3835 'place:location:altitude' => '',
3836 'place:street_address' => '',
3837 'place:locality' => '',
3838 'place:region' => '',
3839 'place:postal_code' => '',
3840 'place:country_name' => '',
3841 ),
3842
3843 /*
3844 * See https://developers.facebook.com/docs/marketing-api/catalog/reference/.
3845 */
3846 'product' => array(
3847 'product:adult_type' => 'product_adult_type', // Internal meta tag.
3848 'product:age_group' => 'product_age_group',
3849 'product:availability' => 'product_avail',
3850 'product:awards' => '', // Internal meta tag.
3851 'product:brand' => 'product_brand',
3852 'product:category' => 'product_category', // Product Google Category.
3853 'product:color' => 'product_color',
3854 'product:condition' => 'product_condition',
3855 'product:ean' => 'product_gtin13',
3856 'product:energy_efficiency:value' => 'product_energy_efficiency', // Internal meta tag.
3857 'product:energy_efficiency:min_value' => 'product_energy_efficiency_min', // Internal meta tag.
3858 'product:energy_efficiency:max_value' => 'product_energy_efficiency_max', // Internal meta tag.
3859 'product:expiration_time' => '',
3860 'product:fluid_volume:value' => 'product_fluid_volume_value', // Internal meta tag.
3861 'product:fluid_volume:units' => 'product_fluid_volume_units', // Internal meta tag.
3862 'product:gtin14' => 'product_gtin14', // Internal meta tag.
3863 'product:gtin13' => 'product_gtin13', // Internal meta tag.
3864 'product:gtin12' => 'product_gtin12', // Internal meta tag.
3865 'product:gtin8' => 'product_gtin8', // Internal meta tag.
3866 'product:gtin' => 'product_gtin', // Internal meta tag.
3867 'product:height:value' => 'product_height_value', // Internal meta tag.
3868 'product:height:units' => 'product_height_units', // Internal meta tag.
3869 'product:isbn' => 'product_isbn',
3870 'product:item_group_id' => '', // Product variant group ID.
3871 'product:length:value' => 'product_length_value', // Internal meta tag.
3872 'product:length:units' => 'product_length_units', // Internal meta tag.
3873 'product:material' => 'product_material',
3874 'product:mfr_part_no' => 'product_mfr_part_no', // Product MPN.
3875 'product:min_advert_price:amount' => 'product_min_advert_price', // Internal meta tag.
3876 'product:min_advert_price:currency' => '', // Internal meta tag.
3877 'product:mrp_id' => 'product_mrp', // Internal meta tag.
3878 'product:original_price:amount' => '', // Used by WooCommerce module.
3879 'product:original_price:currency' => '', // Used by WooCommerce module.
3880 'product:pattern' => 'product_pattern',
3881 'product:pretax_price:amount' => '', // Used by WooCommerce module.
3882 'product:pretax_price:currency' => '', // Used by WooCommerce module.
3883 'product:price:type' => 'product_price_type', // Internal meta tag.
3884 'product:price:amount' => 'product_price',
3885 'product:price:currency' => 'product_currency',
3886 'product:purchase_limit' => '',
3887 'product:retailer_category' => '', // Internal meta tag.
3888 'product:retailer_item_id' => '', // Product ID.
3889 'product:retailer_part_no' => 'product_retailer_part_no', // Product SKU.
3890 'product:sale_price:amount' => '', // Used by WooCommerce module.
3891 'product:sale_price:currency' => '', // Used by WooCommerce module.
3892 'product:sale_price_dates:start' => '', // Used by WooCommerce module.
3893 'product:sale_price_dates:end' => '', // Used by WooCommerce module.
3894 'product:shipping_cost:amount' => '',
3895 'product:shipping_cost:currency' => '',
3896 'product:shipping_height:value' => 'product_shipping_height_value', // Internal meta tag.
3897 'product:shipping_height:units' => 'product_shipping_height_units', // Internal meta tag.
3898 'product:shipping_length:value' => 'product_shipping_length_value', // Internal meta tag.
3899 'product:shipping_length:units' => 'product_shipping_length_units', // Internal meta tag.
3900 'product:shipping_weight:value' => 'product_shipping_weight_value',
3901 'product:shipping_weight:units' => 'product_shipping_weight_units',
3902 'product:shipping_width:value' => 'product_shipping_width_value', // Internal meta tag.
3903 'product:shipping_width:units' => 'product_shipping_width_units', // Internal meta tag.
3904 'product:size' => 'product_size',
3905 'product:size_group' => 'product_size_group', // Internal meta tag.
3906 'product:size_system' => 'product_size_system', // Internal meta tag.
3907 'product:target_gender' => 'product_target_gender',
3908 'product:upc' => 'product_gtin12',
3909 'product:weight:value' => 'product_weight_value',
3910 'product:weight:units' => 'product_weight_units',
3911 'product:width:value' => 'product_width_value', // Internal meta tag.
3912 'product:width:units' => 'product_width_units', // Internal meta tag.
3913 ),
3914 'profile' => array(
3915 'profile:first_name' => '',
3916 'profile:last_name' => '',
3917 'profile:username' => '',
3918 'profile:gender' => '',
3919 ),
3920 'video.episode' => array(
3921 'video:actor' => '',
3922 'video:actor:role' => '',
3923 'video:director' => '',
3924 'video:writer' => '',
3925 'video:duration' => '',
3926 'video:release_date' => '',
3927 'video:tag' => '',
3928 'video:series' => '',
3929 ),
3930 'video.movie' => array(
3931 'video:actor' => '',
3932 'video:actor:role' => '',
3933 'video:director' => '',
3934 'video:writer' => '',
3935 'video:duration' => '',
3936 'video:release_date' => '',
3937 'video:tag' => '',
3938 ),
3939 'video.other' => array(
3940 'video:actor' => '',
3941 'video:actor:role' => '',
3942 'video:director' => '',
3943 'video:writer' => '',
3944 'video:duration' => '',
3945 'video:release_date' => '',
3946 'video:tag' => '',
3947 ),
3948 'video.tv_show' => array(
3949 'video:actor' => '',
3950 'video:actor:role' => '',
3951 'video:director' => '',
3952 'video:writer' => '',
3953 'video:duration' => '',
3954 'video:release_date' => '',
3955 'video:tag' => '',
3956 ),
3957 ),
3958 'og_content_map' => array( // Element of 'head' array.
3959
3960 /*
3961 * Validated on 2021/07/22.
3962 *
3963 * See https://developers.facebook.com/docs/marketing-api/catalog/reference/#og-tags.
3964 *
3965 * Required. Current availability of the item: in stock, out of stock, available for order,
3966 * discontinued. Supports pixel-based catalogs.
3967 */
3968 'product:availability' => array(
3969 'https://schema.org/BackOrder' => 'available for order',
3970 'https://schema.org/Discontinued' => 'discontinued',
3971 'https://schema.org/InStock' => 'in stock',
3972 'https://schema.org/InStoreOnly' => 'in stock',
3973 'https://schema.org/LimitedAvailability' => 'in stock',
3974 'https://schema.org/OnlineOnly' => 'in stock',
3975 'https://schema.org/OutOfStock' => 'out of stock',
3976 'https://schema.org/PreOrder' => 'available for order',
3977 'https://schema.org/PreSale' => 'available for order',
3978 'https://schema.org/SoldOut' => 'out of stock',
3979 ),
3980
3981 /*
3982 * Validated on 2020/08/17.
3983 *
3984 * See https://developers.facebook.com/docs/marketing-api/catalog/reference/#og-tags.
3985 *
3986 * Required. Current condition of the item: new, refurbished, used. Supports pixel-based
3987 * catalogs.
3988 */
3989 'product:condition' => array(
3990 'https://schema.org/DamagedCondition' => 'used',
3991 'https://schema.org/NewCondition' => 'new',
3992 'https://schema.org/RefurbishedCondition' => 'refurbished',
3993 'https://schema.org/UsedCondition' => 'used',
3994 ),
3995 ),
3996 'schema_type' => array( // Element of 'head' array.
3997 'thing' => array( // Most generic type.
3998 'creative.work' => array( // Creative work, including books, movies, photographs, software programs, etc.
3999 'amp.story' => 'https://schema.org/AmpStory',
4000 'article' => array(
4001 'article' => 'https://schema.org/Article',
4002 'article.advertiser.content' => 'https://schema.org/AdvertiserContentArticle',
4003 'article.news' => array(
4004 'article.news' => 'https://schema.org/NewsArticle',
4005 'article.news.analysis' => 'https://schema.org/AnalysisNewsArticle',
4006 'article.news.ask.public' => 'https://schema.org/AskPublicNewsArticle',
4007 'article.news.background' => 'https://schema.org/BackgroundNewsArticle',
4008 'article.news.opinion' => 'https://schema.org/OpinionNewsArticle',
4009 'article.news.reportage' => 'https://schema.org/ReportageNewsArticle',
4010 'article.news.review' => 'https://schema.org/ReviewNewsArticle',
4011 ),
4012 'article.satirical' => 'https://schema.org/SatiricalArticle',
4013 'article.scholarly' => array(
4014 'article.scholarly' => 'https://schema.org/ScholarlyArticle',
4015 'article.scholarly.medical' => 'https://schema.org/MedicalScholarlyArticle',
4016 ),
4017 'article.tech' => array(
4018 'article.tech' => 'https://schema.org/TechArticle',
4019 'article.tech.reference.api' => 'https://schema.org/APIReference',
4020 ),
4021 'report' => 'https://schema.org/Report',
4022 'social.media.posting' => array(
4023 'blog.posting' => array(
4024 'blog.posting' => 'https://schema.org/BlogPosting',
4025 'blog.posting.live' => 'https://schema.org/LiveBlogPosting',
4026 ),
4027 'discussion.forum.posting' => 'https://schema.org/DiscussionForumPosting',
4028 'social.media.posting' => 'https://schema.org/SocialMediaPosting',
4029 ),
4030 ),
4031 'blog' => 'https://schema.org/Blog',
4032 'book' => array(
4033 'book' => 'https://schema.org/Book',
4034 'book.audio' => 'https://schema.org/Audiobook',
4035 ),
4036 'claim' => 'https://schema.org/Claim',
4037 'clip' => 'https://schema.org/Clip',
4038 'comic.story' => 'https://schema.org/ComicStory',
4039 'comment' => array(
4040 'answer' => 'https://schema.org/Answer',
4041 'comment' => 'https://schema.org/Comment',
4042 'question' => 'https://schema.org/Question',
4043 ),
4044 'conversation' => 'https://schema.org/Conversation',
4045 'course' => 'https://schema.org/Course',
4046 'creative.work' => 'https://schema.org/CreativeWork',
4047 'creative.work.season' => array(
4048 'creative.work.season' => 'https://schema.org/CreativeWorkSeason',
4049 'podcast.season' => 'https://schema.org/PodcastSeason',
4050 'radio.season' => 'https://schema.org/RadioSeason',
4051 'tv.season' => 'https://schema.org/TVSeason',
4052 ),
4053 'creative.work.series' => array(
4054 'book.series' => 'https://schema.org/BookSeries',
4055 'creative.work.series' => 'https://schema.org/CreativeWorkSeries',
4056 'movie.series' => 'https://schema.org/MovieSeries',
4057 'periodical' => 'https://schema.org/Periodical',
4058 'podcast.series' => 'https://schema.org/PodcastSeries',
4059 'radio.series' => 'https://schema.org/RadioSeries',
4060 'tv.series' => 'https://schema.org/TVSeries',
4061 'video.game.series' => 'https://schema.org/VideoGameSeries',
4062 ),
4063 'data.catalog' => 'https://schema.org/DataCatalog',
4064 'data.set' => 'https://schema.org/DataSet',
4065 'digital.document' => 'https://schema.org/DigitalDocument',
4066 'episode' => array(
4067 'episode' => 'https://schema.org/Episode',
4068 'episode.podcast' => 'https://schema.org/PodcastEpisode',
4069 'episode.radio' => 'https://schema.org/RadioEpisode',
4070 'episode.tv' => 'https://schema.org/TVEpisode',
4071 ),
4072 'game' => 'https://schema.org/Game',
4073 'howto' => array(
4074 'howto' => 'https://schema.org/HowTo',
4075 'recipe' => 'https://schema.org/Recipe', // Recipe is a sub-type of HowTo.
4076 ),
4077 'learning.resource' => array(
4078 'learning.course' => 'https://schema.org/Course',
4079 'learning.resource' => 'https://schema.org/LearningResource',
4080 'learning.quiz' => 'https://schema.org/Quiz',
4081 'learning.syllabus' => 'https://schema.org/Syllabus',
4082 ),
4083 'map' => 'https://schema.org/Map',
4084 'media.object' => array(
4085 'audio.object' => array(
4086 'audio.object' => 'https://schema.org/AudioObject',
4087 'book.audio' => 'https://schema.org/Audiobook',
4088 ),
4089 'data.download' => 'https://schema.org/DataDownload',
4090 'image.object' => 'https://schema.org/ImageObject',
4091 'media.object' => 'https://schema.org/MediaObject',
4092 'music.video.object' => 'https://schema.org/MusicVideoObject',
4093 'video.object' => 'https://schema.org/VideoObject',
4094 ),
4095 'menu' => 'https://schema.org/Menu',
4096 'menu.section' => 'https://schema.org/MenuSection',
4097 'message' => 'https://schema.org/Message',
4098 'movie' => 'https://schema.org/Movie',
4099 'music.composition' => 'https://schema.org/MusicComposition',
4100 'music.playlist' => array(
4101 'music.album' => 'https://schema.org/MusicAlbum',
4102 'music.playlist' => 'https://schema.org/MusicPlaylist',
4103 'music.release' => 'https://schema.org/MusicRelease',
4104 ),
4105 'music.recording' => 'https://schema.org/MusicRecording',
4106 'painting' => 'https://schema.org/Painting',
4107 'photograph' => 'https://schema.org/Photograph',
4108 'publication.issue' => 'https://schema.org/PublicationIssue',
4109 'publication.volume' => 'https://schema.org/PublicationVolume',
4110 'review' => array(
4111 'review' => 'https://schema.org/Review',
4112 'review.claim' => 'https://schema.org/ClaimReview',
4113 'review.critic' => array(
4114 'review.critic' => 'https://schema.org/CriticReview',
4115 'article.news.review' => 'https://schema.org/ReviewNewsArticle',
4116 ),
4117 'review.employer' => 'https://schema.org/EmployerReview',
4118 'review.media' => 'https://schema.org/MediaReview',
4119 'review.recommendation' => 'https://schema.org/Recommendation',
4120 'review.user' => 'https://schema.org/UserReview',
4121 ),
4122 'sculpture' => 'https://schema.org/Sculpture',
4123 'series' => 'https://schema.org/Series',
4124 'software.application' => array(
4125 'software.application' => 'https://schema.org/SoftwareApplication',
4126 'software.application.mobile' => 'https://schema.org/MobileApplication',
4127 'software.application.video.game' => 'https://schema.org/VideoGame',
4128 'software.application.web' => 'https://schema.org/WebApplication',
4129 ),
4130 'software.source.code' => 'https://schema.org/SoftwareSourceCode',
4131 'special.announcement' => 'https://schema.org/SpecialAnnouncement',
4132 'tv.season' => 'https://schema.org/TVSeason',
4133 'tv.series' => 'https://schema.org/TVSeries',
4134 'visual.artwork' => 'https://schema.org/VisualArtwork',
4135 'webpage' => array(
4136 'webpage' => 'https://schema.org/WebPage',
4137 'webpage.about' => 'https://schema.org/AboutPage',
4138 'webpage.checkout' => 'https://schema.org/CheckoutPage',
4139 'webpage.collection' => array(
4140 'webpage.collection' => 'https://schema.org/CollectionPage',
4141 'webpage.gallery.media' => array(
4142 'webpage.gallery.media' => 'https://schema.org/MediaGallery',
4143 'webpage.gallery.image' => 'https://schema.org/ImageGallery',
4144 'webpage.gallery.video' => 'https://schema.org/VideoGallery',
4145 ),
4146 ),
4147 'webpage.contact' => 'https://schema.org/ContactPage',
4148 'webpage.faq' => 'https://schema.org/FAQPage',
4149 'webpage.item' => 'https://schema.org/ItemPage',
4150 'webpage.medical' => 'https://schema.org/MedicalWebPage',
4151 'webpage.profile' => 'https://schema.org/ProfilePage',
4152 'webpage.qa' => 'https://schema.org/QAPage',
4153 'webpage.real.estate.listing' => 'https://schema.org/RealEstateListing',
4154 'webpage.search.results' => 'https://schema.org/SearchResultsPage',
4155 ),
4156 'webpage.element' => 'https://schema.org/WebPageElement',
4157 'website' => 'https://schema.org/WebSite',
4158 ),
4159 'event' => array(
4160 'event' => 'https://schema.org/Event',
4161 'event.business' => 'https://schema.org/BusinessEvent',
4162 'event.childrens' => 'https://schema.org/ChildrensEvent',
4163 'event.comedy' => 'https://schema.org/ComedyEvent',
4164 'event.dance' => 'https://schema.org/DanceEvent',
4165 'event.delivery' => 'https://schema.org/DeliveryEvent',
4166 'event.education' => 'https://schema.org/EducationEvent',
4167 'event.exhibition' => 'https://schema.org/ExhibitionEvent',
4168 'event.festival' => 'https://schema.org/Festival',
4169 'event.food' => 'https://schema.org/FoodEvent',
4170 'event.literary' => 'https://schema.org/LiteraryEvent',
4171 'event.music' => 'https://schema.org/MusicEvent',
4172 'event.publication' => 'https://schema.org/PublicationEvent',
4173 'event.sale' => 'https://schema.org/SaleEvent',
4174 'event.screening' => 'https://schema.org/ScreeningEvent',
4175 'event.social' => 'https://schema.org/SocialEvent',
4176 'event.sports' => 'https://schema.org/SportsEvent',
4177 'event.theater' => 'https://schema.org/TheaterEvent',
4178 'event.visual.arts' => 'https://schema.org/VisualArtsEvent',
4179 ),
4180 'intangible' => array(
4181 'alignment.object' => 'https://schema.org/AlignmentObject',
4182 'audience' => array(
4183 'audience' => 'https://schema.org/Audience',
4184 'audience.business' => 'https://schema.org/BusinessAudience',
4185 'audience.educational' => 'https://schema.org/EducationalAudience',
4186 'audience.medical' => 'https://schema.org/MedicalAudience',
4187 'audience.people' => 'https://schema.org/PeopleAudience',
4188 ),
4189 'bed.details' => 'https://schema.org/BedDetails',
4190 'brand' => 'https://schema.org/Brand',
4191 'broadcast.channel' => 'https://schema.org/BroadcastChannel',
4192 'computer.language' => 'https://schema.org/ComputerLanguage',
4193 'data.feed.item' => 'https://schema.org/DataFeedItem',
4194 'demand' => 'https://schema.org/Demand',
4195 'digital.document.permission' => 'https://schema.org/DigitalDocumentPermission',
4196 'entry.point' => 'https://schema.org/EntryPoint',
4197 'enumeration' => array(
4198 'action.status.type' => 'https://schema.org/ActionStatusType',
4199 'boarding.policy.type' => 'https://schema.org/BoardingPolicyType',
4200 'book.format.type' => 'https://schema.org/BookFormatType',
4201 'business.entity.type' => 'https://schema.org/BusinessEntityType',
4202 'business.function' => 'https://schema.org/BusinessFunction',
4203 'contact.point.option' => 'https://schema.org/ContactPointOption',
4204 'day.of.week' => 'https://schema.org/DayOfWeek',
4205 'delivery.method' => 'https://schema.org/DeliveryMethod',
4206 'digital.document.permission.type' => 'https://schema.org/DigitalDocumentPermissionType',
4207 'enumeration' => 'https://schema.org/Enumeration',
4208 'event.status.type' => 'https://schema.org/EventStatusType',
4209 'game.play.mode' => 'https://schema.org/GamePlayMode',
4210 'game.server.status' => 'https://schema.org/GameServerStatus',
4211 'gender.type' => 'https://schema.org/GenderType',
4212 'item.availability' => 'https://schema.org/ItemAvailability',
4213 'item.list.order.type' => 'https://schema.org/ItemListOrderType',
4214 'map.category.type' => 'https://schema.org/MapCategoryType',
4215 'medical.enumeration' => array(
4216 'audience.medical' => 'https://schema.org/MedicalAudience',
4217 'medical.enumeration' => 'https://schema.org/MedicalEnumeration',
4218 'medical.specialty' => array(
4219 'anesthesia.specialty' => 'https://schema.org/Anesthesia',
4220 'cardiovascular.specialty' => 'https://schema.org/Cardiovascular',
4221 'community.health.specialty' => 'https://schema.org/CommunityHealth',
4222 'dentistry.specialty' => 'https://schema.org/Dentistry',
4223 'dermatologic.specialty' => 'https://schema.org/Dermatologic',
4224 'dermatology.specialty' => 'https://schema.org/Dermatology',
4225 'diet.nutrition.specialty' => 'https://schema.org/DietNutrition',
4226 'emergency.specialty' => 'https://schema.org/Emergency',
4227 'endocrine.specialty' => 'https://schema.org/Endocrine',
4228 'gastroenterologic.specialty' => 'https://schema.org/Gastroenterologic',
4229 'genetic.specialty' => 'https://schema.org/Genetic',
4230 'geriatric.specialty' => 'https://schema.org/Geriatric',
4231 'gynecologic.specialty' => 'https://schema.org/Gynecologic',
4232 'hematologic.specialty' => 'https://schema.org/Hematologic',
4233 'infectious.specialty' => 'https://schema.org/Infectious',
4234 'laboratory.science.specialty' => 'https://schema.org/LaboratoryScience',
4235 'medical.specialty' => 'https://schema.org/MedicalSpecialty',
4236 'midwifery.specialty' => 'https://schema.org/Midwifery',
4237 'musculoskeletal.specialty' => 'https://schema.org/Musculoskeletal',
4238 'neurologic.specialty' => 'https://schema.org/Neurologic',
4239 'nursing.specialty' => 'https://schema.org/Nursing',
4240 'obstetric.specialty' => 'https://schema.org/Obstetric',
4241 'occupational.therapy.specialty' => 'https://schema.org/OccupationalTherapy',
4242 'oncologic.specialty' => 'https://schema.org/Oncologic',
4243 'optometric.specialty' => 'https://schema.org/Optometric',
4244 'otolaryngologic.specialty' => 'https://schema.org/Otolaryngologic',
4245 'pathology.specialty' => 'https://schema.org/Pathology',
4246 'pediatric.specialty' => 'https://schema.org/Pediatric',
4247 'pharmacy.specialty' => 'https://schema.org/PharmacySpecialty',
4248 'physiotherapy.specialty' => 'https://schema.org/Physiotherapy',
4249 'plastic.surgery.specialty' => 'https://schema.org/PlasticSurgery',
4250 'podiatric.specialty' => 'https://schema.org/Podiatric',
4251 'primary.care.specialty' => 'https://schema.org/PrimaryCare',
4252 'psychiatric.specialty' => 'https://schema.org/Psychiatric',
4253 'public.health.specialty' => 'https://schema.org/PublicHealth',
4254 'pulmonary.specialty' => 'https://schema.org/Pulmonary',
4255 'radiography.specialty' => 'https://schema.org/Radiography',
4256 'renal.specialty' => 'https://schema.org/Renal',
4257 'respiratory.therapy.specialty' => 'https://schema.org/RespiratoryTherapy',
4258 'rheumatologic.specialty' => 'https://schema.org/Rheumatologic',
4259 'speech.pathology.specialty' => 'https://schema.org/SpeechPathology',
4260 'surgical.specialty' => 'https://schema.org/Surgical',
4261 'toxicologic.specialty' => 'https://schema.org/Toxicologic',
4262 'urologic.specialty' => 'https://schema.org/Urologic',
4263 ),
4264 'medicine.system' => array(
4265 'ayurvedic.system' => 'https://schema.org/Ayurvedic',
4266 'chiropractic.system' => 'https://schema.org/Chiropractic',
4267 'homeopathic.system' => 'https://schema.org/Homeopathic',
4268 'medicine.system' => 'https://schema.org/MedicineSystem',
4269 'osteopathic.system' => 'https://schema.org/Osteopathic',
4270 'traditional.chinese.system' => 'https://schema.org/TraditionalChinese',
4271 'western.conventional.system' => 'https://schema.org/WesternConventional',
4272 ),
4273 ),
4274 'music.album.production.type' => 'https://schema.org/MusicAlbumProductionType',
4275 'music.album.release.type' => 'https://schema.org/MusicAlbumReleaseType',
4276 'music.release.format.type' => 'https://schema.org/MusicReleaseFormatType',
4277 'offer.item.condition' => 'https://schema.org/OfferItemCondition',
4278 'order.status' => 'https://schema.org/OrderStatus',
4279 'payment.method' => array(
4280 'payment.card' => array(
4281 'credit.card' => 'https://schema.org/CreditCard',
4282 'payment.card' => 'https://schema.org/PaymentCard',
4283 ),
4284 'payment.method' => 'https://schema.org/PaymentMethod',
4285 ),
4286 'payment.status.type' => 'https://schema.org/PaymentStatusType',
4287 'qualitative.value' => 'https://schema.org/QualitativeValue',
4288 'reservation.status.type' => 'https://schema.org/ReservationStatusType',
4289 'restricted.diet' => 'https://schema.org/RestrictedDiet',
4290 'rsvp.response.type' => 'https://schema.org/RsvpResponseType',
4291 'specialty' => array(
4292 // 'medical.specialty' array added by WpssoSchema::add_schema_type_xrefs().
4293 'specialty' => 'https://schema.org/Specialty',
4294 ),
4295 'warranty.scope' => 'https://schema.org/WarrantyScope',
4296 ),
4297 'game.server' => 'https://schema.org/GameServer',
4298 'intangible' => 'https://schema.org/Intangible',
4299 'invoice' => 'https://schema.org/Invoice',
4300 'item.list' => array(
4301 'breadcrumb.list' => 'https://schema.org/BreadcrumbList',
4302 'howto.section' => 'https://schema.org/HowToSection',
4303 'howto.step' => 'https://schema.org/HowToStep',
4304 'item.list' => 'https://schema.org/ItemList',
4305 'offer.catalog' => 'https://schema.org/OfferCatalog',
4306 ),
4307 'job.posting' => 'https://schema.org/JobPosting',
4308 'language' => 'https://schema.org/Language',
4309 'list.item' => array(
4310 'howto.direction' => 'https://schema.org/HowToDirection',
4311 'howto.item' => array(
4312 'howto.item' => 'https://schema.org/HowToItem',
4313 'howto.supply' => 'https://schema.org/HowToSupply',
4314 'howto.tool' => 'https://schema.org/HowToTool',
4315 ),
4316 'howto.section' => 'https://schema.org/HowToSection',
4317 'howto.step' => 'https://schema.org/HowToStep',
4318 'howto.tip' => 'https://schema.org/HowToTip',
4319 'list.item' => 'https://schema.org/ListItem',
4320 ),
4321 'menu.item' => 'https://schema.org/MenuItem',
4322 'offer' => array(
4323 'offer' => 'https://schema.org/Offer',
4324 'offer.aggregate' => 'https://schema.org/AggregateOffer',
4325 ),
4326 'order' => 'https://schema.org/Order',
4327 'order.item' => 'https://schema.org/OrderItem',
4328 'parcel.delivery' => 'https://schema.org/ParcelDelivery',
4329 'permit' => 'https://schema.org/Permit',
4330 'program.membership' => 'https://schema.org/ProgramMembership',
4331 'property.value.specification' => 'https://schema.org/PropertyValueSpecification',
4332 'quantity' => 'https://schema.org/Quantity',
4333 'rating' => array(
4334 'rating' => 'https://schema.org/Rating',
4335 'rating.aggregate' => 'https://schema.org/AggregateRating',
4336 ),
4337 'reservation' => 'https://schema.org/Reservation',
4338 'role' => 'https://schema.org/Role',
4339 'seat' => 'https://schema.org/Seat',
4340
4341 /*
4342 * A service provided by an organization, e.g. delivery service, print services, etc.
4343 */
4344 'service' => array(
4345 'service' => 'https://schema.org/Service',
4346 'service.broadcast' => array(
4347 'service.broadcast' => 'https://schema.org/BroadcastService',
4348 'service.broadcast.radio' => 'https://schema.org/RadioBroadcastService',
4349 ),
4350 'service.cable.or.satellite' => 'https://schema.org/CableOrSatelliteService',
4351 'service.financial.product' => array(
4352 'bank.account' => array(
4353 'bank.account' => 'https://schema.org/BankAccount',
4354 'deposit.account' => 'https://schema.org/DepositAccount',
4355 ),
4356 'service.currency.conversion' => 'https://schema.org/CurrencyConversionService',
4357 'service.financial.product' => 'https://schema.org/FinancialProduct',
4358 'service.investment.or.deposit' => array(
4359 'brokerage.account' => 'https://schema.org/BrokerageAccount',
4360 'deposit.account' => 'https://schema.org/DepositAccount',
4361 'service.investment.or.deposit' => 'https://schema.org/InvestmentOrDeposit',
4362 'service.investment.fund' => 'https://schema.org/InvestmentFund',
4363 ),
4364 'service.loan.or.credit' => array(
4365 'credit.card' => 'https://schema.org/CreditCard',
4366 'mortgage.loan' => 'https://schema.org/MortgageLoan',
4367 'service.loan.or.credit' => 'https://schema.org/LoanOrCredit',
4368 ),
4369 // 'payment.card' array added by WpssoSchema::add_schema_type_xrefs().
4370 'service.payment' => 'https://schema.org/PaymentService',
4371 ),
4372 'service.food' => 'https://schema.org/FoodService',
4373 'service.government' => 'https://schema.org/GovernmentService',
4374 'service.taxi' => 'https://schema.org/TaxiService',
4375 'service.webapi' => 'https://schema.org/WebAPI',
4376 ),
4377 'service.channel' => 'https://schema.org/ServiceChannel',
4378 'structured.value' => array(
4379 'cdc.pmd.record' => 'https://schema.org/CDCPMDRecord',
4380 'contact.point' => array(
4381 'contact.point' => 'https://schema.org/ContactPoint',
4382 'postal.address' => 'https://schema.org/PostalAddress',
4383 ),
4384 'defined.region' => 'https://schema.org/DefinedRegion',
4385 'engine.specification' => 'https://schema.org/EngineSpecification',
4386 'exchange.rate.specification' => 'https://schema.org/ExchangeRateSpecification',
4387 'geo.coordinates' => 'https://schema.org/GeoCoordinates',
4388 'geo.shape' => array(
4389 'geo.circle' => 'https://schema.org/GeoCircle',
4390 'geo.shape' => 'https://schema.org/GeoShape',
4391 ),
4392 'interaction.counter' => 'https://schema.org/InteractionCounter',
4393 'monetary.amount' => 'https://schema.org/MonetaryAmount',
4394 'nutrition.information' => 'https://schema.org/NutritionInformation',
4395 'offer.shipping.details' => 'https://schema.org/OfferShippingDetails',
4396 'opening.hours.specification' => 'https://schema.org/OpeningHoursSpecification',
4397 'ownership.info' => 'https://schema.org/OwnershipInfo',
4398 'postal.code.range.specification' => 'https://schema.org/PostalCodeRangeSpecification',
4399 'price.specification' => 'https://schema.org/PriceSpecification',
4400 'property.value' => 'https://schema.org/PropertyValue',
4401 'quantitative.value' => 'https://schema.org/QuantitativeValue',
4402 'quantitative.value.distribution' => 'https://schema.org/QuantitativeValueDistribution',
4403 'repayment.specification' => 'https://schema.org/RepaymentSpecification',
4404 'service.period' => 'https://schema.org/ServicePeriod',
4405 'shipping.conditions' => 'https://schema.org/ShippingConditions',
4406 'shipping.delivery.time' => 'https://schema.org/ShippingDeliveryTime',
4407 'Shipping.rate.settings' => 'https://schema.org/ShippingRateSettings',
4408 'Shipping.service' => 'https://schema.org/ShippingService',
4409 'structured.value' => 'https://schema.org/StructuredValue',
4410 'type.and.quantity.node' => 'https://schema.org/TypeAndQuantityNode',
4411 'warranty.promise' => 'https://schema.org/WarrantyPromise',
4412 ),
4413 'ticket' => 'https://schema.org/Ticket',
4414 'trip' => array(
4415 'trip' => 'https://schema.org/Trip',
4416 'trip.bus' => 'https://schema.org/BusTrip',
4417 'trip.flight' => 'https://schema.org/Flight',
4418 'trip.train' => 'https://schema.org/TrainTrip',
4419 'trip.tourist' => 'https://schema.org/TouristTrip',
4420 ),
4421 'virtual.location' => 'https://schema.org/VirtualLocation',
4422 ),
4423 'medical.entity' => array(
4424 'medical.anatomical.structure' => 'https://schema.org/AnatomicalStructure',
4425 'medical.anatomical.systems' => 'https://schema.org/AnatomicalSystem',
4426 'medical.cause' => 'https://schema.org/MedicalCause',
4427 'medical.condition' => array(
4428 'medical.condition' => 'https://schema.org/MedicalCondition',
4429 'medical.infectious.disease' => 'https://schema.org/InfectiousDisease',
4430 'medical.sign.or.symptom' => array(
4431 'medical.sign.or.symptom' => 'https://schema.org/MedicalSignOrSymptom',
4432 'medical.sign' => array(
4433 'medical.sign' => 'https://schema.org/MedicalSign',
4434 'medical.sign.vital' => 'https://schema.org/MedicalVitalSign',
4435 ),
4436 'medical.symptom' => 'https://schema.org/MedicalSymptom',
4437 ),
4438 ),
4439 'medical.contraindication' => 'https://schema.org/MedicalContraindication',
4440 'medical.device' => 'https://schema.org/MedicalDevice',
4441 'medical.entity' => 'https://schema.org/MedicalEntity',
4442 'medical.guideline' => 'https://schema.org/MedicalGuideline',
4443 'medical.indication' => 'https://schema.org/MedicalIndication',
4444 'medical.intangible' => 'https://schema.org/MedicalIntangible',
4445 'medical.lifestyle.modifications' => 'https://schema.org/LifestyleModification',
4446 'medical.procedure' => 'https://schema.org/MedicalProcedure',
4447 'medical.risk.estimator' => 'https://schema.org/MedicalRiskEstimator',
4448 'medical.risk.factor' => 'https://schema.org/MedicalRiskFactor',
4449 'medical.study' => 'https://schema.org/MedicalStudy',
4450 'medical.substance' => 'https://schema.org/Substance',
4451 'medical.superficial.anatomy' => 'https://schema.org/SuperficialAnatomy',
4452 'medical.test' => 'https://schema.org/MedicalTest',
4453 ),
4454 'organization' => array(
4455 'airline' => 'https://schema.org/Airline',
4456 'consortium' => 'https://schema.org/Consortium',
4457 'corporation' => 'https://schema.org/Corporation',
4458 // 'educational.organization' array added by WpssoSchema::add_schema_type_xrefs().
4459 'funding.scheme' => 'https://schema.org/FundingScheme',
4460 'government.organization' => 'https://schema.org/GovernmentOrganization',
4461 'library.system' => 'https://schema.org/LibrarySystem',
4462 // 'local.business' array added by WpssoSchema::add_schema_type_xrefs().
4463 'medical.organization' => array(
4464 'dentist.organization' => 'https://schema.org/Dentist',
4465 'diagnostic.lab.organization' => 'https://schema.org/DiagnosticLab',
4466 'hospital' => 'https://schema.org/Hospital',
4467 'medical.clinic' => array(
4468 'medical.clinic' => 'https://schema.org/MedicalClinic',
4469 'covid.testing.facility' => 'https://schema.org/CovidTestingFacility',
4470 ),
4471 'pharmacy.organization' => 'https://schema.org/Pharmacy',
4472 'physician.organization' => 'https://schema.org/Physician',
4473 'veterinary.care' => 'https://schema.org/VeterinaryCare',
4474 ),
4475 'non-governmental.organization' => 'https://schema.org/NGO',
4476 'news.media.organization' => 'https://schema.org/NewsMediaOrganization',
4477 'online.business' => array(
4478 'online.business' => 'https://schema.org/OnlineBusiness',
4479 'online.store' => 'https://schema.org/OnlineStore',
4480 ),
4481 'organization' => 'https://schema.org/Organization',
4482 'performing.group' => array(
4483 'dance.group' => 'https://schema.org/DanceGroup',
4484 'music.group' => 'https://schema.org/MusicGroup',
4485 'performing.group' => 'https://schema.org/PerformingGroup',
4486 'theater.group' => 'https://schema.org/TheaterGroup',
4487 ),
4488 'project' => array(
4489 'funding.agency' => 'https://schema.org/FundingAgency',
4490 'project' => 'https://schema.org/Project',
4491 'research.project' => 'https://schema.org/ResearchProject',
4492 ),
4493 'research.organization' => 'https://schema.org/ResearchOrganization',
4494 'search.rescue.organization' => 'https://schema.org/SearchRescueOrganization',
4495 'sports.organization' => array(
4496 'sports.team' => 'https://schema.org/SportsTeam',
4497 'sports.organization' => 'https://schema.org/SportsOrganization',
4498 ),
4499 'workers.union' => 'https://schema.org/WorkersUnion',
4500 ),
4501 'person' => 'https://schema.org/Person',
4502 'place' => array(
4503 'accommodation' => array(
4504 'accommodation' => 'https://schema.org/Accommodation',
4505 'apartment' => 'https://schema.org/Apartment',
4506 'camping.pitch' => 'https://schema.org/CampingPitch',
4507 'house' => array(
4508 'house' => 'https://schema.org/House',
4509 'house.single.family' => 'https://schema.org/SingleFamilyResidence',
4510 ),
4511 'room' => array(
4512 'room' => 'https://schema.org/Room',
4513 'room.hotel' => 'https://schema.org/HotelRoom',
4514 'room.meeting' => 'https://schema.org/MeetingRoom',
4515 ),
4516 'suite' => 'https://schema.org/Suite',
4517 ),
4518 'administrative.area' => array(
4519 'administrative.area' => 'https://schema.org/AdministrativeArea',
4520 'city' => 'https://schema.org/City',
4521 'country' => 'https://schema.org/Country',
4522 'state' => 'https://schema.org/State',
4523 ),
4524 'civic.structure' => array(
4525 'airport' => 'https://schema.org/Airport',
4526 'aquarium' => 'https://schema.org/Aquarium',
4527 'beach' => 'https://schema.org/Beach',
4528 'boat.terminal' => 'https://schema.org/BoatTerminal',
4529 'bridge' => 'https://schema.org/Bridge',
4530 'bus.station' => 'https://schema.org/BusStation',
4531 'bus.stop' => 'https://schema.org/BusStop',
4532 'campground' => 'https://schema.org/Campground',
4533 'cemetary' => 'https://schema.org/Cemetery',
4534 'civic.structure' => 'https://schema.org/CivicStructure',
4535 'crematorium' => 'https://schema.org/Crematorium',
4536 'educational.organization' => array(
4537 'college.or.university' => 'https://schema.org/CollegeOrUniversity',
4538 'educational.organization' => 'https://schema.org/EducationalOrganization',
4539 'elementary.school' => 'https://schema.org/ElementarySchool',
4540 'high.school' => 'https://schema.org/HighSchool',
4541 'middle.school' => 'https://schema.org/MiddleSchool',
4542 'preschool' => 'https://schema.org/Preschool',
4543 'school' => 'https://schema.org/School',
4544 ),
4545 'event.venue' => 'https://schema.org/EventVenue',
4546 'fire.station' => 'https://schema.org/FireStation',
4547 'government.building' => 'https://schema.org/GovernmentBuilding',
4548 'hospital' => 'https://schema.org/Hospital',
4549 'movie.theater' => 'https://schema.org/MovieTheater',
4550 'museum' => 'https://schema.org/Museum',
4551 'music.venue' => 'https://schema.org/MusicVenue',
4552 'park' => 'https://schema.org/Park',
4553 'parking.facility' => 'https://schema.org/ParkingFacility',
4554 'performing.arts.theatre' => 'https://schema.org/PerformingArtsTheater',
4555 'place.of.worship' => 'https://schema.org/PlaceOfWorship',
4556 'playground' => 'https://schema.org/Playground',
4557 'rv.park' => 'https://schema.org/RVPark',
4558 'police.station' => 'https://schema.org/PoliceStation',
4559 'public.toilet' => 'https://schema.org/PublicToilet',
4560 'stadium.or.arena' => 'https://schema.org/StadiumOrArena',
4561 'subway.station' => 'https://schema.org/SubwayStation',
4562 'taxi.stand' => 'https://schema.org/TaxiStand',
4563 'train.station' => 'https://schema.org/TrainStation',
4564 'zoo' => 'https://schema.org/Zoo',
4565 ),
4566 'landform' => 'https://schema.org/Landform',
4567 'landmarks.or.historical.buildings' => 'https://schema.org/LandmarksOrHistoricalBuildings',
4568 'local.business' => array(
4569 'animal.shelter' => 'https://schema.org/AnimalShelter',
4570 'automotive.business' => array(
4571 'auto.body.shop' => 'https://schema.org/AutoBodyShop',
4572 'auto.dealer' => 'https://schema.org/AutoDealer',
4573 'auto.parts.store' => 'https://schema.org/AutoPartsStore',
4574 'auto.rental' => 'https://schema.org/AutoRental',
4575 'auto.repair' => 'https://schema.org/AutoRepair',
4576 'auto.wash' => 'https://schema.org/AutoWash',
4577 'automotive.business' => 'https://schema.org/AutomotiveBusiness',
4578 'gas.station' => 'https://schema.org/GasStation',
4579 'motorcycle.dealer' => 'https://schema.org/MotorcycleDealer',
4580 'motorcycle.repair' => 'https://schema.org/MotorcycleRepair',
4581 ),
4582 'child.care' => 'https://schema.org/ChildCare',
4583 'dentist.organization' => 'https://schema.org/Dentist',
4584 'dry.cleaning.or.laundry' => 'https://schema.org/DryCleaningOrLaundry',
4585 'emergency.service' => array(
4586 'emergency.service' => 'https://schema.org/EmergencyService',
4587 'fire.station' => 'https://schema.org/FireStation',
4588 'hospital' => 'https://schema.org/Hospital',
4589 'police.station' => 'https://schema.org/PoliceStation',
4590 ),
4591 'employment.agency' => 'https://schema.org/EmploymentAgency',
4592 'entertainment.business' => array(
4593 'adult.entertainment' => 'https://schema.org/AdultEntertainment',
4594 'amusement.park' => 'https://schema.org/AmusementPark',
4595 'art.gallery' => 'https://schema.org/ArtGallery',
4596 'casino' => 'https://schema.org/Casino',
4597 'comedy.club' => 'https://schema.org/ComedyClub',
4598 'entertainment.business' => 'https://schema.org/EntertainmentBusiness',
4599 'movie.theater' => 'https://schema.org/MovieTheater',
4600 'night.club' => 'https://schema.org/NightClub',
4601 ),
4602 'financial.service' => 'https://schema.org/FinancialService',
4603 'food.establishment' => array(
4604 'bakery' => 'https://schema.org/Bakery',
4605 'bar.or.pub' => 'https://schema.org/BarOrPub',
4606 'brewery' => 'https://schema.org/Brewery',
4607 'cafe.or.coffee.shop' => 'https://schema.org/CafeOrCoffeeShop',
4608 'fast.food.restaurant' => 'https://schema.org/FastFoodRestaurant',
4609 'food.establishment' => 'https://schema.org/FoodEstablishment',
4610 'ice.cream.shop' => 'https://schema.org/IceCreamShop',
4611 'restaurant' => 'https://schema.org/Restaurant',
4612 'winery' => 'https://schema.org/Winery',
4613 ),
4614 'government.office' => 'https://schema.org/GovernmentOffice',
4615 'health.and.beauty.business' => array(
4616 'beauty.salon' => 'https://schema.org/BeautySalon',
4617 'day.spa' => 'https://schema.org/DaySpa',
4618 'health.and.beauty.business' => 'https://schema.org/HealthAndBeautyBusiness',
4619 'hair.salon' => 'https://schema.org/HairSalon',
4620 'health.club' => 'https://schema.org/HealthClub',
4621 'nail.salon' => 'https://schema.org/NailSalon',
4622 'tattoo.parlor' => 'https://schema.org/TattooParlor',
4623 ),
4624 'home.and.construction.business' => array(
4625 'electrician' => 'https://schema.org/Electrician',
4626 'general.contractor' => 'https://schema.org/GeneralContractor',
4627 'hvac.business' => 'https://schema.org/HVACBusiness',
4628 'home.and.construction.business' => 'https://schema.org/HomeAndConstructionBusiness',
4629 'house.painter' => 'https://schema.org/HousePainter',
4630 'locksmith' => 'https://schema.org/Locksmith',
4631 'moving.company' => 'https://schema.org/MovingCompany',
4632 'plumber' => 'https://schema.org/Plumber',
4633 'roofing.contractor' => 'https://schema.org/RoofingContractor',
4634 ),
4635 'internet.cafe' => 'https://schema.org/InternetCafe',
4636 'legal.service' => array(
4637 'attorney' => 'https://schema.org/Attorney',
4638 'legal.service' => 'https://schema.org/LegalService',
4639 'notary' => 'https://schema.org/Notary',
4640 ),
4641 'library' => 'https://schema.org/Library',
4642 'local.business' => 'https://schema.org/LocalBusiness',
4643 'lodging.business' => array(
4644 'bed.and.breakfast' => 'https://schema.org/BedAndBreakfast',
4645 'campground' => 'https://schema.org/Campground',
4646 'lodging.business' => 'https://schema.org/LodgingBusiness',
4647 'hostel' => 'https://schema.org/Hostel',
4648 'hotel' => 'https://schema.org/Hotel',
4649 'motel' => 'https://schema.org/Motel',
4650 'resort' => 'https://schema.org/Resort',
4651 ),
4652 'medical.business' => array(
4653 'community.health.business' => 'https://schema.org/CommunityHealth',
4654 'dentist.business' => 'https://schema.org/Dentist',
4655 'dermatology.business' => 'https://schema.org/Dermatology',
4656 'diet.nutrition.business' => 'https://schema.org/DietNutrition',
4657 'emergency.business' => 'https://schema.org/Emergency',
4658 'geriatric.business' => 'https://schema.org/Geriatric',
4659 'gynecologic.business' => 'https://schema.org/Gynecologic',
4660 'medical.business' => 'https://schema.org/MedicalBusiness',
4661 'medical.clinic' => array(
4662 'medical.clinic' => 'https://schema.org/MedicalClinic',
4663 'covid.testing.facility' => 'https://schema.org/CovidTestingFacility',
4664 ),
4665 'midwifery.business' => 'https://schema.org/Midwifery',
4666 'nursing.business' => 'https://schema.org/Nursing',
4667 'obstetric.business' => 'https://schema.org/Obstetric',
4668 'oncologic.business' => 'https://schema.org/Oncologic',
4669 'optician.business' => 'https://schema.org/Optician',
4670 'optometric.business' => 'https://schema.org/Optometric',
4671 'otolaryngologic.business' => 'https://schema.org/Otolaryngologic',
4672 'pediatric.business' => 'https://schema.org/Pediatric',
4673 'pharmacy.business' => 'https://schema.org/Pharmacy',
4674 'physician.business' => 'https://schema.org/Physician',
4675 'physiotherapy.business' => 'https://schema.org/Physiotherapy',
4676 'plastic.surgery.business' => 'https://schema.org/PlasticSurgery',
4677 'podiatric.business' => 'https://schema.org/Podiatric',
4678 'primary.care.business' => 'https://schema.org/PrimaryCare',
4679 'psychiatric.business' => 'https://schema.org/Psychiatric',
4680 'public.health.business' => 'https://schema.org/PublicHealth',
4681 ),
4682 'professional.service' => 'https://schema.org/ProfessionalService',
4683 'radio.station' => 'https://schema.org/RadioStation',
4684 'real.estate.agent' => 'https://schema.org/RealEstateAgent',
4685 'recycling.center' => 'https://schema.org/RecyclingCenter',
4686 'self.storage' => 'https://schema.org/SelfStorage',
4687 'shopping.center' => 'https://schema.org/ShoppingCenter',
4688 'sports.activity.location' => array(
4689 'sports.activity.location' => 'https://schema.org/SportsActivityLocation',
4690 'stadium.or.arena' => 'https://schema.org/StadiumOrArena',
4691 ),
4692 'store' => array(
4693 'auto.parts.store' => 'https://schema.org/AutoPartsStore',
4694 'bike.store' => 'https://schema.org/BikeStore',
4695 'book.store' => 'https://schema.org/BookStore',
4696 'clothing.store' => 'https://schema.org/ClothingStore',
4697 'computer.store' => 'https://schema.org/ComputerStore',
4698 'convenience.store' => 'https://schema.org/ConvenienceStore',
4699 'department.store' => 'https://schema.org/DepartmentStore',
4700 'electronics.store' => 'https://schema.org/ElectronicsStore',
4701 'florist' => 'https://schema.org/Florist',
4702 'flower.shop' => 'https://schema.org/Florist',
4703 'furniture.store' => 'https://schema.org/FurnitureStore',
4704 'garden.store' => 'https://schema.org/GardenStore',
4705 'grocery.store' => 'https://schema.org/GroceryStore',
4706 'hardware.store' => 'https://schema.org/HardwareStore',
4707 'hobby.shop' => 'https://schema.org/HobbyShop',
4708 'home.goods.store' => 'https://schema.org/HomeGoodsStore',
4709 'jewelry.store' => 'https://schema.org/JewelryStore',
4710 'liquor.store' => 'https://schema.org/LiquorStore',
4711 'mens.clothing.store' => 'https://schema.org/MensClothingStore',
4712 'mobile.phone.store' => 'https://schema.org/MobilePhoneStore',
4713 'movie.rental.store' => 'https://schema.org/MovieRentalStore',
4714 'music.store' => 'https://schema.org/MusicStore',
4715 'office.equipment.store' => 'https://schema.org/OfficeEquipmentStore',
4716 'outlet.store' => 'https://schema.org/OutletStore',
4717 'pawn.shop' => 'https://schema.org/PawnShop',
4718 'pet.store' => 'https://schema.org/PetStore',
4719 'shoe.store' => 'https://schema.org/ShoeStore',
4720 'sporting.goods.store' => 'https://schema.org/SportingGoodsStore',
4721 'store' => 'https://schema.org/Store',
4722 'tire.shop' => 'https://schema.org/TireShop',
4723 'toy.store' => 'https://schema.org/ToyStore',
4724 'wholesale.store' => 'https://schema.org/WholesaleStore',
4725 ),
4726 'television.station' => 'https://schema.org/TelevisionStation',
4727 'tourist.information.center' => 'https://schema.org/TouristInformationCenter',
4728 'travel.agency' => 'https://schema.org/TravelAgency',
4729 ),
4730 'place' => 'https://schema.org/Place',
4731 'residence' => array(
4732 'residence' => 'https://schema.org/Residence',
4733 'residence.apartment.complex' => 'https://schema.org/ApartmentComplex',
4734 'residence.gated.community' => 'https://schema.org/GatedResidenceCommunity',
4735 ),
4736 'tourist.attraction' => 'https://schema.org/TouristAttraction',
4737 'tourist.destination' => 'https://schema.org/TouristDestination',
4738 ),
4739 'product' => array(
4740 'individual.product' => 'https://schema.org/IndividualProduct', // Individual product with unique serial number.
4741 'product' => 'https://schema.org/Product',
4742 'product.group' => 'https://schema.org/ProductGroup',
4743 'product.model' => 'https://schema.org/ProductModel',
4744 'some.products' => 'https://schema.org/SomeProducts',
4745 'vehicle' => array(
4746 'bus.or.coach' => 'https://auto.schema.org/BusOrCoach',
4747 'car' => 'https://auto.schema.org/Car',
4748 'motorcycle' => 'https://auto.schema.org/Motorcycle',
4749 'motorized.bicycle' => 'https://auto.schema.org/MotorizedBicycle',
4750 'vehicle' => 'https://auto.schema.org/Vehicle',
4751 ),
4752 ),
4753 'thing' => 'https://schema.org/Thing',
4754 ),
4755 ), // End of 'schema_type' array.
4756 'schema_renamed' => array( // Element of 'head' array.
4757 'anesthesia' => 'anesthesia.specialty',
4758 'cardiovascular' => 'cardiovascular.specialty',
4759 'community.health' => 'community.health.specialty',
4760 'dentist' => 'dentist.organization',
4761 'dentistry' => 'dentistry.specialty',
4762 'dermatologic' => 'dermatologic.specialty',
4763 'dermatology' => 'dermatology.specialty',
4764 'diet.nutrition' => 'diet.nutrition.specialty',
4765 'emergency' => 'emergency.specialty',
4766 'endocrine' => 'endocrine.specialty',
4767 'event.venu' => 'event.venue',
4768 'gastroenterologic' => 'gastroenterologic.specialty',
4769 'genetic' => 'genetic.specialty',
4770 'geriatric' => 'geriatric.specialty',
4771 'gynecologic' => 'gynecologic.specialty',
4772 'hematologic' => 'hematologic.specialty',
4773 'how.to' => 'howto',
4774 'infectious' => 'infectious.specialty',
4775 'laboratory.science' => 'laboratory.science.specialty',
4776 'medical.clinic.business' => 'medical.clinic',
4777 'medical.audience' => 'audience.medical',
4778 'midwifery' => 'midwifery.specialty',
4779 'movie.theatre' => 'movie.theater',
4780 'musculoskeletal' => 'musculoskeletal.specialty',
4781 'music.venu' => 'music.venue',
4782 'neurologic' => 'neurologic.specialty',
4783 'nursing' => 'nursing.specialty',
4784 'obstetric' => 'obstetric.specialty',
4785 'occupational.therapy' => 'occupational.therapy.specialty',
4786 'oncologic' => 'oncologic.specialty',
4787 'optometric' => 'optometric.specialty',
4788 'otolaryngologic' => 'otolaryngologic.specialty',
4789 'pathology' => 'pathology.specialty',
4790 'pediatric' => 'pediatric.specialty',
4791 'pharmacy' => 'pharmacy.organization',
4792 'physician' => 'physician.organization',
4793 'physiotherapy' => 'physiotherapy.specialty',
4794 'plastic.surgery' => 'plastic.surgery.specialty',
4795 'podiatric' => 'podiatric.specialty',
4796 'primary.care' => 'primary.care.specialty',
4797 'psychiatric' => 'psychiatric.specialty',
4798 'public.health' => 'public.health.specialty',
4799 'pulmonary' => 'pulmonary.specialty',
4800 'radiography' => 'radiography.specialty',
4801 'renal' => 'renal.specialty',
4802 'respiratory.therapy' => 'respiratory.therapy.specialty',
4803 'rheumatologic' => 'rheumatologic.specialty',
4804 'service.bank.account' => 'bank.account',
4805 'service.credit.card' => 'credit.card',
4806 'service.deposit.account' => 'deposit.account',
4807 'residence.single.family' => 'house.single.family',
4808 'speech.pathology' => 'speech.pathology.specialty',
4809 'surgical' => 'surgical.specialty',
4810 'toxicologic' => 'toxicologic.specialty',
4811 'train.trip' => 'trip.train',
4812 'urologic' => 'urologic.specialty',
4813 ),
4814
4815 /*
4816 * See http://wiki.goodrelations-vocabulary.org/Documentation/UN/CEFACT_Common_Codes.
4817 */
4818 'schema_units' => array( // Element of 'head' array.
4819 'fluid_volume' => array( // Unitcode index value.
4820 'additionalProperty' => array( // Schema property name.
4821 '@context' => 'https://schema.org',
4822 '@type' => 'PropertyValue',
4823 'propertyID' => 'fluid_volume',
4824 'name' => 'Fluid Volume',
4825 'unitText' => 'ml',
4826 'unitCode' => 'MLT',
4827 ),
4828 ),
4829 'height' => array( // Unitcode index value.
4830 'height' => array( // Schema property name.
4831 '@context' => 'https://schema.org',
4832 '@type' => 'QuantitativeValue',
4833 'name' => 'Height',
4834 'unitText' => 'cm',
4835 'unitCode' => 'CMT',
4836 ),
4837 ),
4838 'height_px' => array( // Unitcode index value.
4839 'height' => array( // Schema property name.
4840 '@context' => 'https://schema.org',
4841 '@type' => 'QuantitativeValue',
4842 'name' => 'Height',
4843 'unitText' => 'px',
4844 'unitCode' => 'E37',
4845 ),
4846 ),
4847 'length' => array( // Unitcode index value.
4848 'depth' => array( // Schema property name.
4849 '@context' => 'https://schema.org',
4850 '@type' => 'QuantitativeValue',
4851 'name' => 'Length or Depth',
4852 'unitText' => 'cm',
4853 'unitCode' => 'CMT',
4854 ),
4855 ),
4856 'size' => array( // Unitcode index value.
4857 'additionalProperty' => array( // Schema property name.
4858 '@context' => 'https://schema.org',
4859 '@type' => 'PropertyValue',
4860 'propertyID' => 'size',
4861 'name' => 'Size',
4862 ),
4863 ),
4864 'weight' => array( // Unitcode index value.
4865 'weight' => array( // Schema property name.
4866 '@context' => 'https://schema.org',
4867 '@type' => 'QuantitativeValue',
4868 'name' => 'Weight',
4869 'unitText' => 'kg',
4870 'unitCode' => 'KGM',
4871 ),
4872 ),
4873 'width' => array( // Unitcode index value.
4874 'width' => array( // Schema property name.
4875 '@context' => 'https://schema.org',
4876 '@type' => 'QuantitativeValue',
4877 'name' => 'Width',
4878 'unitText' => 'cm',
4879 'unitCode' => 'CMT',
4880 ),
4881 ),
4882 'width_px' => array( // Unitcode index value.
4883 'width' => array( // Schema property name.
4884 '@context' => 'https://schema.org',
4885 '@type' => 'QuantitativeValue',
4886 'name' => 'Width',
4887 'unitText' => 'px',
4888 'unitCode' => 'E37',
4889 ),
4890 ),
4891 ),
4892
4893 /*
4894 * See https://developers.google.com/search/docs/appearance/structured-data/review-snippet.
4895 *
4896 * Google allows the 'aggregateRating' property only for these types:
4897 *
4898 * Book
4899 * Course
4900 * Event
4901 * HowTo (includes Recipe)
4902 * LocalBusiness
4903 * Movie
4904 * Product
4905 * SoftwareApplication
4906 *
4907 * Google allows the 'review' property only for these types:
4908 *
4909 * Book
4910 * Course
4911 * CreativeWorkSeason
4912 * CreativeWorkSeries
4913 * Episode
4914 * Event
4915 * Game
4916 * HowTo (includes Recipe)
4917 * LocalBusiness
4918 * MediaObject
4919 * Movie
4920 * MusicPlaylist
4921 * MusicRecording
4922 * Organization
4923 * Product
4924 * SoftwareApplication
4925 */
4926 'schema_aggregate_rating_parents' => array( // Element of 'head' array.
4927 'book',
4928 'course',
4929 'event',
4930 'howto',
4931 'local.business',
4932 'movie',
4933 'product',
4934 'software.application',
4935 ),
4936 'schema_review_parents' => array( // Element of 'head' array.
4937 'book',
4938 'course',
4939 'creative.work.season',
4940 'creative.work.series',
4941 'episode',
4942 'event',
4943 'game',
4944 'howto',
4945 'local.business',
4946 'media.object',
4947 'movie',
4948 'music.playlist',
4949 'music.recording',
4950 'organization',
4951 'product',
4952 'software.application',
4953 ),
4954
4955 /*
4956 * Good Relations.
4957 */
4958 'schema_gr' => array( // Element of 'head' array.
4959 'DeliveryMethod' => array(
4960 'Download' => 'http://purl.org/goodrelations/v1#DeliveryModeDirectDownload',
4961 'Freight' => 'http://purl.org/goodrelations/v1#DeliveryModeFreight',
4962 'Mail' => 'http://purl.org/goodrelations/v1#DeliveryModeMail',
4963 'Fleet' => 'http://purl.org/goodrelations/v1#DeliveryModeOwnFleet',
4964 'PickUp' => 'http://purl.org/goodrelations/v1#DeliveryModePickUp',
4965 'DHL' => 'http://purl.org/goodrelations/v1#DHL',
4966 'FedEx' => 'http://purl.org/goodrelations/v1#FederalExpress',
4967 'UPS' => 'http://purl.org/goodrelations/v1#UPS',
4968 ),
4969 ),
4970 ), // End of 'head' array.
4971 'extend' => array(
4972 'https://wpsso.com/extend/plugins/',
4973 ),
4974 ); // End of 'cf' array.
4975
4976 public static function get_version( $add_slug = false ) {
4977
4978 $info = self::$cf[ 'plugin' ][ 'wpsso' ];
4979
4980 return $add_slug ? $info[ 'slug' ] . '-' . $info[ 'version' ] : $info[ 'version' ];
4981 }
4982
4983 public static function get_config( $read_cache = true ) {
4984
4985 if ( $read_cache ) {
4986
4987 if ( ! empty( self::$cf[ 'config_filtered' ] ) ) { // Only if already filtered.
4988
4989 return self::$cf;
4990 }
4991 }
4992
4993 self::$cf[ '*' ] = array(
4994 'base' => array(),
4995 'lib' => array(
4996 'pro' => array(),
4997 'std' => array(),
4998 ),
4999 'version' => '',
5000 );
5001
5002 self::$cf[ 'opt' ][ 'version' ] = '';
5003
5004 self::$cf[ 'config_filtered' ] = false;
5005
5006 /*
5007 * Wpsso->__construct() calls WpssoConfig::get_config() before WpssoConfig::set_constants(), which defines
5008 * 'WPSSO_VERSION', so use 'WPSSO_VERSION' as a signal to skip applying filters until later.
5009 */
5010 if ( ! defined( 'WPSSO_VERSION' ) ) {
5011
5012 return self::$cf;
5013 }
5014
5015 /*
5016 * Apply filters to have add-ons include their config.
5017 */
5018 if ( empty( self::$cf[ 'config_filtered' ] ) ) {
5019
5020 self::$cf = apply_filters( 'wpsso_get_config', self::$cf );
5021 }
5022
5023 self::$cf[ 'config_filtered' ] = true;
5024
5025 $pro_disable = defined( 'WPSSO_PRO_DISABLE' ) && WPSSO_PRO_DISABLE ? true : false;
5026
5027 foreach ( self::$cf[ 'plugin' ] as $ext => $info ) {
5028
5029 $pkg_dir = 'std';
5030
5031 if ( ! $pro_disable ) {
5032
5033 $ext_dir = self::get_ext_dir( $ext, $read_cache );
5034
5035 if ( is_dir( $ext_dir . 'lib/pro/' ) ) {
5036
5037 $pkg_dir = 'pro';
5038 }
5039 }
5040
5041 if ( isset( $info[ 'slug' ] ) ) {
5042
5043 self::$cf[ '*' ][ 'slug' ][ $info[ 'slug' ] ] = $ext;
5044 }
5045
5046 if ( isset( $info[ 'base' ] ) ) {
5047
5048 self::$cf[ '*' ][ 'base' ][ $info[ 'base' ] ] = $ext;
5049 }
5050
5051 if ( isset( $info[ 'lib' ] ) && is_array( $info[ 'lib' ] ) ) {
5052
5053 self::$cf[ '*' ][ 'lib' ] = SucomUtil::array_merge_recursive_distinct( self::$cf[ '*' ][ 'lib' ], $info[ 'lib' ] );
5054 }
5055
5056 if ( isset( $info[ 'version' ] ) ) {
5057
5058 self::$cf[ '*' ][ 'version' ] .= '-' . $ext . $info[ 'version' ] . $pkg_dir;
5059 }
5060
5061 if ( isset( $info[ 'opt_version' ] ) ) {
5062
5063 self::$cf[ 'opt' ][ 'version' ] .= '-' . $ext . $info[ 'opt_version' ] . $pkg_dir;
5064 }
5065
5066 /*
5067 * Maybe complete relative paths in the assets array.
5068 */
5069 if ( ! empty( $info[ 'base' ] ) ) { // Just in case.
5070
5071 /*
5072 * Returns a plugin base URL like 'https://wpsso.com/wp-content/plugins/wpsso/'.
5073 */
5074 $plugins_url_base = trailingslashit( plugins_url( '', $info[ 'base' ] ) );
5075
5076 array_walk_recursive( self::$cf[ 'plugin' ][ $ext ][ 'assets' ], array( __CLASS__, 'maybe_prefix_base_url' ), $plugins_url_base );
5077 }
5078 }
5079
5080 return self::$cf;
5081 }
5082
5083 private static function maybe_prefix_base_url( &$url, $key, $plugins_url_base ) {
5084
5085 if ( ! empty( $url ) && false === strpos( $url, '//' ) ) {
5086
5087 $url = $plugins_url_base . $url;
5088 }
5089 }
5090
5091 public static function set_constants( $plugin_file ) {
5092
5093 if ( defined( 'WPSSO_VERSION' ) ) { // Define constants only once.
5094
5095 return;
5096 }
5097
5098 $info =& self::$cf[ 'plugin' ][ 'wpsso' ];
5099
5100 $nonce_key = defined( 'NONCE_KEY' ) ? NONCE_KEY : '';
5101
5102 /*
5103 * Define fixed constants.
5104 */
5105 define( 'WPSSO_DATA_ID', 'wpsso structured data' );
5106 define( 'WPSSO_FILEPATH', $plugin_file );
5107 define( 'WPSSO_NONCE_NAME', md5( $nonce_key . var_export( $info, $return = true ) ) );
5108 define( 'WPSSO_PLUGINBASE', $info[ 'base' ] ); // Example: wpsso/wpsso.php.
5109 define( 'WPSSO_PLUGINDIR', trailingslashit( realpath( dirname( $plugin_file ) ) ) );
5110 define( 'WPSSO_PLUGINSLUG', $info[ 'slug' ] ); // Example: wpsso.
5111 define( 'WPSSO_UNDEF', -1 ); // Default undefined image width / height value.
5112 define( 'WPSSO_URLPATH', trailingslashit( plugins_url( '', $plugin_file ) ) );
5113 define( 'WPSSO_VERSION', $info[ 'version' ] );
5114
5115 define( 'WPSSO_INIT_CONFIG_PRIORITY', -10 );
5116 define( 'WPSSO_INIT_OPTIONS_PRIORITY', 9 );
5117 define( 'WPSSO_INIT_OBJECTS_PRIORITY', 10 );
5118 define( 'WPSSO_INIT_JSON_FILTERS_PRIORITY', 11 );
5119 define( 'WPSSO_INIT_SHORTCODES_PRIORITY', 11 );
5120 define( 'WPSSO_INIT_PLUGIN_PRIORITY', 12 );
5121
5122 /*
5123 * Define variable constants.
5124 */
5125 self::set_variable_constants();
5126 }
5127
5128 public static function set_variable_constants( $var_const = null ) {
5129
5130 if ( ! is_array( $var_const ) ) {
5131
5132 $var_const = self::get_variable_constants();
5133 }
5134
5135 /*
5136 * Define the variable constants, if not already defined.
5137 */
5138 foreach ( $var_const as $name => $value ) {
5139
5140 if ( ! defined( $name ) ) {
5141
5142 define( $name, $value );
5143 }
5144 }
5145 }
5146
5147 public static function get_variable_constants() {
5148
5149 $var_const = array();
5150
5151 if ( defined( 'WPSSO_PLUGINDIR' ) ) {
5152
5153 $var_const[ 'WPSSO_ARTICLE_SECTIONS_LIST' ] = WPSSO_PLUGINDIR . 'share/article-sections.txt';
5154 $var_const[ 'WPSSO_PRODUCT_CATEGORIES_LIST' ] = WPSSO_PLUGINDIR . 'share/product-categories.txt';
5155 }
5156
5157 /*
5158 * MENU_ORDER (aka menu_position):
5159 *
5160 * null – below Comments
5161 * 5 – below Posts
5162 * 10 – below Media
5163 * 15 – below Links
5164 * 20 – below Pages
5165 * 25 – below comments
5166 * 60 – below first separator
5167 * 65 – below Plugins
5168 * 70 – below Users
5169 * 75 – below Tools
5170 * 80 – below Settings
5171 * 100 – below second separator
5172 */
5173 $var_const[ 'WPSSO_MENU_ORDER' ] = 85; // Position of the SSO settings menu item.
5174 $var_const[ 'WPSSO_TB_NOTICE_MENU_ORDER' ] = 55; // Position of the SSO notices toolbar menu item.
5175 $var_const[ 'WPSSO_TB_NOTICE_TIME_ERR' ] = 3000; // Show notification (-1 don't show, 0 show until clicked, ms to auto-show).
5176 $var_const[ 'WPSSO_TB_NOTICE_TIME_WARN' ] = -1; // Show notification (-1 don't show, 0 show until clicked, ms to auto-show).
5177 $var_const[ 'WPSSO_TB_NOTICE_TIME_INF' ] = -1; // Show notification (-1 don't show, 0 show until clicked, ms to auto-show).
5178 $var_const[ 'WPSSO_TB_NOTICE_TIME_UPD' ] = 2000; // Show notification (-1 don't show, 0 show until clicked, ms to auto-show).
5179 $var_const[ 'WPSSO_TB_LOCALE_MENU_ORDER' ] = 56; // Position of the user locale toolbar menu item.
5180 $var_const[ 'WPSSO_TB_VALIDATE_MENU_ORDER' ] = 57; // Position of the validate menu item.
5181 $var_const[ 'WPSSO_TB_VIEW_PROFILE_MENU_ORDER' ] = 80; // Position of the view profile menu item.
5182 $var_const[ 'WPSSO_ADD_ROLE_MAX_TIME' ] = 300; // 5 minutes.
5183 $var_const[ 'WPSSO_REMOVE_ROLE_MAX_TIME' ] = 300; // 5 minutes.
5184 $var_const[ 'WPSSO_CACHE_ARRAY_FIFO_MAX' ] = 8;
5185 $var_const[ 'WPSSO_CACHE_DIR' ] = self::get_cache_dir();
5186 $var_const[ 'WPSSO_CACHE_FILES_EXP_SECS' ] = WEEK_IN_SECONDS; // See WpssoUtilCache->clear_cache_files_expired().
5187 $var_const[ 'WPSSO_CACHE_REFRESH_MAX_TIME' ] = 1800; // 30 mins by default.
5188 $var_const[ 'WPSSO_CACHE_SELECT_JSON_EXP_SECS' ] = WEEK_IN_SECONDS; // JS URLs for Schema types, article sections, and product categories.
5189 $var_const[ 'WPSSO_CACHE_URL' ] = self::get_cache_url();
5190 $var_const[ 'WPSSO_CONTENT_BLOCK_FILTER_OUTPUT' ] = true; // Monitor and fix incorrectly coded filter hooks.
5191 $var_const[ 'WPSSO_CONTENT_FILTERS_MAX_TIME' ] = 1.50; // Issue a warning if the content filter takes longer than 1 second.
5192 $var_const[ 'WPSSO_CONTENT_IMAGES_MAX' ] = 5; // Maximum number of images extracted from the content.
5193 $var_const[ 'WPSSO_DUPE_CHECK_HEADER_COUNT' ] = 3; // Maximum number of times to check for duplicates.
5194 $var_const[ 'WPSSO_DUPE_CHECK_TIMEOUT_TIME' ] = 3.00; // Hard-limit - most crawlers time-out after 3 seconds.
5195 $var_const[ 'WPSSO_DUPE_CHECK_WARNING_TIME' ] = 2.50; // Issue a warning if getting shortlink took more than 2.5 seconds.
5196 $var_const[ 'WPSSO_IMAGE_MAKE_SIZE_MAX_TIME' ] = 5.00; // Error to trigger_error() if image_make_intermediate_size() takes longer.
5197 $var_const[ 'WPSSO_METABOX_TAB_LAYOUT' ] = 'vertical'; // Default tab layout (vertical or horizontal).
5198 $var_const[ 'WPSSO_PHP_GETIMGSIZE_MAX_TIME' ] = 3.00; // Send an error to trigger_error() if getimagesize() takes longer.
5199 $var_const[ 'WPSSO_READING_WORDS_PER_MIN' ] = 200; // Estimated reading words per minute.
5200 $var_const[ 'WPSSO_SCHEDULE_SINGLE_EVENT_TIME' ] = 10; // Schedule single events for now + 10 seconds.
5201 $var_const[ 'WPSSO_SELECT_PERSON_NAMES_MAX' ] = 200; // Maximum number of persons to include in a form select.
5202
5203 /*
5204 * Schema limits.
5205 */
5206 $var_const[ 'WPSSO_SCHEMA_ADDL_TYPE_URL_MAX' ] = 8;
5207 $var_const[ 'WPSSO_SCHEMA_SERVICE_AREAS_MAX' ] = 5;
5208 $var_const[ 'WPSSO_SCHEMA_AWARDS_MAX' ] = 5;
5209 $var_const[ 'WPSSO_SCHEMA_CITATIONS_MAX' ] = 5;
5210 $var_const[ 'WPSSO_SCHEMA_COMMENTS_MAX' ] = 50; // Maximum number of comments when "Break comments into pages" is unchecked.
5211 $var_const[ 'WPSSO_SCHEMA_CONTACT_POINTS_MAX' ] = 5;
5212 $var_const[ 'WPSSO_SCHEMA_HOWTO_STEPS_MAX' ] = 40;
5213 $var_const[ 'WPSSO_SCHEMA_HOWTO_SUPPLIES_MAX' ] = 30;
5214 $var_const[ 'WPSSO_SCHEMA_HOWTO_TOOLS_MAX' ] = 20;
5215 $var_const[ 'WPSSO_SCHEMA_ISPARTOF_URLS_MAX' ] = 10;
5216 $var_const[ 'WPSSO_SCHEMA_METADATA_OFFERS_MAX' ] = 5;
5217 $var_const[ 'WPSSO_SCHEMA_MOVIE_ACTORS_MAX' ] = 10;
5218 $var_const[ 'WPSSO_SCHEMA_MOVIE_DIRECTORS_MAX' ] = 5;
5219 $var_const[ 'WPSSO_SCHEMA_OFFER_CATALOGS_MAX' ] = 5;
5220 $var_const[ 'WPSSO_SCHEMA_ORGANIZATION_TYPE_ID' ] = 'organization';
5221 $var_const[ 'WPSSO_SCHEMA_RECIPE_INGREDIENTS_MAX' ] = 40;
5222 $var_const[ 'WPSSO_SCHEMA_RECIPE_INSTRUCTIONS_MAX' ] = 40;
5223 $var_const[ 'WPSSO_SCHEMA_REVIEWS_MAX' ] = 100;
5224 $var_const[ 'WPSSO_SCHEMA_SAMEAS_URLS_MAX' ] = 5;
5225 $var_const[ 'WPSSO_SCHEMA_WEBPAGE_REVIEWED_BY_MAX' ] = 5;
5226
5227 /*
5228 * Setting and meta array names.
5229 */
5230 $var_const[ 'WPSSO_DISMISS_NAME' ] = 'wpsso_dismissed';
5231 $var_const[ 'WPSSO_NOTICES_NAME' ] = 'wpsso_notices';
5232 $var_const[ 'WPSSO_META_NAME' ] = '_wpsso_meta';
5233 $var_const[ 'WPSSO_META_ATTACHED_NAME' ] = '_wpsso_meta_attached';
5234 $var_const[ 'WPSSO_META_RATING_NAME' ] = 'rating';
5235 $var_const[ 'WPSSO_PREF_NAME' ] = '_wpsso_pref';
5236 $var_const[ 'WPSSO_OPTIONS_NAME' ] = 'wpsso_options';
5237 $var_const[ 'WPSSO_REG_TS_NAME' ] = 'wpsso_timestamps';
5238 $var_const[ 'WPSSO_SITE_OPTIONS_NAME' ] = 'wpsso_site_options';
5239 $var_const[ 'WPSSO_POST_CHECK_COUNT_NAME' ] = 'wpsso_post_check_count';
5240 $var_const[ 'WPSSO_TMPL_HEAD_CHECK_NAME' ] = 'wpsso_tmpl_head_check';
5241 $var_const[ 'WPSSO_WP_CONFIG_CHECK_NAME' ] = 'wpsso_wp_config_check';
5242 $var_const[ 'WPSSO_PAGE_TAG_TAXONOMY' ] = 'page_tag';
5243
5244 /*
5245 * Hook priorities.
5246 */
5247 $var_const[ 'WPSSO_ADD_MENU_PRIORITY' ] = -20; // 'admin_menu' hook priority.
5248 $var_const[ 'WPSSO_ADD_SUBMENU_PRIORITY' ] = -10; // 'admin_menu' hook priority.
5249 $var_const[ 'WPSSO_ADD_COLUMN_PRIORITY' ] = 100;
5250 $var_const[ 'WPSSO_ADMIN_SCRIPTS_PRIORITY' ] = -1000; // 'admin_enqueue_scripts' hook priority.
5251 $var_const[ 'WPSSO_BLOCK_ASSETS_PRIORITY' ] = -1000; // 'enqueue_block_editor_assets' hook priority.
5252 $var_const[ 'WPSSO_HEAD_PRIORITY' ] = -10;
5253 $var_const[ 'WPSSO_META_SAVE_PRIORITY' ] = -1000; // Save custom post/term/user meta before clearing the cache.
5254 $var_const[ 'WPSSO_META_CLEAR_PRIORITY' ] = -100; // Clear cache before priority 10 (where most caching plugins are hooked).
5255 $var_const[ 'WPSSO_META_REFRESH_PRIORITY' ] = -10; // Refresh cache before priority 10 (where most caching plugins are hooked).
5256 $var_const[ 'WPSSO_TITLE_TAG_PRIORITY' ] = 1000; // Priority for the WordPress 'document_title' filters.
5257
5258 /*
5259 * PHP cURL library settings.
5260 */
5261 $var_const[ 'WPSSO_PHP_CURL_CAINFO' ] = ABSPATH . WPINC . '/certificates/ca-bundle.crt';
5262 $var_const[ 'WPSSO_PHP_CURL_USERAGENT' ] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:128.0) Gecko/20100101 Firefox/128.0';
5263 $var_const[ 'WPSSO_PHP_CURL_USERAGENT_FACEBOOK' ] = 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)';
5264
5265 /*
5266 * Maybe override the default constant value with a pre-defined constant value.
5267 */
5268 foreach ( $var_const as $name => $value ) {
5269
5270 if ( defined( $name ) ) {
5271
5272 $var_const[ $name ] = constant( $name );
5273 }
5274 }
5275
5276 return $var_const;
5277 }
5278
5279 /*
5280 * Load all essential library files.
5281 *
5282 * Avoid calling is_admin() here as it can be unreliable this early in the load process - some plugins that operate
5283 * outside of the standard WordPress load process do not define WP_ADMIN as they should (which is required by
5284 * is_admin() this early in the WordPress load process).
5285 */
5286 public static function require_libs( $plugin_file ) {
5287
5288 require_once WPSSO_PLUGINDIR . 'lib/com/cache.php';
5289 require_once WPSSO_PLUGINDIR . 'lib/com/nodebug.php'; // Always load the debug fallback class.
5290 require_once WPSSO_PLUGINDIR . 'lib/com/nonotice.php'; // Always load the notice fallback class.
5291 require_once WPSSO_PLUGINDIR . 'lib/com/plugin.php';
5292 require_once WPSSO_PLUGINDIR . 'lib/com/util.php';
5293 require_once WPSSO_PLUGINDIR . 'lib/com/util-options.php';
5294 require_once WPSSO_PLUGINDIR . 'lib/com/util-wp.php';
5295
5296 require_once WPSSO_PLUGINDIR . 'lib/check.php';
5297 require_once WPSSO_PLUGINDIR . 'lib/exception.php'; // Extends ErrorException.
5298 require_once WPSSO_PLUGINDIR . 'lib/functions.php';
5299 require_once WPSSO_PLUGINDIR . 'lib/head.php';
5300 require_once WPSSO_PLUGINDIR . 'lib/media.php';
5301 require_once WPSSO_PLUGINDIR . 'lib/options.php';
5302 require_once WPSSO_PLUGINDIR . 'lib/page.php';
5303 require_once WPSSO_PLUGINDIR . 'lib/register.php';
5304 require_once WPSSO_PLUGINDIR . 'lib/script.php';
5305 require_once WPSSO_PLUGINDIR . 'lib/style.php';
5306 require_once WPSSO_PLUGINDIR . 'lib/util.php'; // Extends SucomUtil.
5307
5308 /*
5309 * Comment, post, term, user modules.
5310 */
5311 require_once WPSSO_PLUGINDIR . 'lib/abstract/wp-meta.php';
5312 require_once WPSSO_PLUGINDIR . 'lib/comment.php'; // Extends WpssoAbstractWpMeta.
5313 require_once WPSSO_PLUGINDIR . 'lib/post.php'; // Extends WpssoAbstractWpMeta.
5314 require_once WPSSO_PLUGINDIR . 'lib/term.php'; // Extends WpssoAbstractWpMeta.
5315 require_once WPSSO_PLUGINDIR . 'lib/user.php'; // Extends WpssoAbstractWpMeta.
5316
5317 /*
5318 * Meta tags and markup.
5319 */
5320 require_once WPSSO_PLUGINDIR . 'lib/link-rel.php';
5321 require_once WPSSO_PLUGINDIR . 'lib/meta-name.php';
5322 require_once WPSSO_PLUGINDIR . 'lib/oembed.php';
5323 require_once WPSSO_PLUGINDIR . 'lib/opengraph.php';
5324 require_once WPSSO_PLUGINDIR . 'lib/pinterest.php';
5325 require_once WPSSO_PLUGINDIR . 'lib/schema.php';
5326 require_once WPSSO_PLUGINDIR . 'lib/twittercard.php';
5327
5328 /*
5329 * Module library loader.
5330 */
5331 require_once WPSSO_PLUGINDIR . 'lib/loader.php';
5332
5333 /*
5334 * Add-ons library.
5335 */
5336 require_once WPSSO_PLUGINDIR . 'lib/abstract/add-on.php';
5337
5338 add_filter( 'wpsso_load_lib', array( __CLASS__, 'load_lib' ), 10, 3 );
5339 }
5340
5341 public static function load_lib( $success = false, $filespec = '', $classname = '' ) {
5342
5343 if ( false !== $success ) {
5344
5345 return $success;
5346 }
5347
5348 if ( ! empty( $classname ) ) {
5349
5350 if ( class_exists( $classname ) ) {
5351
5352 return $classname;
5353 }
5354 }
5355
5356 if ( ! empty( $filespec ) ) {
5357
5358 $file_path = WPSSO_PLUGINDIR . 'lib/' . $filespec . '.php';
5359
5360 if ( file_exists( $file_path ) ) {
5361
5362 require_once $file_path;
5363
5364 if ( empty( $classname ) ) {
5365
5366 return SucomUtil::sanitize_classname( 'wpsso' . $filespec, $allow_underscore = false );
5367 }
5368
5369 return $classname;
5370 }
5371 }
5372
5373 return $success;
5374 }
5375
5376 public static function get_cache_dir() {
5377
5378 if ( defined( 'WPSSO_CACHE_DIR' ) ) {
5379
5380 return WPSSO_CACHE_DIR;
5381 }
5382
5383 if ( defined( 'WP_CONTENT_DIR' ) ) {
5384
5385 $content_dir = trailingslashit( WP_CONTENT_DIR );
5386
5387 if ( self::is_cache_dir( $content_dir . 'cache/wpsso/' ) ) {
5388
5389 return $content_dir . 'cache/wpsso/';
5390 }
5391 }
5392
5393 if ( defined( 'WPSSO_PLUGINDIR' ) ) {
5394
5395 if ( self::is_cache_dir( WPSSO_PLUGINDIR . 'cache/' ) ) {
5396
5397 return WPSSO_PLUGINDIR . 'cache/';
5398 }
5399 }
5400
5401 return false;
5402 }
5403
5404 public static function get_cache_url() {
5405
5406 if ( defined( 'WPSSO_CACHE_URL' ) ) {
5407
5408 return WPSSO_CACHE_URL;
5409 }
5410
5411 if ( defined( 'WP_CONTENT_DIR' ) ) {
5412
5413 $content_dir = trailingslashit( WP_CONTENT_DIR );
5414
5415 if ( self::is_cache_dir( $content_dir . 'cache/wpsso/' ) ) {
5416
5417 return content_url( 'cache/wpsso/' );
5418 }
5419 }
5420
5421 if ( defined( 'WPSSO_PLUGINDIR' ) ) {
5422
5423 if ( self::is_cache_dir( WPSSO_PLUGINDIR . 'cache/' ) ) {
5424
5425 if ( defined( 'WPSSO_URLPATH' ) ) { // Just in case.
5426
5427 return WPSSO_URLPATH . 'cache/';
5428 }
5429 }
5430 }
5431
5432 return false;
5433 }
5434
5435 private static function is_cache_dir( $dir ) {
5436
5437 $dir = trailingslashit( $dir ); // Just in case.
5438
5439 $index_file = $dir . 'index.php';
5440 $access_file = $dir . '.htaccess';
5441
5442 if ( file_exists( $index_file ) ) { // Assume directory permissions are good.
5443
5444 return true;
5445 }
5446
5447 $index_str = '<?php // These aren\'t the droids you\'re looking for.' . "\n";
5448 $access_str = '<FilesMatch "\.(php|pl|cgi|shtml)$">
5449 # Apache 2.2
5450 <IfModule !mod_authz_core.c>
5451 Order deny,allow
5452 Deny from all
5453 </IfModule>
5454 # Apache 2.4
5455 <IfModule mod_authz_core.c>
5456 Require all denied
5457 </IfModule>
5458 </FilesMatch>' . "\n";
5459
5460 if ( is_dir( $dir ) || @mkdir( $dir, $mode = 0755, $recursive = true ) ) {
5461
5462 if ( ( $index_fh = @fopen( $index_file, $mode = 'wb' ) ) &&
5463 ( $access_fh = @fopen( $access_file, $mode = 'wb' ) ) ) {
5464
5465 if ( @fwrite( $index_fh, $index_str ) && @fwrite( $access_fh, $access_str ) ) {
5466
5467 fclose( $index_fh );
5468 fclose( $access_fh );
5469
5470 @chmod( $index_file, $mode = 0644 );
5471 @chmod( $access_file, $mode = 0644 );
5472
5473 return true;
5474 }
5475 }
5476 }
5477
5478 return false;
5479 }
5480
5481 /*
5482 * Returns $cf[ 'plugin' ] with 'wpsso' as the first array element and all other plugins sorted by translated name.
5483 */
5484 public static function get_ext_sorted() {
5485
5486 $cf = self::get_config();
5487
5488 /*
5489 * Sort the array by plugin name and maintain index association.
5490 */
5491 uasort( $cf[ 'plugin' ], array( __CLASS__, 'sort_plugin_by_name_key' ) );
5492
5493 reset( $cf[ 'plugin' ] ); // Just in case.
5494
5495 $first_key = key( $cf[ 'plugin' ] );
5496
5497 /*
5498 * Make sure the core plugin is listed first.
5499 */
5500 if ( 'wpsso' !== $first_key ) {
5501
5502 SucomUtil::move_to_front( $cf[ 'plugin' ], 'wpsso' );
5503 }
5504
5505 return $cf[ 'plugin' ];
5506 }
5507
5508 /*
5509 * Returns 'plugin' or 'add-on' translated string.
5510 */
5511 public static function get_ext_type_transl( $ext ) {
5512
5513 return 'wpsso' === $ext ? _x( 'plugin', 'plugin type', 'wpsso' ) : _x( 'add-on', 'plugin type', 'wpsso' );
5514 }
5515
5516 public static function get_ext_text_domain( $ext ) {
5517
5518 $cf = self::get_config();
5519 $text_domain = false;
5520
5521 if ( isset( $cf[ 'plugin' ][ $ext ][ 'text_domain' ] ) ) {
5522
5523 $text_domain = $cf[ 'plugin' ][ $ext ][ 'text_domain' ];
5524 }
5525
5526 return $text_domain;
5527 }
5528
5529 /*
5530 * Returns false or a slashed directory path.
5531 */
5532 public static function get_ext_dir( $ext, $read_cache = true ) {
5533
5534 static $local_cache = array();
5535
5536 if ( $read_cache ) {
5537
5538 if ( isset( $local_cache[ $ext ] ) ) {
5539
5540 return $local_cache[ $ext ];
5541 }
5542 }
5543
5544 /*
5545 * Check for active plugin constant first.
5546 */
5547 $ext_dir_const = strtoupper( $ext ) . '_PLUGINDIR';
5548
5549 if ( defined( $ext_dir_const ) && is_dir( $ext_dir = constant( $ext_dir_const ) ) ) {
5550
5551 return $local_cache[ $ext ] = trailingslashit( $ext_dir );
5552 }
5553
5554 /*
5555 * Fallback to checking for inactive plugin folder.
5556 */
5557 $cf = self::get_config();
5558
5559 if ( isset( $cf[ 'plugin' ][ $ext ][ 'slug' ] ) ) {
5560
5561 $slug = $cf[ 'plugin' ][ $ext ][ 'slug' ];
5562
5563 if ( defined ( 'WPMU_PLUGIN_DIR' ) && is_dir( $ext_dir = trailingslashit( WPMU_PLUGIN_DIR ) . $slug . '/' ) ) {
5564
5565 return $local_cache[ $ext ] = $ext_dir;
5566 }
5567
5568 if ( defined ( 'WP_PLUGIN_DIR' ) && is_dir( $ext_dir = trailingslashit( WP_PLUGIN_DIR ) . $slug . '/' ) ) {
5569
5570 return $local_cache[ $ext ] = $ext_dir;
5571 }
5572 }
5573
5574 return $local_cache[ $ext ] = false;
5575 }
5576
5577 /*
5578 * Returns false, a slashed directory path, or the file name path.
5579 *
5580 * Use $file_is_dir = true when specifically checking for a sub-folder path.
5581 */
5582 public static function get_ext_file_path( $ext, $rel_file, $file_is_dir = false ) {
5583
5584 $file_path = false;
5585
5586 if ( $ext_dir = self::get_ext_dir( $ext ) ) { // Returns false or a slashed directory path.
5587
5588 $rel_file = SucomUtil::sanitize_file_path( $rel_file );
5589
5590 if ( $file_is_dir ) { // Must be a directory.
5591
5592 if ( is_dir( trailingslashit( $ext_dir . $rel_file ) ) ) {
5593
5594 $file_path = trailingslashit( $ext_dir . $rel_file );
5595 }
5596
5597 } elseif ( file_exists( $ext_dir . $rel_file ) ) {
5598
5599 $file_path = $ext_dir . $rel_file;
5600 }
5601 }
5602
5603 return $file_path;
5604 }
5605
5606 public static function get_ext_file_url( $ext, $rel_file ) {
5607
5608 $cf = self::get_config();
5609
5610 $url_key = SucomUtil::sanitize_hookname( basename( $rel_file ) ); // Changes html/setup.html to setup_html (note underscore).
5611
5612 $file_url = false;
5613
5614 if ( isset( $cf[ 'plugin' ][ $ext ][ 'url' ][ $url_key ] ) ) {
5615
5616 /*
5617 * Returns URL or false on failure.
5618 *
5619 * See https://developer.wordpress.org/reference/functions/wp_http_validate_url/
5620 */
5621 $file_url = wp_http_validate_url( $cf[ 'plugin' ][ $ext ][ 'url' ][ $url_key ] );
5622 }
5623
5624 return $file_url;
5625 }
5626
5627 public static function get_schema_units() {
5628
5629 static $local_cache = null;
5630
5631 if ( null === $local_cache ) {
5632
5633 $local_cache = apply_filters( 'wpsso_schema_units', self::$cf[ 'head' ][ 'schema_units' ] );
5634 }
5635
5636 return $local_cache;
5637 }
5638
5639 public static function get_social_accounts( $key = false ) {
5640
5641 static $local_cache = null;
5642
5643 if ( null === $local_cache ) {
5644
5645 $local_cache = apply_filters( 'wpsso_social_accounts', self::$cf[ 'form' ][ 'social_accounts' ] );
5646
5647 foreach ( $local_cache as $k => $label ) {
5648
5649 $local_cache[ $k ] = _x( $label, 'option value', 'wpsso' );
5650 }
5651
5652 /*
5653 * Sort the associative array by value (ie. the translated label).
5654 */
5655 method_exists( 'SucomUtil', 'natasort' ) ? SucomUtil::natasort( $local_cache ) : uasort( $local_cache, 'strnatcasecmp' );
5656 }
5657
5658 if ( false !== $key ) {
5659
5660 if ( $key && is_string( $key ) ) {
5661
5662 if ( isset( $local_cache[ $key ] ) ) { // Just in case.
5663
5664 return $local_cache[ $key ];
5665 }
5666 }
5667
5668 return null;
5669 }
5670
5671 return $local_cache;
5672 }
5673
5674 public static function get_input_limits( $opt_key = false ) {
5675
5676 static $local_cache = null;
5677
5678 if ( null === $local_cache ) {
5679
5680 $local_cache = self::$cf[ 'form' ][ 'input_limits' ];
5681
5682 foreach ( $local_cache as $key => $input_limits ) {
5683
5684 $filter_name = SucomUtil::sanitize_hookname( 'wpsso_input_limits_' . $key );
5685
5686 $local_cache[ $key ] = apply_filters( $filter_name, $input_limits );
5687 }
5688 }
5689
5690 if ( false !== $opt_key ) {
5691
5692 if ( $opt_key && is_string( $opt_key ) ) {
5693
5694 if ( isset( $local_cache[ $opt_key ] ) ) {
5695
5696 return $local_cache[ $opt_key ];
5697 }
5698 }
5699
5700 return null;
5701 }
5702
5703 return $local_cache;
5704 }
5705
5706 /*
5707 * Provides a key index for attributes to meta data options.
5708 *
5709 * Returns false or an options key.
5710 */
5711 public static function get_attr_md_index( $md_key = false ) {
5712
5713 return self::get_opt_md_info( $md_index = 'attr_md_index', $md_key );
5714 }
5715
5716 /*
5717 * Provides a key index for custom fields to meta data options.
5718 *
5719 * Returns false or an options key.
5720 */
5721 public static function get_cf_md_index( $md_key = false ) {
5722
5723 return self::get_opt_md_info( $md_index = 'cf_md_index', $md_key );
5724 }
5725
5726 /*
5727 * Provides information to help read and split custom field values into numbered options.
5728 *
5729 * Returns true, false, or an array.
5730 */
5731 public static function get_md_keys_multi( $md_key = false ) {
5732
5733 return self::get_opt_md_info( $md_index = 'md_keys_multi', $md_key );
5734 }
5735
5736 /*
5737 * Returns an array of metadata keys (can be empty).
5738 *
5739 * $md_key = true | false | string | array
5740 */
5741 public static function get_md_keys_fallback( $md_key = false ) {
5742
5743 static $local_cache = null;
5744
5745 if ( is_array( $md_key ) ) { // Just in case.
5746
5747 return $md_key; // Return an array.
5748
5749 } elseif ( null === $local_cache ) {
5750
5751 $local_cache = self::$cf[ 'opt' ][ 'md_keys_fallback' ];
5752
5753 foreach ( $local_cache as $key => $fallback ) {
5754
5755 $filter_name = SucomUtil::sanitize_hookname( 'wpsso_md_keys_fallback_' . $key );
5756
5757 $local_cache[ $key ] = apply_filters( $filter_name, $fallback );
5758 }
5759 }
5760
5761 if ( false !== $md_key ) {
5762
5763 if ( $md_key && is_string( $md_key ) ) {
5764
5765 if ( isset( $local_cache[ $md_key ] ) ) {
5766
5767 return $local_cache[ $md_key ]; // Return an array.
5768 }
5769
5770 return array( $md_key ); // Return an array.
5771 }
5772
5773 return array(); // Return an array.
5774 }
5775
5776 return $local_cache; // Return an array.
5777 }
5778
5779 /*
5780 * Provides a key index for attributes and custom fields to meta data options.
5781 *
5782 * Provides information to help read and split attribute and custom field values into numbered options.
5783 *
5784 * Example $md_index values: 'attr_md_index', 'cf_md_index', or 'md_keys_multi'.
5785 */
5786 private static function get_opt_md_info( $md_index, $md_key = false ) {
5787
5788 static $local_cache = array();
5789
5790 if ( ! isset( $local_cache[ $md_index ] ) ) {
5791
5792 $local_cache[ $md_index ] = isset( self::$cf[ 'opt' ][ $md_index ] ) ? self::$cf[ 'opt' ][ $md_index ] : array();
5793
5794 /*
5795 * See WpssoIntegRecipeWpRecipeMaker->filter_cf_md_index().
5796 */
5797 $local_cache[ $md_index ] = apply_filters( 'wpsso_' . $md_index, $local_cache[ $md_index ] );
5798 }
5799
5800 if ( false !== $md_key ) {
5801
5802 if ( isset( $local_cache[ $md_index ][ $md_key ] ) ) {
5803
5804 return $local_cache[ $md_index ][ $md_key ];
5805 }
5806
5807 return false;
5808 }
5809
5810 return $local_cache[ $md_index ];
5811 }
5812
5813 private static function sort_plugin_by_name_key( $a, $b ) {
5814
5815 if ( isset( $a[ 'name' ] ) && isset( $b[ 'name' ] ) ) {
5816
5817 $a[ 'name' ] = _x( $a[ 'name' ], 'plugin name', 'wpsso' );
5818 $b[ 'name' ] = _x( $b[ 'name' ], 'plugin name', 'wpsso' );
5819
5820 /*
5821 * Case insensitive string comparisons using a "natural order" algorithm.
5822 */
5823 return strnatcasecmp( $a[ 'name' ], $b[ 'name' ] );
5824 }
5825
5826 return 0; // No change.
5827 }
5828 }
5829 }
5830