=== Yuzool Widgets ===
Contributors: yuzool
Tags: widgets, embed, shortcode, gutenberg, iframe
Requires at least: 5.9
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.1.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build widgets in WordPress admin using Widget Studio, save snippets, and insert anywhere via shortcode or block.

== Description ==

Yuzool Widgets gives you a full workflow inside WordPress:

* Builder-first flow: open Widget Studio directly in WordPress admin.
* Save reusable embed snippets with your own keys.
* Shortcode by key: `[yuzool_widget key="homepage_reviews"]`.
* Gutenberg block: **Yuzool Widget**.
* Fallback embed modes: `id` and direct `src`.
* Global defaults for embed height, lazy loading, and sandbox policy.
* Responsive container with optional aspect ratio mode.

== Installation ==

1. Upload the plugin folder `yuzool-widgets` to `/wp-content/plugins/`.
2. Activate **Yuzool Widgets** from the Plugins screen.
3. Open **Yuzool Widgets** in the admin sidebar.
4. Build in Widget Studio, copy snippet, and save it with a key.
5. Add shortcode or block to any post/page.

== Shortcode ==

Recommended:

`[yuzool_widget key="homepage_reviews"]`

Fallback by widget id:

`[yuzool_widget id="google-reviews-no-api"]`

Custom height:

`[yuzool_widget id="apps-embed-hub" height="900"]`

Use direct source URL:

`[yuzool_widget src="https://www.yuzool.com/widgets/?widget=countdown"]`

Optional params:

* `key`
* `id`
* `src`
* `height`
* `width`
* `title`
* `class`
* `ratio` (example: `16:9`)
* `lazy` (`1` or `0`)
* `sandbox` (`1` or `0`)

== External services ==

This plugin connects to Yuzool Widgets to load the builder interface and render embedded widget content.

Service used:
* Yuzool Widgets: `https://www.yuzool.com/widgets/`

What it is used for:
* Loading Widget Studio in WordPress admin.
* Rendering widget embeds on frontend pages where shortcode/block embeds are present.

What data is sent and when:
* When an admin opens the Yuzool Widgets builder page, the browser requests resources from `yuzool.com`.
* When a site visitor loads a page containing a Yuzool widget embed, the browser requests resources from `yuzool.com`.
* Requests may include technical metadata such as IP address, browser user agent, referrer, and requested widget URL parameters.
* Embedded widgets may use browser storage/cookies as part of widget behavior.

Terms and privacy:
* Policies (Terms and Privacy): `https://www.yuzool.com/policies`

== Frequently Asked Questions ==

= Does this require a Yuzool account? =

No. Basic embeds work without account login.

= Can I use this with Gutenberg? =

Yes. Use the **Yuzool Widget** block.

= Does this support custom widget links and snippet libraries? =

Yes. You can use saved snippet `key` values, direct `src` links, or widget `id`.

== Screenshots ==

1. Builder-first admin flow in Yuzool Widgets.
2. Snippet library and shortcode insertion workflow.

== Changelog ==

= 1.1.4 =
* Added explicit external services disclosure for Yuzool Widgets in readme (service usage, data flow, and policy links).

= 1.1.3 =
* Replaced direct `$_POST['snippet_code']` read with `filter_input()` flow to satisfy Plugin Checker input-sanitization checks.

= 1.1.2 =
* Escaped admin output and permission-denied strings for Plugin Checker compliance.
* Sanitized saved snippet HTML on input before storage.
* Hardened admin notice input handling.

= 1.1.1 =
* Builder-first admin page with embedded Widget Studio.
* Saved snippet library with shortcode keys.
* Top-level admin menu icon and widened builder panel.
* Gutenberg block support for snippet keys.

= 1.0.0 =
* Initial release.
* Shortcode + Gutenberg block.
* Admin settings page.
