=== AppsFruit Elementor Embed ===
Contributors: appsfruit
Tags: elementor, embed, shortcode, templates, gutenberg
Requires at least: 5.8
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.5
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: appsfruit-embed-for-elementor
Domain Path: /languages

Embed Elementor pages, templates, and sections anywhere using shortcodes or Gutenberg blocks with conditional display options.

== Description ==

AppsFruit Elementor Embed allows you to embed Elementor pages, templates, and global sections anywhere on your site using simple shortcodes or Gutenberg blocks with advanced conditional display options.

= Key Features =

* **Embed Anywhere**: Insert Elementor templates using simple shortcodes or Gutenberg blocks
* **Conditional Display**: Show templates based on device (mobile/desktop), user role, or post type
* **Custom Post Type**: Dedicated AEFE Templates post type with full Elementor support
* **Organization**: Built-in categories and tags for template management
* **Quick Copy**: One-click shortcode copying from admin interface
* **Global Sync**: Update once, reflect everywhere
* **Gutenberg Block**: Visual template insertion without shortcodes
* **Developer Friendly**: Extensive hooks and filters for customization
* **Secure & Lightweight**: Follows WordPress coding standards

= Requirements =

* WordPress 5.8 or higher
* PHP 7.4 or higher
* Elementor (free version) installed and activated

= Basic Usage =

`[aefe_embed id="123"]`

Replace `123` with your template ID.

= Conditional Display =

**Device-Specific Display:**
`[aefe_embed id="123" device="mobile"]`
`[aefe_embed id="123" device="desktop"]`

**Role-Based Display:**
`[aefe_embed id="123" role="administrator"]`
`[aefe_embed id="123" role="editor|subscriber"]`

**Post Type Specific:**
`[aefe_embed id="123" post_type="page"]`
`[aefe_embed id="123" post_type="post|product"]`

**Combined Conditions:**
`[aefe_embed id="123" device="mobile" role="subscriber" post_type="post"]`

= Developer Hooks =

The plugin provides several hooks and filters for developers:

* `aefe_shortcode_atts` - Modify shortcode attributes
* `aefe_should_display` - Add custom display conditions
* `aefe_should_render_template` - Prevent template rendering
* `aefe_template_content` - Modify template output
* `aefe_before_render_template` - Action before rendering
* `aefe_after_render_template` - Action after rendering

== Installation ==

1. Upload the `appsfruit-elementor-embed` folder to `/wp-content/plugins/`
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Make sure Elementor is installed and activated
4. Start creating AEFE Templates!

== Frequently Asked Questions ==

= Can I use this with Elementor Free? =

Yes! This plugin works with both Elementor Free and Elementor Pro.

= Will templates update everywhere when I edit them? =

Yes! Templates are dynamically rendered, so any changes you make will automatically appear everywhere the template is embedded.

= Can I embed regular WordPress posts/pages? =

Yes! While the plugin is designed for AEFE Templates, you can embed any post or page created with Elementor by using its ID in the shortcode.

= Does this work with page builders other than Elementor? =

The plugin is specifically designed for Elementor. For non-Elementor content, it will fall back to displaying the regular post content.

= Can I use multiple conditions in one shortcode? =

Yes! You can combine device, role, and post_type conditions in a single shortcode.

== Screenshots ==

1. AEFE Templates admin list with shortcode column
2. Template editor with Elementor
3. Shortcode meta box in sidebar
4. Gutenberg block for inserting templates
5. Conditional display options

== Changelog ==

= 1.0.4 =
* Security: set `publicly_queryable` to `false` on the `aefe_template` post type to prevent direct URL access exposing raw template content.
* Fixed `template_include()` always returning the custom template for the post type regardless of whether Elementor is active.

= 1.0.3 =
* Fixed Elementor frontend JavaScript not loading on pages not built with Elementor, causing JS-dependent widgets (sliders, tabs, accordions) to not function when embedded via shortcode or Gutenberg block.

= 1.0.2 =
* Fixed version constant out of sync with plugin header.

= 1.0.1 =
* Fixed shortcode displaying as raw text due to init timing with Elementor.
* Fixed fatal PHP error when Elementor document is null.
* Fixed missing Elementor stylesheet for embedded templates.
* Fixed empty output in admin-AJAX and REST API contexts.
* Fixed unquoted shortcode `id` attribute in admin column.

= 1.0.0 =
* Initial release
* Custom post type for AEFE Templates
* Shortcode support with conditional attributes
* Gutenberg block integration
* Categories and tags for organization
* Quick copy shortcode functionality
* Developer hooks and filters
* Comprehensive documentation

== Upgrade Notice ==

= 1.0.0 =
Initial release of AppsFruit Elementor Embed.
