=== Strainpedia WordPress Client Pro ===
Contributors: strainpedia
Tags: api, strains, cannabis, shortcode, rest, gutenberg, schema
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.3.0
License: GPLv2 or later

Customer-facing Pro WordPress plugin for connecting websites to the Strainpedia API.

== Description ==

Strainpedia WordPress Client Pro lets approved Strainpedia API customers display, import, sync, and structure cannabis strain data inside WordPress.

Features:
* API key settings page
* API connection test
* Cached REST requests
* Strain grid, search, single strain, and compare shortcodes
* Gutenberg blocks: Strain Grid, Search, Featured Strain
* Custom post type for imported strains
* Manual import/sync tool
* Daily sync option
* JSON-LD schema for imported strain pages
* Responsive strain card layout
* Optional Powered by Strainpedia attribution
* WooCommerce seed product helper tools
* Elementor widgets for Strain Grid and Search
* Featured image import to WordPress Media Library
* AJAX import progress UI
* API status dashboard
* Error log viewer
* Public demo page layout helper

== Installation ==

1. Upload the plugin ZIP in WordPress: Plugins > Add New > Upload Plugin.
2. Activate the plugin.
3. Go to Settings > Strainpedia Pro.
4. Enter the API Base URL and your API key.
5. Click Test API Connection.
6. Use shortcodes, Gutenberg blocks, or Import & Sync.

== Shortcodes ==

[strainpedia_strains per_page="12" page="1"]
[strainpedia_search]
[strainpedia_strain slug="blue-dream"]
[strainpedia_compare strains="blue-dream,gelato"]
[strainpedia_schema slug="blue-dream"]

== Gutenberg Blocks ==

* Strainpedia Strain Grid
* Strainpedia Search
* Strainpedia Featured Strain

== API Requirements ==

The source Strainpedia API should support:
/wp-json/strainpedia/v1/strains
/wp-json/strainpedia/v1/search?query=cherry
/wp-json/strainpedia/v1/strain/blue-dream
/wp-json/strainpedia/v1/compare?strains=blue-dream,gelato

Requests send the API key as:
x-api-key: YOUR_KEY

== Changelog ==

= 1.3.0 =
* Added Import As option: Strainpedia Strains, WordPress Posts, or WooCommerce Products.
* WooCommerce product imports now create seed product drafts from API strain records.
* Improved duplicate detection using imported strain slug metadata.
* Reduced duplicate H1 output in imported frontend content.

= 1.2.0 =
* Added WooCommerce seed product integration.
* Added Elementor widget foundation.
* Added AJAX import progress UI.
* Added API status and usage dashboard.
* Added featured image import.
* Added error logging and log viewer.
* Added better block customization.
* Added public demo layout helper.

= 1.1.0 =
* Added Gutenberg block foundation.
* Added Strainpedia custom post type for imports.
* Added manual import/sync tool.
* Added daily sync option.
* Added JSON-LD schema support.
* Added import settings and Pro admin tabs.


= 1.5.7 =
* Fixes Next batch page not advancing when the API returns 50 records while Batch Limit is set higher.

= 1.6.0 =
* Clean imported WordPress Post/Page titles and permalinks: strain name only, e.g. Gelato 42 => /gelato-42/.


= 1.6.9 =
* Added single post/page/Strainpedia fallback so remote featured images display on normal WordPress content even when themes check _thumbnail_id directly. WooCommerce products remain handled separately without duplicate content images.

= 1.6.7 =
* Fixed duplicate remote featured images in WooCommerce related products and archive loops by removing the extra loop fallback output. Remote images now display once through WooCommerce's native product image filter.


= 1.7.4 =
* Improved WooCommerce meta descriptions and product copy by removing generic WooCommerce/listing wording.

= 1.7.3 =
* Added WooCommerce Product Keyword preset datalist with popular options: Seeds, Strain, Flower, Vape, Oil, Gummies, Edibles, Pre-Roll, Concentrate, Extract, Cartridge, Tincture, Wax, Live Resin, Rosin, Hash, Clone, CBD, THC, and Hybrid.
* Users can still type any custom keyword. WooCommerce dynamic product titles, slugs, SEO titles, meta descriptions, short descriptions, and long descriptions continue to use the selected keyword.
