=== WPSSO Core - Complete and Optimized Structured Data SEO ===
Plugin Name: WPSSO Core
Plugin Slug: wpsso
Text Domain: wpsso
Domain Path: /languages
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl.txt
Assets URI: https://surniaulula.github.io/wpsso/assets/
Tags: schema, woocommerce, search results, optimize, meta tags
Contributors: jsmoriss
Requires PHP: 7.4.33
Requires At Least: 5.9
Tested Up To: 6.7.2
WC Tested Up To: 9.7.1
Stable Tag: 18.19.6
Present your content at its best for social sites and search results, no matter how URLs are shared, reshared, messaged, posted, embedded, or crawled.
== Description ==
Complete and Optimized Structured Data SEO for WordPress
Present your content at its best for social sites and search results, no matter how URLs are shared, reshared, messaged, posted, embedded, or crawled.
The most comprehensive and accurate Schema markup plugin for WooCommerce products.
Supports over 500 different Schema types and sub-types (including Schema Event for WooCommerce products).
Provides complete structured data markup for:
- Facebook / Open Graph
- Google Knowledge Graph
- Google Merchant Feed XML
- Google Rich Results / Rich Snippets
- Image and Video SEO
- Instagram Catalog Feed XMLs
- Meta (Facebook and Instagram) Catalog Feed XMLs
- Mobile Web Browsers
- oEmbed for LinkedIn, Discord, and Drupal
- Pinterest Rich Pins
- Schema JSON-LD Markup
- Slack
- WhatsApp and Messaging Apps
- WordPress REST API
- WordPress Sitemaps XML
- X (Twitter) Cards
Fixes all Google Rich Results and Google Merchant errors, including:
* *A value for the headline field is required*
* *A value for the image field is required*
* *A value for the logo field is required*
* *A value for the publisher field is required*
* *Either "price" or "priceSpecification" should be specified (in "offers")*
* *Invalid value in field "priceSpecification"*
* *The aggregateRating field is recommended*
* *The brand field is recommended*
* *The headline field is recommended*
* *The image field is recommended*
* *The review field is recommended*
* *Missing field "address"*
* *Missing field "aggregateRating"*
* *Missing field "brand"*
* *Missing field "businessDays"*
* *Missing field "cutoffTime"*
* *Missing field "deliveryTime"*
* *Missing field "hasMerchantReturnPolicy" (in "offers")*
* *Missing field "image"*
* *Missing field "priceRange"*
* *Missing field "review"*
* *Missing field "shippingDetails" (in "offers")*
* *Missing field "telephone"*
* *No global identifier provided (e.g. gtin mpn isbn)*
* *Not a known valid target type for the itemReviewed property*
* *Price Mismatched value (page crawl): (price [price])*
Optimized image sizes for social sites and search engines:
* Commerce Manager Catalog Feed XML (Facebook and Instagram)
* Google Merchant Feed XML
* Open Graph (Facebook and oEmbed)
* Pinterest Pin It
* Schema 1:1 (Google Rich Results)
* Schema 4:3 (Google Rich Results)
* Schema 16:9 (Google Rich Results)
* Schema Thumbnail
* Video Preview Image
* X (Twitter) Summary Card
* X (Twitter) Summary Card Large Image
Reads additional information from active plugins, including:
* Co-Authors Plus
* Elementor Website Builder
* Gravity Forms
* Gravity View
* Jetpack
* Jetpack Boost
* Judge.me Product Reviews for WooCommerce
* Perfect Images
* Perfect Brands for WooCommerce
* Polylang
* Product GTIN (EAN, UPC, ISBN) for WooCommerce
* qTranslate-XT
* Rate my Post
* Simple Job Board
* The Events Calendar
* Ultimate Member
* WooCommerce
* WooCommerce Brands
* WooCommerce Currency Switcher
* WooCommerce UPC, EAN, and ISBN
* WP Job Manager
* WP-PostRatings
* WP Product Review
* WP Recipe Maker
* WPML
* YITH WooCommerce Brands Add-on
* Yotpo Social Reviews for WooCommerce
Supports additional WooCommerce product attributes:
* Product Adult Type
* Product Age Group
* Product Availability
* Product Brand
* Product Google Category ID
* Product Color
* Product Condition
* Product Currency
* Product Energy Rating
* Product Fluid Volume
* Product GTIN-14
* Product GTIN-13 (EAN)
* Product GTIN-12 (UPC)
* Product GTIN-8
* Product GTIN
* Product Net Height
* Product ISBN
* Product Net Len. / Depth
* Product Material
* Product MPN
* Product Min Advert Price
* Product Pattern
* Product Price
* Product Price Type
* Product SKU
* Product Shipping Height
* Product Shipping Length
* Product Shipping Weight
* Product Shipping Width
* Product Size
* Product Size Group
* Product Size System
* Product Target Gender
* Product Net Weight
* Product Net Width
Optionally improves the structured data markup of other SEO plugins:
WPSSO Core and its add-ons can also run in combination with other SEO plugins to improve their performance and structured data markup.
* All in One SEO Pack
* Rank Math SEO
* SEOPress
* The SEO Framework
* WP Meta SEO
* Yoast SEO
Premium edition can retrieve data from service APIs automatically, including:
* Bitly Short URL
* DLMY.App Short URL
* Facebook Video Data
* Gravatar Image Data
* Judge.me Review Data
* Ow.ly Short URL
* Shopper Approved Review Data
* Slideshare Presentation Data
* Soundcloud Track Data
* Stamped.io Review Data
* TinyURL Short URL
* Vimeo Video Data
* Wistia Video Data
* WP Media Library Video Block Data
* WP Media Library Video Shortcode Data
* Your Own URL Shortener (YOURLS) Short URL
* YouTube Video and Playlist Data
== Installation ==
Install and Uninstall
* [Install the WPSSO Core Plugin](https://wpsso.com/docs/plugins/wpsso/installation/install-the-plugin/)
* [Uninstall the WPSSO Core Plugin](https://wpsso.com/docs/plugins/wpsso/installation/uninstall-the-plugin/)
Plugin Setup
* [Setup Guide](https://wpsso.com/docs/plugins/wpsso/installation/setup-guide/)
* [Developer Special: Buy one, Get one Free](https://wpsso.com/docs/plugins/wpsso/installation/developer-special-buy-one-get-one-free/)
* [Better Schema Markup for WooCommerce](https://wpsso.com/docs/plugins/wpsso/installation/better-schema-for-woocommerce/)
* [Troubleshooting Guide](https://wpsso.com/docs/plugins/wpsso/installation/troubleshooting-guide/)
== Frequently Asked Questions ==
Frequently Asked Questions
* [Does LinkedIn read Facebook / Open Graph meta tags?](https://wpsso.com/docs/plugins/wpsso/faqs/does-linkedin-read-the-open-graph-meta-tags/)
* [How can I fix a ERR_TOO_MANY_REDIRECTS error?](https://wpsso.com/docs/plugins/wpsso/faqs/how-can-i-fix-a-err_too_many_redirects-error/)
* [How can I fix a generic HTTP 500 error?](https://wpsso.com/docs/plugins/wpsso/faqs/how-can-i-fix-a-generic-http-500-error/)
* [How can I fix a PHP fatal "out of memory" error?](https://wpsso.com/docs/plugins/wpsso/faqs/how-can-i-fix-a-php-fatal-out-of-memory-error/)
* [How can I fix an HTTP error when uploading images?](https://wpsso.com/docs/plugins/wpsso/faqs/how-can-i-fix-an-http-error-when-uploading-images/)
* [How can I have smaller dimensions for the default image?](https://wpsso.com/docs/plugins/wpsso/faqs/how-can-i-have-smaller-dimensions-for-the-default-image/)
* [How can I see what the Facebook crawler sees?](https://wpsso.com/docs/plugins/wpsso/faqs/how-can-i-see-what-the-facebook-crawler-sees/)
* [How do I create a Schema FAQPage?](https://wpsso.com/docs/plugins/wpsso/faqs/how-do-i-create-a-schema-faqpage/)
* [How do I enable WordPress WP_DEBUG?](https://wpsso.com/docs/plugins/wpsso/faqs/how-do-i-enable-wordpress-wp_debug/)
* [How do I fix Google Structured Data > hatom errors?](https://wpsso.com/docs/plugins/wpsso/faqs/how-do-i-fix-google-structured-data-hatom-errors/)
* [How do I remove duplicate meta tags?](https://wpsso.com/docs/plugins/wpsso/faqs/how-do-i-remove-duplicate-meta-tags/)
* [How does WPSSO Core find and select images?](https://wpsso.com/docs/plugins/wpsso/faqs/how-does-wpsso-find-detect-select-images/)
* [How does WPSSO Core find and select videos?](https://wpsso.com/docs/plugins/wpsso/faqs/how-does-wpsso-find-detect-select-videos/)
* [W3C says "there is no attribute 'property'"](https://wpsso.com/docs/plugins/wpsso/faqs/w3c-says-there-is-no-attribute-property/)
* [Why are some HTML elements missing or misaligned?](https://wpsso.com/docs/plugins/wpsso/faqs/why-are-some-html-elements-missing-misaligned-different/)
* [Why does Facebook show the wrong image / text?](https://wpsso.com/docs/plugins/wpsso/faqs/why-does-facebook-show-the-wrong-image-text/)
* [Why does the Schema Markup Validator show errors?](https://wpsso.com/docs/plugins/wpsso/faqs/why-does-google-structured-data-testing-tool-show-errors/)
* [Why shouldn't I upload small images to the media library?](https://wpsso.com/docs/plugins/wpsso/faqs/why-shouldnt-i-upload-small-images-to-the-media-library/)
Notes and Documentation
* [Developer Resources](https://wpsso.com/docs/plugins/wpsso/notes/developer/)
* [$mod Variable](https://wpsso.com/docs/plugins/wpsso/notes/developer/the-mod-variable/)
* [Actions](https://wpsso.com/docs/plugins/wpsso/notes/developer/actions/)
* [Constants](https://wpsso.com/docs/plugins/wpsso/notes/developer/constants/)
* [Filters](https://wpsso.com/docs/plugins/wpsso/notes/developer/filters/)
* [Inline Variables](https://wpsso.com/docs/plugins/wpsso/notes/inline-variables/)
* [Multisite / Network Support](https://wpsso.com/docs/plugins/wpsso/notes/multisite-network-support/)
== Screenshots ==
01. The Essential, General, and Advanced settings pages provide all the options you may need, from simple blog sites to advanced e-commerce shops and everything in-between.
== Changelog ==
Release Schedule
New versions of the plugin are released approximately every week (more or less). New features are added, tested, and released incrementally, instead of grouping them together in a major version release. When minor bugs fixes and/or code improvements are applied, new versions are also released. This release schedule keeps the code stable and reliable, at the cost of more frequent updates.
See release early, release often (RERO) software development philosophy on Wikipedia for more information on the benefits of smaller / more frequent releases.
Version Numbering
Version components: `{major}.{minor}.{bugfix}[-{stage}.{level}]`
* {major} = Major structural code changes and/or incompatible API changes (ie. breaking changes).hanges).
* {minor} = New functionality was added or improved in a backwards-compatible manner.
* {bugfix} = Backwards-compatible bug fixes or small improvements.
* {stage}.{level} = Pre-production release: dev < a (alpha) < b (beta) < rc (release candidate).
Standard Edition Repositories
* [GitHub](https://surniaulula.github.io/wpsso/)
* [WordPress.org](https://plugins.trac.wordpress.org/browser/wpsso/)
Development Version Updates
WPSSO Core Premium edition customers have access to development, alpha, beta, and release candidate version updates:
Under the SSO > Update Manager settings page, select the "Development and Up" (for example) version filter for the WPSSO Core plugin and/or its add-ons. When new development versions are available, they will automatically appear under your WordPress Dashboard > Updates page. You can reselect the "Stable / Production" version filter at any time to reinstall the latest stable version.
WPSSO Core Standard edition users (ie. the plugin hosted on WordPress.org) have access to the latest development version under the Advanced Options section.
Changelog / Release Notes
**Version 18.20.0-dev.1 (2025/04/02)**
* **New Features**
* None.
* **Improvements**
* Added new date options under the SSO > Advanced Settings > Schema Defaults > Creative Work tab:
* Add Date Created Property
* Add Date Published Property
* Add Date Modified Property
* **Bugfixes**
* None.
* **Developer Notes**
* None.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.19.6 (2025/03/30)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed a PHP "Type of `Michelf\MarkdownExtra::$em_relist` must not be defined" error in the 'Michelf\Markdown' library.
* **Developer Notes**
* Refactored the `WpssoRegister::uninstall_plugin()` method `delete_metadata()` calls.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.19.5 (2025/02/18)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed possible 'Michelf\MarkdownInterface' library conflict.
* **Developer Notes**
* Updated PHP Markdown library to v2.0.0.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.19.4 (2025/02/04)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed possible call to empty object in `WpssoOpenGraph->get_product_awards()`.
* **Developer Notes**
* None.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.19.3 (2025/02/01)**
* **New Features**
* None.
* **Improvements**
* Updated Perfect Woocommerce Brands plugin detection (PWB changed their namespace and class name).
* **Bugfixes**
* None.
* **Developer Notes**
* None.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.19.2 (2025/01/28)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fix for WooCommerce theme or plugin filters that return an empty string for a product price, to avoid triggering a PHP fatal error in woocommerce/includes/shipping/flat-rate/class-wc-shipping-flat-rate.php:141
* **Developer Notes**
* Updated `WpssoIntegEcomWooCommerce->get_product_price()` to return 0 if the product price returned by WooCommerce is empty.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.19.1 (2025/01/24)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed `WpssoUtil::get_max_nums()` null argument error.
* **Developer Notes**
* Refactored the `WpssoOpenGraph->get_product_retailer_item_images()` method.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.19.0 (2025/01/23)**
* **New Features**
* None.
* **Improvements**
* Added "price" and "priceCurrency" properties to the offers markup for a new Google Merchant requirement.
* Added the original (ie. regular or list) product price to the offers markup when a product is on sale.
* **Bugfixes**
* None.
* **Developer Notes**
* None.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.18.4 (2024/12/26)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed PHP v8.2 warning: Using `${var}` in strings is deprecated in lib/com/util.php.
* **Developer Notes**
* None.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.18.3 (2024/12/18)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* None.
* **Developer Notes**
* Added debug messages to `WpssoSchemaSingle::get_shipping_offer_data()`.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.2.0 (for Premium edition).
**Version 18.18.2 (2024/11/25)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed missing user capability check in `WpssoPost->ajax_get_metabox_sso()` (props Ngô Thái An).
* **Developer Notes**
* Renamed the `user_can_save()` method to `user_can_edit()` in `WpssoAbstractWpMeta`, `WpssoComment`, `WpssoPost`, `WpssoTerm`, and `WpssoUser`.
* Added a call to `WpssoPost->user_can_edit()` in `WpssoPost->die_or_get_ajax_post_obj()`.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.1.0 (for Premium edition).
**Version 18.18.1 (2024/11/21)**
* **New Features**
* None.
* **Improvements**
* Adjusted disk cache file expiration time from 1 month to 1 week.
* **Bugfixes**
* None.
* **Developer Notes**
* Updated the default `WPSSO_CACHE_FILES_EXP_SECS` constant value to `WEEK_IN_SECONDS`.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.1.0 (for Premium edition).
**Version 18.18.0 (2024/11/11)**
* **New Features**
* None.
* **Improvements**
* Improved performance when creating markup for WooCommerce shipping offers.
* Updated the format of debug messages for more compact logging.
* **Bugfixes**
* None.
* **Developer Notes**
* Added a new `SucomCache->shutdown_stats()` method.
* Added a new `WpssoIntegEcomWooCommerce->get_zone_shipping_destinations()` method.
* Refactored caching in `WpssoIntegEcomWooCommerce->add_mt_shipping_offers()`.
* Refactored caching in `WpssoIntegEcomWooCommerce->is_variation_selectable_attribute()`.
* Refactored caching in `WpssoUtilWooCommerce->is_mod_variable()`.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.1.0 (for Premium edition).
**Version 18.17.0 (2024/11/06)**
* **New Features**
* None.
* **Improvements**
* Improved memory usage for comment/post/term/user metadata defaults.
* **Bugfixes**
* None.
* **Developer Notes**
* Refactored caching in `WpssoAbstractWpMeta->get_defaults()`.
* Refactored caching in `WpssoAbstractWpMeta->get_head_info()`.
* Refactored caching in `WpssoAdmin->get_side_col_boxes()`.
* Refactored caching in `WpssoSchema->add_person_data()`.
* Refactored caching in `WpssoUtil->get_image_url_info()`.
* Refactored caching in `SucomUtil->is_term_tax_slug()`.
* Updated default `WPSSO_CACHE_ARRAY_FIFO_MAX` value to 8.
* Updated default `WPSSO_CACHE_REFRESH_MAX_TIME` value to 1800.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v7.1.0 (for Premium edition).
**Version 18.16.1 (2024/11/02)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed incorrect abort time limit for background cache refresh.
* **Developer Notes**
* Added new optional debug constants:
* WPSSO_AJAX_DEBUG_HTML
* WPSSO_AJAX_DEBUG_LOG
* WPSSO_CRON_DEBUG_HTML
* WPSSO_CRON_DEBUG_LOG
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.16.0 (2024/11/01)**
* **New Features**
* None.
* **Improvements**
* Added WooCommerce store base location to Schema shippingDestination markup for postal codes.
* Added a "Clear Expired Transients" action in the SSO > Tools and Actions page.
* Added progress information to the notification message when refreshing the cache.
* **Bugfixes**
* None.
* **Developer Notes**
* Added a `$cache_exp_secs` argument to the `WpssoUtilCache->get_running_task()` method (to double-check the transient expiration time).
* Added `is_string()` checks after each content filter to make sure the returned value is a string (and not null).
* Updated `WpssoIntegEcomWooCommerce->add_mt_shipping_offers()` to add the WooCommerce store base location country for postal codes.
* Updated `WpssoUtilCache->show_refresh_running()` to include progress information in the notification message.
* Updated `WpssoUtilCache->refresh()` to save progress information for each object processed.
* Refactored `WpssoUtilCache->task_update()` to write progress information to the task transient.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.15.0 (2024/10/22)**
* **New Features**
* None.
* **Improvements**
* Added a post cache clearing hook when WooCommerce changes the product metadata.
* **Bugfixes**
* None.
* **Developer Notes**
* Added a new `WpssoIntegEcomWooCommerce->clear_product_cache()` method hooked to the 'woocommerce_product_object_updated_props' action.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.14.0 (2024/10/15)**
* **New Features**
* None.
* **Improvements**
* Improved sanitation of Schema gtin property values.
* **Bugfixes**
* None.
* **Developer Notes**
* Refactored the `WpssoSchema::check_prop_value_gtin()` method.
* Added a '_wpsso_head_info_schema_review_rating' metadata value when a Schema Review rating is available:
* Added a 'schema_review_rating' column settings array in `WpssoConfig::$cf`.
* Added a 'schema:review:rating' internal meta tag in `SucomUtil::get_mt_og_seed()`.
* Added a new `WpssoSchema->add_schema_mt_og()` private method.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.13.0 (2024/10/12)**
* **New Features**
* None.
* **Improvements**
* Added numeric formatting to the WordPress Dashboard > WPSSO Cache Status metabox "Count" column.
* **Bugfixes**
* None.
* **Developer Notes**
* Removed `number_format_i18n()` formatting in the `WpssoUtilCache->get_db_transients_size_mb()` method.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.12.1 (2024/10/07)**
* **New Features**
* None.
* **Improvements**
* None.
* **Bugfixes**
* Fixed a non-numeric value warning in the `WpssoAdminDashboard->show_metabox_cache_status()` method.
* **Developer Notes**
* Removed `number_format_i18n()` formatting in the `SucomCache->get_cache_files_size_mb()` method.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.12.0 (2024/10/04)**
* **New Features**
* None.
* **Improvements**
* Added a "Cache Folder" section in the WordPress Dashboard > WPSSO Cache Status metabox.
* Added a notice in the WordPress Dashboard > WPSSO Cache Status metabox when `wp_using_ext_object_cache()` returns true.
* **Bugfixes**
* None.
* **Developer Notes**
* Added a `$read_cache` argument to the `WpssoAdmin->get_ext_file_content()` method.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.11.0 (2024/10/01)**
* **New Features**
* None.
* **Improvements**
* Added a new SSO > Tools and Actions > Clear Short URL Transients button.
* Include the SSO > Tools and Actions > Clear Database Transients and Clear Short URL Transients buttons even if `wp_using_ext_object_cache()` is true.
* **Bugfixes**
* Fixed an incorrect transient key match in `WpssoUtilCache->get_db_transients_subset()`.
* **Developer Notes**
* None.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
**Version 18.10.0 (2024/09/21)**
* **New Features**
* None.
* **Improvements**
* Updated WPSSO dashboard metaboxes to skip creating content when hidden.
* **Bugfixes**
* None.
* **Developer Notes**
* Added a new `WpssoUser::is_metabox_hidden()` method.
* Added a new `WpssoUtilMetabox::show_is_hidden_content()` method.
* Updated default WPSSO_SELECT_PERSON_NAMES_MAX constant value from 100 to 200.
* Updated `WpssoAdmin::sort_active_plugins()` to sort WPSSO plugins before JSM plugins.
* **Requires At Least**
* PHP v7.4.33.
* WordPress v5.9.
* WPSSO Update Manager v6.0.1 (for Premium edition).
== Upgrade Notice ==
= 18.20.0-dev.1 =
(2024/04/02) Added new date options under the SSO > Advanced Settings > Schema Defaults > Creative Work tab:
= 18.19.6 =
(2024/03/30) Fixed a PHP "Type of `Michelf\MarkdownExtra::$em_relist` must not be defined" error in the 'Michelf\Markdown' library.
= 18.19.5 =
(2024/02/18) Fixed possible 'Michelf\MarkdownInterface' library conflict.
= 18.19.4 =
(2024/02/04) Fixed possible call to empty object in `WpssoOpenGraph->get_product_awards()`.
= 18.19.3 =
(2024/02/01) Updated Perfect Woocommerce Brands plugin detection (PWB changed their namespace and class name).
= 18.19.2 =
(2025/01/28) Fix for WooCommerce theme or plugin filters that return an empty string for a product price.
= 18.19.1 =
(2025/01/24) Fixed `WpssoUtil::get_max_nums()` null argument error.
= 18.19.0 =
(2025/01/23) Added "price" and "priceCurrency" properties to the offers markup for a new Google Merchant requirement.
= 18.18.4 =
(2024/12/26) Fixed PHP v8.2 warning: Using `${var}` in strings is deprecated in lib/com/util.php.
= 18.18.3 =
(2024/12/18) Added debug messages to `WpssoSchemaSingle::get_shipping_offer_data()`.
= 18.18.2 =
(2024/11/25) Fixed missing user capability check in `WpssoPost->ajax_get_metabox_sso()` (props Ngô Thái An).
= 18.18.1 =
(2024/11/21) Adjusted disk cache file expiration time from 1 month to 1 week.
= 18.18.0 =
(2024/11/11) Improved performance when creating markup for WooCommerce shipping offers.
= 18.17.0 =
(2024/11/06) Improved memory usage for comment/post/term/user metadata defaults.
= 18.16.1 =
(2024/11/02) Fixed incorrect abort time limit for background cache refresh.
= 18.16.0 =
(2024/11/01) Added WooCommerce store base location to Schema shippingDestination markup for postal codes. Added a "Clear Expired Transients" action in the SSO > Tools and Actions page.
= 18.15.0 =
(2024/10/22) Added a post cache clearing hook when WooCommerce changes the product metadata.
= 18.14.0 =
(2024/10/15) Improved sanitation of Schema gtin property values. Added a '_wpsso_head_info_schema_review_rating' metadata value when a Schema Review rating is available.
= 18.13.0 =
(2024/10/12) Added numeric formatting to the WordPress Dashboard > WPSSO Cache Status metabox "Count" column.
= 18.12.1 =
(2024/10/07) Fixed a non-numeric value warning in the `WpssoAdminDashboard->show_metabox_cache_status()` method.
= 18.12.0 =
(2024/10/04) Added a "Cache Folder" section in the WordPress Dashboard > WPSSO Cache Status metabox.
= 18.11.0 =
(2024/10/01) Added a new SSO > Tools and Actions > Clear Short URL Transients button. Fixed an incorrect transient key match in `WpssoUtilCache->get_db_transients_subset()`.
= 18.10.0 =
(2024/09/21) Updated WPSSO dashboard metaboxes to skip creating content when hidden.