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