=== WPSSO Core - Complete Schema Markup and Meta Tags ===
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.9
WC Tested Up To: 10.4.3
Stable Tag: 21.11.1

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 ==

<h3 class="top">Complete Schema Markup and Meta Tags for WordPress</h3>

<p>Present your content at its best for social sites and search results, no matter how URLs are shared, reshared, messaged, posted, embedded, or crawled.</p>

<!-- about -->

<p><strong>The most comprehensive and accurate Schema markup plugin for WooCommerce products.</strong></p>

<p>Supports over 500 different Schema types and sub-types (including Schema Event, Product Group, and the Service type for WooCommerce products).</p>

<p><strong>Provides complete Schema markup and meta tags for:</strong></p>

<ul>
	<li>Facebook / Open Graph</li>
	<li>Google Knowledge Graph</li>
	<li>Google Merchant Feed XML</li>
	<li>Google Rich Results / Rich Snippets</li>
	<li>Image and Video SEO</li>
	<li>Instagram Catalog Feed XMLs</li>
	<li>Meta (Facebook and Instagram) Catalog Feed XMLs</li>
	<li>Mobile Web Browsers</li>
	<li>oEmbed for LinkedIn, Discord, and Drupal</li>
	<li>Pinterest Rich Pins</li>
	<li>Schema JSON-LD Markup</li>
	<li>Slack</li>
	<li>WhatsApp and Messaging Apps</li>
	<li>WordPress REST API</li>
	<li>WordPress Sitemaps XML</li>
	<li>X (Twitter) Cards</li>
</ul>

<!-- /about -->

<p><strong>Fixes all Google Rich Results and Google Merchant errors, including:</strong></p>

* *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])*

<p><strong>Optimized image sizes for social sites and search engines:</strong></p>

* 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

<p><strong>Reads additional information from active plugins, including:</strong></p>

* <a href="https://wordpress.org/plugins/co-authors-plus/">Co-Authors Plus</a>
* <a href="https://wordpress.org/plugins/elementor/">Elementor Website Builder</a>
* Gravity Forms
* Gravity View
* <a href="https://wordpress.org/plugins/jetpack/">Jetpack</a>
* <a href="https://wordpress.org/plugins/jetpack-boost/">Jetpack Boost</a>
* <a href="https://wordpress.org/plugins/judgeme-product-reviews-woocommerce/">Judge.me Product Reviews for WooCommerce</a>
* <a href="https://wordpress.org/plugins/wp-retina-2x/">Perfect Images</a>
* <a href="https://wordpress.org/plugins/perfect-woocommerce-brands/">Perfect Brands for WooCommerce</a>
* <a href="https://wordpress.org/plugins/polylang/">Polylang</a>
* Product GTIN (EAN, UPC, ISBN) for WooCommerce
* <a href="https://wordpress.org/plugins/publishpress-authors">PublishPress Authors</a>
* qTranslate-XT
* <a href="https://wordpress.org/plugins/rate-my-post/">Rate my Post</a>
* <a href="https://wordpress.org/plugins/simple-job-board/">Simple Job Board</a>
* <a href="https://wordpress.org/plugins/the-events-calendar/">The Events Calendar</a>
* <a href="https://wordpress.org/plugins/ultimate-member/">Ultimate Member</a>
* <a href="https://wordpress.org/plugins/woocommerce/">WooCommerce</a>
* WooCommerce Brands
* WooCommerce Currency Switcher
* WooCommerce UPC, EAN, and ISBN
* <a href="https://wordpress.org/plugins/wp-job-manager/">WP Job Manager</a>
* <a href="https://wordpress.org/plugins/wp-postratings/">WP-PostRatings</a>
* WP Product Review
* <a href="https://wordpress.org/plugins/wp-recipe-maker/">WP Recipe Maker</a>
* WPML
* <a href="https://wordpress.org/plugins/yith-woocommerce-brands-add-on/">YITH WooCommerce Brands Add-on</a>
* <a href="https://wordpress.org/plugins/yotpo-social-reviews-for-woocommerce/">Yotpo Social Reviews for WooCommerce</a>

<p><strong>Supports additional WooCommerce product attributes:</strong></p>

* 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

<p><strong>Optionally improves the structured data markup of other SEO plugins:</strong></p>

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

<p><strong>Premium edition can retrieve data from service APIs automatically, including:</strong></p>

* 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 ==

<h3 class="top">Install and Uninstall</h3>

* [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/)

<h3>Plugin Setup</h3>

