Plugin Directory

Changeset 3369450


Ignore:
Timestamp:
09/29/2025 06:26:28 AM (6 months ago)
Author:
turboaddons
Message:

update the icon load issues and version release

Location:
header-footer-builder-for-elementor
Files:
40 added
5 edited

Legend:

Unmodified
Added
Removed
  • header-footer-builder-for-elementor/trunk/README.MD

    r3368816 r3369450  
    55Tested up to: 6.8
    66Requires PHP: 7.4
    7 Stable tag: 1.0.0
     7Stable tag: 1.0.1
    88License: GPLv3 
    99License URI: https://opensource.org/licenses/GPL-3.0 
    1010
    11 **Create custom header & footer in Elementor** easily with Header Footer Builder. Beginner-friendly, optimized & fully compatible with Elementor.
     11**Elementor Header & Footer Builder plugin** for WordPress & WooCommerce. Beginner-friendly, eCommerce-ready, optimized and fully compatible Plugin.
    1212
    1313== Description ==
     
    161161## Changelog
    162162
     163### Version 1.0.1
     164* Fixed: Icons (Font Awesome / Elementor icons) not displaying on frontend.
     165* Improved: Rendering logic for Elementor templates to ensure icons display correctly.
     166
    163167### Version 1.0.0
    164168* Initial release with header and footer builder functionality
  • header-footer-builder-for-elementor/trunk/header-footer-builder-for-elementor.php

    r3368800 r3369450  
    44 * Plugin URI: https://wp-turbo.com/header-footer-builder-for-elementor/
    55 * Description: Create and manage your website's header and footer sections with ease using Elementor and WooCommerce, ensuring a seamless design across your entire site.
    6  * Version: 1.0.0
     6 * Version: 1.0.1
    77 * Requires Plugins: elementor
    88 * Author: turbo addons
     
    102102        define( 'TAHEFOBU_HEADER_FOOTER_BUILDER_FOR_ELEMENTOR_PLUGIN_URL', trailingslashit( plugins_url( '/', __FILE__ ) ) );
    103103        define( 'TAHEFOBU_HEADER_FOOTER_BUILDER_FOR_ELEMENTOR_PLUGIN_PATH', trailingslashit( plugin_dir_path( __FILE__ ) ) );
    104         define( 'TAHEFOBU_HEADER_FOOTER_BUILDER_FOR_ELEMENTOR_PLUGIN_VERSION', '1.0.0' );
     104        define( 'TAHEFOBU_HEADER_FOOTER_BUILDER_FOR_ELEMENTOR_PLUGIN_VERSION', '1.0.1' );
    105105    }
    106106
     
    214214                false, // no file, just for inline use
    215215                [],
    216                 '1.0.0'
     216                '1.0.1'
    217217            );
    218218            wp_enqueue_style( 'tahefobu-frontend' );
  • header-footer-builder-for-elementor/trunk/header-footer-template/footer-builder/turbo-footer-render.php

    r3368800 r3369450  
    110110        if ( ! empty( $content ) ) {
    111111            echo '<div class="turbo-footer-template">';
    112                 // echo wp_kses_post( $content, tahefobu_hf_allowed_html() );
    113                 echo wp_kses( $content, tahefobu_hf_allowed_html() );
     112                // Elementor already escapes/sanitizes template content.
     113                // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
     114                echo $content;
    114115            echo '</div>';
    115116        }
    116117    }
    117118});
    118 
    119119
    120120/**
  • header-footer-builder-for-elementor/trunk/header-footer-template/header-builder/turbo-header-render.php

    r3368800 r3369450  
    6666
    6767            echo '<div id="tahefobu-header" class="' . esc_attr( implode( ' ', $classes ) ) . '" data-sticky="' . esc_attr( $sticky_attr ) . '" data-animation="' . esc_attr( $anim_attr ) . '">';
    68                 echo wp_kses( $content, tahefobu_hf_allowed_html() );
     68                // Elementor already escapes/sanitizes template content.
     69                // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
     70                echo $content;
    6971            echo '</div>';
    7072
  • header-footer-builder-for-elementor/trunk/helper/helper.php

    r3368800 r3369450  
    66if ( ! function_exists( 'tahefobu_hf_allowed_html' ) ) {
    77    /**
    8      * Allowed HTML for rendering Elementor template output safely (icons need SVG).
     8     * Allowed HTML for rendering Elementor template output safely (with icon support).
    99     */
    1010    function tahefobu_hf_allowed_html() {
    1111        $allowed = wp_kses_allowed_html( 'post' );
    1212
    13         // Allow Elementor icons (SVG)
     13        // ✅ Allow Elementor/FontAwesome <i> tags
     14        $allowed['i'] = [
     15            'class'       => true,
     16            'aria-hidden' => true,
     17            'data-*'      => true, // catch-all for Elementor’s dynamic data attributes
     18        ];
     19
     20        // ✅ Allow Elementor <span> wrappers
     21        $allowed['span'] = [
     22            'class'       => true,
     23            'aria-hidden' => true,
     24            'data-*'      => true,
     25        ];
     26
     27        // ✅ Allow SVG (used in Elementor icons)
    1428        $allowed['svg'] = [
    15             'class'       => true,
    16             'xmlns'       => true,
    17             'viewBox'     => true,
    18             'width'       => true,
    19             'height'      => true,
    20             'fill'        => true,
    21             'aria-hidden' => true,
    22             'role'        => true,
    23             'focusable'   => true,
     29            'class'        => true,
     30            'xmlns'        => true,
     31            'xmlns:xlink'  => true,
     32            'xlink'        => true,
     33            'viewBox'      => true,
     34            'width'        => true,
     35            'height'       => true,
     36            'fill'         => true,
     37            'stroke'       => true,
     38            'aria-hidden'  => true,
     39            'role'         => true,
     40            'focusable'    => true,
     41            'data-*'       => true,
    2442        ];
     43
     44        // ✅ Allow <path> inside SVG
    2545        $allowed['path'] = [
    2646            'd'              => true,
     
    3353        ];
    3454
    35         // Font Awesome/Eicons fallback
    36         $allowed['i'] = [
    37             'class'      => true,
    38             'aria-hidden' => true,
     55        // ✅ Allow <use> inside SVG for FA/Elementor icons
     56        $allowed['use'] = [
     57            'xlink:href' => true,
     58            'href'      => true,
    3959        ];
    4060
    41         // Elementor link attributes
     61        // ✅ Elementor lightbox attributes on <a>
    4262        if ( isset( $allowed['a'] ) ) {
    43             $allowed['a']['data-elementor-open-lightbox']     = true;
    44             $allowed['a']['data-elementor-lightbox-slideshow']= true;
    45             $allowed['a']['data-elementor-lightbox-title']    = true;
     63            $allowed['a']['data-elementor-open-lightbox']      = true;
     64            $allowed['a']['data-elementor-lightbox-slideshow'] = true;
     65            $allowed['a']['data-elementor-lightbox-title']     = true;
     66            $allowed['a']['data-*']                           = true;
    4667        }
    4768
    48         // Extended img attributes
     69        // ✅ Extended <img> attributes
    4970        $allowed['img'] = array_merge(
    5071            $allowed['img'] ?? [],
     
    5677                'loading'  => true,
    5778                'decoding' => true,
     79                'data-*'   => true,
    5880            ]
    5981        );
    60     /**
    61      * Filters the allowed HTML tags/attributes for Header Footer Builder templates.
    62      *
    63      * @param array $allowed The list of allowed HTML.
    64      */
     82
     83        /**
     84         * Filters the allowed HTML tags/attributes for Header Footer Builder templates.
     85         *
     86         * @param array $allowed The list of allowed HTML.
     87         */
    6588        return apply_filters( 'tahefobu_hf_allowed_html', $allowed );
    6689    }
Note: See TracChangeset for help on using the changeset viewer.