* [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 ==

<h3 class="top">Frequently Asked Questions</h3>

* [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 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/)

<h3>Notes and Documentation</h3>

* [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 ==

<h3 class="top">Release Schedule</h3>

<p>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.</p>

<p>See <a href="https://en.wikipedia.org/wiki/Release_early,_release_often">release early, release often (RERO) software development philosophy</a> on Wikipedia for more information on the benefits of smaller / more frequent releases.</p>

<h3>Version Numbering</h3>

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 &lt; a (alpha) &lt; b (beta) &lt; rc (release candidate).

<h3>Standard Edition Repositories</h3>

* [GitHub](https://surniaulula.github.io/wpsso/)
* [WordPress.org](https://plugins.trac.wordpress.org/browser/wpsso/)

<h3>Development Version Updates</h3>

<p><strong>WPSSO Core Premium edition customers have access to development, alpha, beta, and release candidate version updates:</strong></p>

<p>Under the SSO &gt; 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 &gt; Updates page. You can reselect the "Stable / Production" version filter at any time to reinstall the latest stable version.</p>

<p><strong>WPSSO Core Standard edition users (ie. the plugin hosted on WordPress.org) have access to <a href="https://wordpress.org/plugins/wpsso/advanced/">the latest development version under the Advanced Options section</a>.</strong></p>

<h3>Changelog / Release Notes</h3>

**Version 21.11.1 (2025/12/23)**

* **New Features**
	* None.
* **Improvements**
	* None.
* **Bugfixes**
	* Fixed getting the primary category ID for WooCommerce products from Yoast SEO.
* **Developer Notes**
	* Added new 'post_primary_tax_slug' and 'post_taxonomies' elements to the `$mod` array.
	* Added the 'wpsso_primary_term_id' filter to the `WpssoPost->get_default_term_id()` method.
	* Added support for inline variables to `WpssoIntegDataAbstractSeoMeta->filter_get_post_options()`.
	* Refactored the `WpssoIntegSeoWpseo->filter_primary_term_id()` method to use the `$tax_slug` value as part of the meta key.
	* Added a new 'wpsso_primary_term_id_is_custom' filter to the `WpssoPost->get_primary_term_id()` method.
	* Removed the 'wpsso_default_term_id' filter.
* **Requires At Least**
	* PHP v7.4.33.
	* WordPress v5.9.
	* WPSSO Update Manager v7.2.0 (for Premium edition).

**Version 21.11.0 (2025/12/20)**

* **New Features**
	* None.
* **Improvements**
	* Added the Schema StrikethroughPrice price type in price specification markup.
	* Removed the Schema SalePrice and ListPrice price types in price specification markup (no longer supported by Google).
	* Removed the "Default Product Price Type" option from the SSO &gt; Advanced Settings page.
	* Updated the add-ons for filter name changes:
		* WPSSO Schema Breadcrumbs Markup
		* WPSSO Ratings and Reviews
* **Bugfixes**
	* None.
* **Developer Notes**
	* Added a new 'wpsso_add_schema_unit_price_specification' filter.
	* Renamed the 'wpsso_add_custom_post_type_options' filter to 'wpsso_custom_post_type_options'.
	* Renamed the 'wpsso_add_custom_post_type_archive_options' filter to 'wpsso_custom_post_type_archive_options'.
	* Renamed the 'wpsso_add_custom_taxonomy_options' filter to 'wpsso_custom_taxonomy_options'.
* **Requires At Least**
	* PHP v7.4.33.
	* WordPress v5.9.
	* WPSSO Update Manager v7.2.0 (for Premium edition).

**Version 21.10.0 (2025/12/17)**

* **New Features**
	* None.
* **Improvements**
	* Added Pinterest image duplicate prevention in case the WordPress content filter is applied twice.
	* Added a new "Default Product Prices Valid For" option under the SSO &gt; Advanced Settings &gt; Schema Defaults &gt; Product tab.
* **Bugfixes**
	* Fixed inconsistency of 'priceValidUntil' and 'validThrough' default values when no sale end date is available.
* **Developer Notes**
	* Updated `WpssoPinterest->get_mod_image_html()` method to avoid adding the Pinterest image more than once.
	* Removed the WPSSO_SCHEMA_PRODUCT_VALID_MAX_TIME constant.
* **Requires At Least**
	* PHP v7.4.33.
	* WordPress v5.9.
	* WPSSO Update Manager v7.2.0 (for Premium edition).

== Upgrade Notice ==

= 21.11.1 =

(2025/12/23) Fixed getting the primary category ID for WooCommerce products from Yoast SEO.

= 21.11.0 =

(2025/12/20) Added Schema StrikethroughPrice and removed SalePrice and ListPrice price types in price specification markup (no longer supported by Google).

= 21.10.0 =

(2025/12/17) Added Pinterest image CSS ID duplicate prevention. Fixed inconsistency of 'priceValidUntil' and 'validThrough' default values. Added a new "Default Product Prices Valid For" option.

