Plugin Directory

Changeset 3182862


Ignore:
Timestamp:
11/06/2024 06:20:52 AM (17 months ago)
Author:
Nikschavan
Message:

Update to version 1.6.46 from GitHub

Location:
header-footer-elementor
Files:
10 edited
1 copied

Legend:

Unmodified
Added
Removed
  • header-footer-elementor/tags/1.6.46/header-footer-elementor.php

    r3177331 r3182862  
    88 * Text Domain: header-footer-elementor
    99 * Domain Path: /languages
    10  * Version: 1.6.45
     10 * Version: 1.6.46
    1111 * Elementor tested up to: 3.25
    1212 * Elementor Pro tested up to: 3.25
     
    1515 */
    1616
    17 define( 'HFE_VER', '1.6.45' );
     17define( 'HFE_VER', '1.6.46' );
    1818define( 'HFE_FILE', __FILE__ );
    1919define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
  • header-footer-elementor/tags/1.6.46/inc/class-hfe-settings-page.php

    r3152577 r3182862  
    3333        add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_scripts' ] );
    3434        add_filter( 'plugin_action_links_' . HFE_PATH, [ $this, 'settings_link' ] );
     35
     36        if ( version_compare( get_bloginfo( 'version' ), '5.1.0', '>=' ) ) {
     37            add_filter( 'wp_check_filetype_and_ext', [ $this, 'real_mime_types_5_1_0' ], 10, 5 );
     38        } else {
     39            add_filter( 'wp_check_filetype_and_ext', [ $this, 'real_mime_types' ], 10, 4 );
     40        }
    3541    }
    3642
     
    851857        return array_merge( $custom, (array) $links );
    852858    }
     859
     860    /**
     861     * Different MIME type of different PHP version
     862     *
     863     * Filters the "real" file type of the given file.
     864     *
     865     * @since 1.2.9
     866     *
     867     * @param array  $defaults File data array containing 'ext', 'type', and
     868     *                                          'proper_filename' keys.
     869     * @param string $file                      Full path to the file.
     870     * @param string $filename                  The name of the file (may differ from $file due to
     871     *                                          $file being in a tmp directory).
     872     * @param array  $mimes                     Key is the file extension with value as the mime type.
     873     * @param string $real_mime                Real MIME type of the uploaded file.
     874     */
     875    public function real_mime_types_5_1_0( $defaults, $file, $filename, $mimes, $real_mime ) {
     876        return $this->real_mimes( $defaults, $filename, $file );
     877    }
     878
     879    /**
     880     * Different MIME type of different PHP version
     881     *
     882     * Filters the "real" file type of the given file.
     883     *
     884     * @since 1.2.9
     885     *
     886     * @param array  $defaults File data array containing 'ext', 'type', and
     887     *                                          'proper_filename' keys.
     888     * @param string $file                      Full path to the file.
     889     * @param string $filename                  The name of the file (may differ from $file due to
     890     *                                          $file being in a tmp directory).
     891     * @param array  $mimes                     Key is the file extension with value as the mime type.
     892     */
     893    public function real_mime_types( $defaults, $file, $filename, $mimes ) {
     894        return $this->real_mimes( $defaults, $filename, $file );
     895    }
     896
     897    /**
     898     * Real Mime Type
     899     *
     900     * This function checks if the file is an SVG and sanitizes it accordingly.
     901     * PHPCS rules are disabled selectively to allow necessary file operations that are essential for handling SVG files safely.
     902     *
     903     * @since 1.2.15
     904     *
     905     * @param array  $defaults File data array containing 'ext', 'type', and
     906     *                                          'proper_filename' keys.
     907     * @param string $filename                  The name of the file (may differ from $file due to
     908     *                                          $file being in a tmp directory).
     909     * @param string $file file content.
     910     */
     911    public function real_mimes( $defaults, $filename, $file ) {
     912
     913        if ( 'svg' === pathinfo( $filename, PATHINFO_EXTENSION ) ) {
     914            // Perform SVG sanitization using the sanitize_svg function.
     915            $svg_content           = file_get_contents( $file ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
     916            $sanitized_svg_content = $this->sanitize_svg( $svg_content );
     917            // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_read_file_put_contents
     918            file_put_contents( $file, $sanitized_svg_content );
     919            // phpcs:enable WordPress.WP.AlternativeFunctions.file_system_read_file_put_contents
     920
     921            // Update mime type and extension.
     922            $defaults['type'] = 'image/svg+xml';
     923            $defaults['ext']  = 'svg';
     924        }
     925
     926        return $defaults;
     927    }
     928    /**
     929     * Sanitizes SVG Code string.
     930     *
     931     * This function performs sanitization on SVG code to ensure that only safe tags and attributes are retained.
     932     * PHPCS rules are selectively disabled in specific areas to accommodate necessary file operations, compatibility with different PHP versions, and to enhance code readability:
     933     *
     934     * - File operations are required for reading and writing SVG content.
     935     * - PHP version compatibility is maintained by selectively disabling PHPCS rules for PHP version-specific functions.
     936     * - Code readability is enhanced by selectively disabling PHPCS rules for specific areas.
     937     *
     938     * @param string $original_content SVG code to sanitize.
     939     * @return string|bool
     940     * @since 1.0.7
     941     * @phpstan-ignore-next-line
     942     * */
     943    public function sanitize_svg( $original_content ) {
     944
     945        if ( ! $original_content ) {
     946            return '';
     947        }
     948
     949        // Define allowed tags and attributes.
     950        $allowed_tags = [
     951            'a',
     952            'circle',
     953            'clippath',
     954            'defs',
     955            'style',
     956            'desc',
     957            'ellipse',
     958            'fegaussianblur',
     959            'filter',
     960            'foreignobject',
     961            'g',
     962            'image',
     963            'line',
     964            'lineargradient',
     965            'marker',
     966            'mask',
     967            'metadata',
     968            'path',
     969            'pattern',
     970            'polygon',
     971            'polyline',
     972            'radialgradient',
     973            'rect',
     974            'stop',
     975            'svg',
     976            'switch',
     977            'symbol',
     978            'text',
     979            'textpath',
     980            'title',
     981            'tspan',
     982            'use',
     983        ];
     984
     985        $allowed_attributes = [
     986            'class',
     987            'clip-path',
     988            'clip-rule',
     989            'fill',
     990            'fill-opacity',
     991            'fill-rule',
     992            'filter',
     993            'id',
     994            'mask',
     995            'opacity',
     996            'stroke',
     997            'stroke-dasharray',
     998            'stroke-dashoffset',
     999            'stroke-linecap',
     1000            'stroke-linejoin',
     1001            'stroke-miterlimit',
     1002            'stroke-opacity',
     1003            'stroke-width',
     1004            'style',
     1005            'systemlanguage',
     1006            'transform',
     1007            'href',
     1008            'xlink:href',
     1009            'xlink:title',
     1010            'cx',
     1011            'cy',
     1012            'r',
     1013            'requiredfeatures',
     1014            'clippathunits',
     1015            'type',
     1016            'rx',
     1017            'ry',
     1018            'color-interpolation-filters',
     1019            'stddeviation',
     1020            'filterres',
     1021            'filterunits',
     1022            'height',
     1023            'primitiveunits',
     1024            'width',
     1025            'x',
     1026            'y',
     1027            'font-size',
     1028            'display',
     1029            'font-family',
     1030            'font-style',
     1031            'font-weight',
     1032            'text-anchor',
     1033            'marker-end',
     1034            'marker-mid',
     1035            'marker-start',
     1036            'x1',
     1037            'x2',
     1038            'y1',
     1039            'y2',
     1040            'gradienttransform',
     1041            'gradientunits',
     1042            'spreadmethod',
     1043            'markerheight',
     1044            'markerunits',
     1045            'markerwidth',
     1046            'orient',
     1047            'preserveaspectratio',
     1048            'refx',
     1049            'refy',
     1050            'viewbox',
     1051            'maskcontentunits',
     1052            'maskunits',
     1053            'd',
     1054            'patterncontentunits',
     1055            'patterntransform',
     1056            'patternunits',
     1057            'points',
     1058            'fx',
     1059            'fy',
     1060            'offset',
     1061            'stop-color',
     1062            'stop-opacity',
     1063            'xmlns',
     1064            'xmlns:se',
     1065            'xmlns:xlink',
     1066            'xml:space',
     1067            'method',
     1068            'spacing',
     1069            'startoffset',
     1070            'dx',
     1071            'dy',
     1072            'rotate',
     1073            'textlength',
     1074        ];
     1075
     1076        $is_encoded = false;
     1077
     1078        $needle = "\x1f\x8b\x08";
     1079        // phpcs:disable PHPCompatibility.ParameterValues.NewIconvMbstringCharsetDefault.NotSet
     1080        if ( function_exists( 'mb_strpos' ) ) {
     1081            $is_encoded = 0 === mb_strpos( $original_content, $needle );
     1082        } else {
     1083            $is_encoded = 0 === strpos( $original_content, $needle );
     1084        }
     1085        // phpcs:enable PHPCompatibility.ParameterValues.NewIconvMbstringCharsetDefault.NotSet
     1086
     1087        if ( $is_encoded ) {
     1088            $original_content = gzdecode( $original_content );
     1089            if ( false === $original_content ) {
     1090                return '';
     1091            }
     1092        }
     1093
     1094        // Strip php tags.
     1095        $content = preg_replace( '/<\?(=|php)(.+?)\?>/i', '', $original_content );
     1096        $content = preg_replace( '/<\?(.*)\?>/Us', '', $content );
     1097        $content = preg_replace( '/<\%(.*)\%>/Us', '', $content );
     1098
     1099        if ( ( false !== strpos( $content, '<?' ) ) || ( false !== strpos( $content, '<%' ) ) ) {
     1100            return '';
     1101        }
     1102
     1103        // Strip comments.
     1104        $content = preg_replace( '/<!--(.*)-->/Us', '', $content );
     1105        $content = preg_replace( '/\/\*(.*)\*\//Us', '', $content );
     1106
     1107        if ( ( false !== strpos( $content, '<!--' ) ) || ( false !== strpos( $content, '/*' ) ) ) {
     1108            return '';
     1109        }
     1110
     1111        // Strip line breaks.
     1112        $content = preg_replace( '/\r|\n/', '', $content );
     1113
     1114        // Find the start and end tags so we can cut out miscellaneous garbage.
     1115        $start = strpos( $content, '<svg' );
     1116        $end   = strrpos( $content, '</svg>' );
     1117        if ( false === $start || false === $end ) {
     1118            return '';
     1119        }
     1120
     1121        $content = substr( $content, $start, ( $end - $start + 6 ) );
     1122
     1123        // If the server's PHP version is 8 or up, make sure to disable the ability to load external entities.
     1124        $php_version_under_eight = version_compare( PHP_VERSION, '8.0.0', '<' );
     1125        if ( $php_version_under_eight ) {
     1126            // phpcs:disable Generic.PHP.DeprecatedFunctions.Deprecated
     1127            $libxml_disable_entity_loader = libxml_disable_entity_loader( true );
     1128            // phpcs:enable Generic.PHP.DeprecatedFunctions.Deprecated
     1129        }
     1130        // Suppress the errors.
     1131        $libxml_use_internal_errors = libxml_use_internal_errors( true );
     1132
     1133        // Create DOMDocument instance.
     1134        $dom                      = new \DOMDocument();
     1135        $dom->formatOutput        = false;
     1136        $dom->preserveWhiteSpace  = false;
     1137        $dom->strictErrorChecking = false;
     1138
     1139        $open_svg = ! ! $content ? $dom->loadXML( $content ) : false;
     1140        if ( ! $open_svg ) {
     1141            return '';
     1142        }
     1143
     1144        // Strip Doctype.
     1145        foreach ( $dom->childNodes as $child ) {
     1146            if ( XML_DOCUMENT_TYPE_NODE === $child->nodeType && ! ! $child->parentNode ) {
     1147                $child->parentNode->removeChild( $child );
     1148            }
     1149        }
     1150
     1151        // Sanitize elements.
     1152        $elements = $dom->getElementsByTagName( '*' );
     1153        for ( $index = $elements->length - 1; $index >= 0; $index-- ) {
     1154            $current_element = $elements->item( $index );
     1155            if ( ! in_array( strtolower( $current_element->tagName ), $allowed_tags, true ) ) {
     1156                $current_element->parentNode->removeChild( $current_element );
     1157                continue;
     1158            }
     1159
     1160            // Validate allowed attributes.
     1161            for ( $i = $current_element->attributes->length - 1; $i >= 0; $i-- ) {
     1162                $attr_name           = $current_element->attributes->item( $i )->name;
     1163                $attr_name_lowercase = strtolower( $attr_name );
     1164                if ( ! in_array( $attr_name_lowercase, $allowed_attributes ) &&
     1165                    ! preg_match( '/^aria-/', $attr_name_lowercase ) &&
     1166                    ! preg_match( '/^data-/', $attr_name_lowercase ) ) {
     1167                    $current_element->removeAttribute( $attr_name );
     1168                    continue;
     1169                }
     1170
     1171                $attr_value = $current_element->attributes->item( $i )->value;
     1172                if ( ! empty( $attr_value ) &&
     1173                    ( preg_match( '/^((https?|ftp|file):)?\/\//i', $attr_value ) ||
     1174                    preg_match( '/base64|data|(?:java)?script|alert\(|window\.|document/i', $attr_value ) ) ) {
     1175                    $current_element->removeAttribute( $attr_name );
     1176                    continue;
     1177                }
     1178            }
     1179
     1180            // Strip xlink:href.
     1181            $xlink_href = $current_element->getAttributeNS( 'http://www.w3.org/1999/xlink', 'href' );
     1182            if ( $xlink_href && strpos( $xlink_href, '#' ) !== 0 ) {
     1183                $current_element->removeAttributeNS( 'http://www.w3.org/1999/xlink', 'href' );
     1184            }
     1185
     1186            // Strip use tag with external references.
     1187            if ( strtolower( $current_element->tagName ) === 'use' ) {
     1188                $xlink_href = $current_element->getAttributeNS( 'http://www.w3.org/1999/xlink', 'href' );
     1189                if ( $current_element->parentNode && $xlink_href && strpos( $xlink_href, '#' ) !== 0 ) {
     1190                    $current_element->parentNode->removeChild( $current_element );
     1191                }
     1192            }
     1193        }
     1194
     1195        $sanitized = $dom->saveXML( $dom->documentElement, LIBXML_NOEMPTYTAG );
     1196
     1197        // Restore defaults.
     1198        if ( $php_version_under_eight && isset( $libxml_disable_entity_loader ) && function_exists( 'libxml_disable_entity_loader' ) ) {
     1199            // phpcs:disable Generic.PHP.DeprecatedFunctions.Deprecated
     1200            libxml_disable_entity_loader( $libxml_disable_entity_loader );
     1201            // phpcs:enable Generic.PHP.DeprecatedFunctions.Deprecated
     1202        }
     1203        libxml_use_internal_errors( $libxml_use_internal_errors );
     1204
     1205        return $sanitized;
     1206    }
    8531207}
    8541208
  • header-footer-elementor/tags/1.6.46/inc/widgets-manager/class-widgets-loader.php

    r3145118 r3182862  
    204204
    205205        return $file;
    206     }
     206    } 
    207207
    208208    /**
  • header-footer-elementor/tags/1.6.46/languages/header-footer-elementor.pot

    r3177331 r3182862  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Elementor Header & Footer Builder 1.6.45\n"
     5"Project-Id-Version: Elementor Header & Footer Builder 1.6.46\n"
    66"Report-Msgid-Bugs-To: "
    77"https://wordpress.org/support/plugin/header-footer-elementor\n"
    8 "POT-Creation-Date: 2024-10-28 15:46:42+00:00\n"
     8"POT-Creation-Date: 2024-11-05 08:26:02+00:00\n"
    99"MIME-Version: 1.0\n"
    1010"Content-Type: text/plain; charset=utf-8\n"
     
    123123msgstr ""
    124124
    125 #: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:281
     125#: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:287
    126126msgid "All Templates"
    127127msgstr ""
     
    305305msgstr ""
    306306
    307 #: inc/class-hfe-settings-page.php:65 inc/class-hfe-settings-page.php:710
     307#: inc/class-hfe-settings-page.php:71 inc/class-hfe-settings-page.php:716
    308308msgid "Activate"
    309309msgstr ""
    310310
    311 #: inc/class-hfe-settings-page.php:66 inc/class-hfe-settings-page.php:702
     311#: inc/class-hfe-settings-page.php:72 inc/class-hfe-settings-page.php:708
    312312msgid "Activated"
    313313msgstr ""
    314314
    315 #: inc/class-hfe-settings-page.php:67 inc/class-hfe-settings-page.php:699
     315#: inc/class-hfe-settings-page.php:73 inc/class-hfe-settings-page.php:705
    316316#: inc/widgets-manager/widgets/class-navigation-menu.php:1047
    317317#: inc/widgets-manager/widgets/class-navigation-menu.php:1230
     
    319319msgstr ""
    320320
    321 #: inc/class-hfe-settings-page.php:68
     321#: inc/class-hfe-settings-page.php:74
    322322msgid "Deactivate"
    323323msgstr ""
    324324
    325 #: inc/class-hfe-settings-page.php:69 inc/class-hfe-settings-page.php:707
     325#: inc/class-hfe-settings-page.php:75 inc/class-hfe-settings-page.php:713
    326326msgid "Inactive"
    327327msgstr ""
    328328
    329 #: inc/class-hfe-settings-page.php:70 inc/class-hfe-settings-page.php:723
     329#: inc/class-hfe-settings-page.php:76 inc/class-hfe-settings-page.php:729
    330330msgid "Install"
    331331msgstr ""
    332332
    333 #: inc/class-hfe-settings-page.php:71
     333#: inc/class-hfe-settings-page.php:77
    334334msgid "Theme Installed"
    335335msgstr ""
    336336
    337 #: inc/class-hfe-settings-page.php:72
     337#: inc/class-hfe-settings-page.php:78
    338338msgid "Plugin Installed"
    339339msgstr ""
    340340
    341 #: inc/class-hfe-settings-page.php:73
     341#: inc/class-hfe-settings-page.php:79
    342342msgid "Download"
    343343msgstr ""
    344344
    345 #: inc/class-hfe-settings-page.php:74
     345#: inc/class-hfe-settings-page.php:80
    346346msgid "Already Exists."
    347347msgstr ""
    348348
    349 #: inc/class-hfe-settings-page.php:75 inc/class-hfe-settings-page.php:728
     349#: inc/class-hfe-settings-page.php:81 inc/class-hfe-settings-page.php:734
    350350msgid "Visit Website"
    351351msgstr ""
    352352
    353 #: inc/class-hfe-settings-page.php:76
     353#: inc/class-hfe-settings-page.php:82
    354354msgid "Could not install. Please download from WordPress.org and install manually."
    355355msgstr ""
    356356
    357 #: inc/class-hfe-settings-page.php:77
     357#: inc/class-hfe-settings-page.php:83
    358358msgid "Your details are submitted successfully."
    359359msgstr ""
    360360
    361 #: inc/class-hfe-settings-page.php:78
     361#: inc/class-hfe-settings-page.php:84
    362362msgid "Encountered an error while performing your request."
    363363msgstr ""
    364364
    365 #: inc/class-hfe-settings-page.php:117
     365#: inc/class-hfe-settings-page.php:123
    366366msgid "Add Theme Support"
    367367msgstr ""
    368368
    369 #: inc/class-hfe-settings-page.php:133
     369#: inc/class-hfe-settings-page.php:139
    370370msgid ""
    371371"The Elementor Header & Footer Builder plugin need compatibility with your "
     
    376376msgstr ""
    377377
    378 #: inc/class-hfe-settings-page.php:152
     378#: inc/class-hfe-settings-page.php:158
    379379msgid " Method 1 (Recommended)"
    380380msgstr ""
    381381
    382 #: inc/class-hfe-settings-page.php:153
     382#: inc/class-hfe-settings-page.php:159
    383383msgid ""
    384384"This method replaces your theme's header (header.php) & footer (footer.php) "
     
    386386msgstr ""
    387387
    388 #: inc/class-hfe-settings-page.php:156
     388#: inc/class-hfe-settings-page.php:162
    389389msgid "Method 2"
    390390msgstr ""
    391391
    392 #: inc/class-hfe-settings-page.php:160
     392#: inc/class-hfe-settings-page.php:166
    393393msgid ""
    394394"This method hides your theme's header & footer template with CSS and "
     
    396396msgstr ""
    397397
    398 #: inc/class-hfe-settings-page.php:171
     398#: inc/class-hfe-settings-page.php:177
    399399#. translators: %s: URL to the plugin support page
    400400msgid ""
     
    404404msgstr ""
    405405
    406 #: inc/class-hfe-settings-page.php:196 inc/class-hfe-settings-page.php:197
    407 #: inc/class-hfe-settings-page.php:848
     406#: inc/class-hfe-settings-page.php:202 inc/class-hfe-settings-page.php:203
     407#: inc/class-hfe-settings-page.php:854
    408408msgid "Settings"
    409409msgstr ""
    410410
    411 #: inc/class-hfe-settings-page.php:205 inc/class-hfe-settings-page.php:206
    412 #: inc/class-hfe-settings-page.php:287
     411#: inc/class-hfe-settings-page.php:211 inc/class-hfe-settings-page.php:212
     412#: inc/class-hfe-settings-page.php:293
    413413msgid "About Us"
    414414msgstr ""
    415415
    416 #: inc/class-hfe-settings-page.php:223
     416#: inc/class-hfe-settings-page.php:229
    417417msgid "Elementor Header & Footer Builder "
    418418msgstr ""
    419419
    420 #: inc/class-hfe-settings-page.php:333
     420#: inc/class-hfe-settings-page.php:339
    421421#. translators: 1: Elementor, 2: Link to plugin review
    422422msgid ""
     
    425425msgstr ""
    426426
    427 #: inc/class-hfe-settings-page.php:376
     427#: inc/class-hfe-settings-page.php:382
    428428msgid "Create Impressive Header and Footer Designs"
    429429msgstr ""
    430430
    431 #: inc/class-hfe-settings-page.php:377
     431#: inc/class-hfe-settings-page.php:383
    432432msgid ""
    433433"Elementor Header & Footer Builder plugin lets you build impactful "
     
    436436msgstr ""
    437437
    438 #: inc/class-hfe-settings-page.php:391
     438#: inc/class-hfe-settings-page.php:397
    439439#. translators: %1$s and %3$s are opening anchor tags, and %2$s and %4$s is
    440440#. closing anchor tags.
     
    442442msgstr ""
    443443
    444 #: inc/class-hfe-settings-page.php:409
     444#: inc/class-hfe-settings-page.php:415
    445445msgid "Skip"
    446446msgstr ""
    447447
    448 #: inc/class-hfe-settings-page.php:427
     448#: inc/class-hfe-settings-page.php:433
    449449msgid "Beginner"
    450450msgstr ""
    451451
    452 #: inc/class-hfe-settings-page.php:428
     452#: inc/class-hfe-settings-page.php:434
    453453msgid "Intermediate"
    454454msgstr ""
    455455
    456 #: inc/class-hfe-settings-page.php:429
     456#: inc/class-hfe-settings-page.php:435
    457457msgid "Expert"
    458458msgstr ""
    459459
    460 #: inc/class-hfe-settings-page.php:431 inc/class-hfe-settings-page.php:440
     460#: inc/class-hfe-settings-page.php:437 inc/class-hfe-settings-page.php:446
    461461msgid "Field is required"
    462462msgstr ""
    463463
    464 #: inc/class-hfe-settings-page.php:432
     464#: inc/class-hfe-settings-page.php:438
    465465msgid "I'm a WordPress:"
    466466msgstr ""
    467467
    468 #: inc/class-hfe-settings-page.php:437
     468#: inc/class-hfe-settings-page.php:443
    469469msgid "Myself/My company"
    470470msgstr ""
    471471
    472 #: inc/class-hfe-settings-page.php:438
     472#: inc/class-hfe-settings-page.php:444
    473473msgid "My client"
    474474msgstr ""
    475475
    476 #: inc/class-hfe-settings-page.php:441
     476#: inc/class-hfe-settings-page.php:447
    477477msgid "I'm building website for:"
    478478msgstr ""
    479479
    480 #: inc/class-hfe-settings-page.php:464
     480#: inc/class-hfe-settings-page.php:470
    481481msgid "First name is required"
    482482msgstr ""
    483483
    484 #: inc/class-hfe-settings-page.php:465
     484#: inc/class-hfe-settings-page.php:471
    485485msgid "Your First Name"
    486486msgstr ""
    487487
    488 #: inc/class-hfe-settings-page.php:469
     488#: inc/class-hfe-settings-page.php:475
    489489msgid "Email address is required"
    490490msgstr ""
    491491
    492 #: inc/class-hfe-settings-page.php:470
     492#: inc/class-hfe-settings-page.php:476
    493493msgid "Your Work Email"
    494494msgstr ""
    495495
    496 #: inc/class-hfe-settings-page.php:474
     496#: inc/class-hfe-settings-page.php:480
    497497msgid "I agree to receive your newsletters and accept the data privacy statement."
    498498msgstr ""
    499499
    500 #: inc/class-hfe-settings-page.php:479
     500#: inc/class-hfe-settings-page.php:485
    501501msgid "Submit"
    502502msgstr ""
    503503
    504 #: inc/class-hfe-settings-page.php:536
     504#: inc/class-hfe-settings-page.php:542
    505505#. translators: %s: theme name
    506506msgid ""
     
    510510msgstr ""
    511511
    512 #: inc/class-hfe-settings-page.php:557
     512#: inc/class-hfe-settings-page.php:563
    513513msgid "Welcome to Elementor Header & Footer Builder!"
    514514msgstr ""
    515515
    516 #: inc/class-hfe-settings-page.php:559
     516#: inc/class-hfe-settings-page.php:565
    517517msgid ""
    518518"With this awesome plugin, experience the easiest way to create a customized "
     
    520520msgstr ""
    521521
    522 #: inc/class-hfe-settings-page.php:561
     522#: inc/class-hfe-settings-page.php:567
    523523msgid ""
    524524"Design beautiful layouts with simple drag & drop and display them at "
     
    529529msgstr ""
    530530
    531 #: inc/class-hfe-settings-page.php:563
     531#: inc/class-hfe-settings-page.php:569
    532532msgid ""
    533533"Trusted by more than 1+ Million users, Elementor Header & Footer Builder is "
     
    535535msgstr ""
    536536
    537 #: inc/class-hfe-settings-page.php:566
     537#: inc/class-hfe-settings-page.php:572
    538538#. translators: %s: theme name
    539539msgid ""
     
    542542msgstr ""
    543543
    544 #: inc/class-hfe-settings-page.php:572
     544#: inc/class-hfe-settings-page.php:578
    545545msgid "Team photo"
    546546msgstr ""
    547547
    548 #: inc/class-hfe-settings-page.php:574
     548#: inc/class-hfe-settings-page.php:580
    549549msgid "Brainstorm Force Team"
    550550msgstr ""
    551551
    552 #: inc/class-hfe-settings-page.php:619
     552#: inc/class-hfe-settings-page.php:625
    553553#. translators: %s - addon status label.
    554554msgid "%1$s %3$s %2$s"
    555555msgstr ""
    556556
    557 #: inc/class-hfe-settings-page.php:636
     557#: inc/class-hfe-settings-page.php:642
    558558#. translators: %s - addon status label.
    559559msgid "Status: %s"
    560560msgstr ""
    561561
    562 #: inc/class-hfe-settings-page.php:655
     562#: inc/class-hfe-settings-page.php:661
    563563msgid "WordPress.org"
    564564msgstr ""
    565565
    566 #: inc/class-hfe-settings-page.php:720
     566#: inc/class-hfe-settings-page.php:726
    567567msgid "Not Installed"
    568568msgstr ""
    569569
    570 #: inc/class-hfe-settings-page.php:767
     570#: inc/class-hfe-settings-page.php:773
    571571msgid "Starter Templates"
    572572msgstr ""
    573573
    574 #: inc/class-hfe-settings-page.php:768
     574#: inc/class-hfe-settings-page.php:774
    575575msgid ""
    576576"A popular templates plugin that provides an extensive library of "
     
    579579msgstr ""
    580580
    581 #: inc/class-hfe-settings-page.php:779
     581#: inc/class-hfe-settings-page.php:785
    582582msgid "Ultimate Addons for Elementor"
    583583msgstr ""
    584584
    585 #: inc/class-hfe-settings-page.php:780
     585#: inc/class-hfe-settings-page.php:786
    586586msgid ""
    587587"It’s a collection of 40+ unique, creative, and optimized Elementor widgets "
     
    590590msgstr ""
    591591
    592 #: inc/class-hfe-settings-page.php:847
     592#: inc/class-hfe-settings-page.php:853
    593593msgid "Go to HFE Settings page"
    594594msgstr ""
  • header-footer-elementor/tags/1.6.46/readme.txt

    r3177331 r3182862  
    66Requires PHP: 7.4
    77Tested up to: 6.7
    8 Stable tag: 1.6.45
     8Stable tag: 1.6.46
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    141141== Changelog ==
    142142
     143= 1.6.46 =
     144- Fix: This update addressed a security bug. Props to Wordfence and Francesco Carlucci for privately reporting it to our team. Please make sure you are using the latest version on your website.
     145
    143146= 1.6.45 =
    144147- Improvement: Enhanced the enqueue_scripts method with checks to ensure styles load safely.
     
    146149= 1.6.44 =
    147150- Improvement: Compatibility with latest Elementor and Elementor Pro 3.25 version.
    148 - Fix: This update addressed a security bug. Props to Wordfence for privately reporting it to our team. Please make sure you are using the latest version on your website.
     151- Fix: This update addressed a security bug. Props to Wordfence and Francesco Carlucci for privately reporting it to our team. Please make sure you are using the latest version on your website.
    149152
    150153= 1.6.43 =
  • header-footer-elementor/trunk/header-footer-elementor.php

    r3177331 r3182862  
    88 * Text Domain: header-footer-elementor
    99 * Domain Path: /languages
    10  * Version: 1.6.45
     10 * Version: 1.6.46
    1111 * Elementor tested up to: 3.25
    1212 * Elementor Pro tested up to: 3.25
     
    1515 */
    1616
    17 define( 'HFE_VER', '1.6.45' );
     17define( 'HFE_VER', '1.6.46' );
    1818define( 'HFE_FILE', __FILE__ );
    1919define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
  • header-footer-elementor/trunk/inc/class-hfe-settings-page.php

    r3152577 r3182862  
    3333        add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_scripts' ] );
    3434        add_filter( 'plugin_action_links_' . HFE_PATH, [ $this, 'settings_link' ] );
     35
     36        if ( version_compare( get_bloginfo( 'version' ), '5.1.0', '>=' ) ) {
     37            add_filter( 'wp_check_filetype_and_ext', [ $this, 'real_mime_types_5_1_0' ], 10, 5 );
     38        } else {
     39            add_filter( 'wp_check_filetype_and_ext', [ $this, 'real_mime_types' ], 10, 4 );
     40        }
    3541    }
    3642
     
    851857        return array_merge( $custom, (array) $links );
    852858    }
     859
     860    /**
     861     * Different MIME type of different PHP version
     862     *
     863     * Filters the "real" file type of the given file.
     864     *
     865     * @since 1.2.9
     866     *
     867     * @param array  $defaults File data array containing 'ext', 'type', and
     868     *                                          'proper_filename' keys.
     869     * @param string $file                      Full path to the file.
     870     * @param string $filename                  The name of the file (may differ from $file due to
     871     *                                          $file being in a tmp directory).
     872     * @param array  $mimes                     Key is the file extension with value as the mime type.
     873     * @param string $real_mime                Real MIME type of the uploaded file.
     874     */
     875    public function real_mime_types_5_1_0( $defaults, $file, $filename, $mimes, $real_mime ) {
     876        return $this->real_mimes( $defaults, $filename, $file );
     877    }
     878
     879    /**
     880     * Different MIME type of different PHP version
     881     *
     882     * Filters the "real" file type of the given file.
     883     *
     884     * @since 1.2.9
     885     *
     886     * @param array  $defaults File data array containing 'ext', 'type', and
     887     *                                          'proper_filename' keys.
     888     * @param string $file                      Full path to the file.
     889     * @param string $filename                  The name of the file (may differ from $file due to
     890     *                                          $file being in a tmp directory).
     891     * @param array  $mimes                     Key is the file extension with value as the mime type.
     892     */
     893    public function real_mime_types( $defaults, $file, $filename, $mimes ) {
     894        return $this->real_mimes( $defaults, $filename, $file );
     895    }
     896
     897    /**
     898     * Real Mime Type
     899     *
     900     * This function checks if the file is an SVG and sanitizes it accordingly.
     901     * PHPCS rules are disabled selectively to allow necessary file operations that are essential for handling SVG files safely.
     902     *
     903     * @since 1.2.15
     904     *
     905     * @param array  $defaults File data array containing 'ext', 'type', and
     906     *                                          'proper_filename' keys.
     907     * @param string $filename                  The name of the file (may differ from $file due to
     908     *                                          $file being in a tmp directory).
     909     * @param string $file file content.
     910     */
     911    public function real_mimes( $defaults, $filename, $file ) {
     912
     913        if ( 'svg' === pathinfo( $filename, PATHINFO_EXTENSION ) ) {
     914            // Perform SVG sanitization using the sanitize_svg function.
     915            $svg_content           = file_get_contents( $file ); // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
     916            $sanitized_svg_content = $this->sanitize_svg( $svg_content );
     917            // phpcs:disable WordPress.WP.AlternativeFunctions.file_system_read_file_put_contents
     918            file_put_contents( $file, $sanitized_svg_content );
     919            // phpcs:enable WordPress.WP.AlternativeFunctions.file_system_read_file_put_contents
     920
     921            // Update mime type and extension.
     922            $defaults['type'] = 'image/svg+xml';
     923            $defaults['ext']  = 'svg';
     924        }
     925
     926        return $defaults;
     927    }
     928    /**
     929     * Sanitizes SVG Code string.
     930     *
     931     * This function performs sanitization on SVG code to ensure that only safe tags and attributes are retained.
     932     * PHPCS rules are selectively disabled in specific areas to accommodate necessary file operations, compatibility with different PHP versions, and to enhance code readability:
     933     *
     934     * - File operations are required for reading and writing SVG content.
     935     * - PHP version compatibility is maintained by selectively disabling PHPCS rules for PHP version-specific functions.
     936     * - Code readability is enhanced by selectively disabling PHPCS rules for specific areas.
     937     *
     938     * @param string $original_content SVG code to sanitize.
     939     * @return string|bool
     940     * @since 1.0.7
     941     * @phpstan-ignore-next-line
     942     * */
     943    public function sanitize_svg( $original_content ) {
     944
     945        if ( ! $original_content ) {
     946            return '';
     947        }
     948
     949        // Define allowed tags and attributes.
     950        $allowed_tags = [
     951            'a',
     952            'circle',
     953            'clippath',
     954            'defs',
     955            'style',
     956            'desc',
     957            'ellipse',
     958            'fegaussianblur',
     959            'filter',
     960            'foreignobject',
     961            'g',
     962            'image',
     963            'line',
     964            'lineargradient',
     965            'marker',
     966            'mask',
     967            'metadata',
     968            'path',
     969            'pattern',
     970            'polygon',
     971            'polyline',
     972            'radialgradient',
     973            'rect',
     974            'stop',
     975            'svg',
     976            'switch',
     977            'symbol',
     978            'text',
     979            'textpath',
     980            'title',
     981            'tspan',
     982            'use',
     983        ];
     984
     985        $allowed_attributes = [
     986            'class',
     987            'clip-path',
     988            'clip-rule',
     989            'fill',
     990            'fill-opacity',
     991            'fill-rule',
     992            'filter',
     993            'id',
     994            'mask',
     995            'opacity',
     996            'stroke',
     997            'stroke-dasharray',
     998            'stroke-dashoffset',
     999            'stroke-linecap',
     1000            'stroke-linejoin',
     1001            'stroke-miterlimit',
     1002            'stroke-opacity',
     1003            'stroke-width',
     1004            'style',
     1005            'systemlanguage',
     1006            'transform',
     1007            'href',
     1008            'xlink:href',
     1009            'xlink:title',
     1010            'cx',
     1011            'cy',
     1012            'r',
     1013            'requiredfeatures',
     1014            'clippathunits',
     1015            'type',
     1016            'rx',
     1017            'ry',
     1018            'color-interpolation-filters',
     1019            'stddeviation',
     1020            'filterres',
     1021            'filterunits',
     1022            'height',
     1023            'primitiveunits',
     1024            'width',
     1025            'x',
     1026            'y',
     1027            'font-size',
     1028            'display',
     1029            'font-family',
     1030            'font-style',
     1031            'font-weight',
     1032            'text-anchor',
     1033            'marker-end',
     1034            'marker-mid',
     1035            'marker-start',
     1036            'x1',
     1037            'x2',
     1038            'y1',
     1039            'y2',
     1040            'gradienttransform',
     1041            'gradientunits',
     1042            'spreadmethod',
     1043            'markerheight',
     1044            'markerunits',
     1045            'markerwidth',
     1046            'orient',
     1047            'preserveaspectratio',
     1048            'refx',
     1049            'refy',
     1050            'viewbox',
     1051            'maskcontentunits',
     1052            'maskunits',
     1053            'd',
     1054            'patterncontentunits',
     1055            'patterntransform',
     1056            'patternunits',
     1057            'points',
     1058            'fx',
     1059            'fy',
     1060            'offset',
     1061            'stop-color',
     1062            'stop-opacity',
     1063            'xmlns',
     1064            'xmlns:se',
     1065            'xmlns:xlink',
     1066            'xml:space',
     1067            'method',
     1068            'spacing',
     1069            'startoffset',
     1070            'dx',
     1071            'dy',
     1072            'rotate',
     1073            'textlength',
     1074        ];
     1075
     1076        $is_encoded = false;
     1077
     1078        $needle = "\x1f\x8b\x08";
     1079        // phpcs:disable PHPCompatibility.ParameterValues.NewIconvMbstringCharsetDefault.NotSet
     1080        if ( function_exists( 'mb_strpos' ) ) {
     1081            $is_encoded = 0 === mb_strpos( $original_content, $needle );
     1082        } else {
     1083            $is_encoded = 0 === strpos( $original_content, $needle );
     1084        }
     1085        // phpcs:enable PHPCompatibility.ParameterValues.NewIconvMbstringCharsetDefault.NotSet
     1086
     1087        if ( $is_encoded ) {
     1088            $original_content = gzdecode( $original_content );
     1089            if ( false === $original_content ) {
     1090                return '';
     1091            }
     1092        }
     1093
     1094        // Strip php tags.
     1095        $content = preg_replace( '/<\?(=|php)(.+?)\?>/i', '', $original_content );
     1096        $content = preg_replace( '/<\?(.*)\?>/Us', '', $content );
     1097        $content = preg_replace( '/<\%(.*)\%>/Us', '', $content );
     1098
     1099        if ( ( false !== strpos( $content, '<?' ) ) || ( false !== strpos( $content, '<%' ) ) ) {
     1100            return '';
     1101        }
     1102
     1103        // Strip comments.
     1104        $content = preg_replace( '/<!--(.*)-->/Us', '', $content );
     1105        $content = preg_replace( '/\/\*(.*)\*\//Us', '', $content );
     1106
     1107        if ( ( false !== strpos( $content, '<!--' ) ) || ( false !== strpos( $content, '/*' ) ) ) {
     1108            return '';
     1109        }
     1110
     1111        // Strip line breaks.
     1112        $content = preg_replace( '/\r|\n/', '', $content );
     1113
     1114        // Find the start and end tags so we can cut out miscellaneous garbage.
     1115        $start = strpos( $content, '<svg' );
     1116        $end   = strrpos( $content, '</svg>' );
     1117        if ( false === $start || false === $end ) {
     1118            return '';
     1119        }
     1120
     1121        $content = substr( $content, $start, ( $end - $start + 6 ) );
     1122
     1123        // If the server's PHP version is 8 or up, make sure to disable the ability to load external entities.
     1124        $php_version_under_eight = version_compare( PHP_VERSION, '8.0.0', '<' );
     1125        if ( $php_version_under_eight ) {
     1126            // phpcs:disable Generic.PHP.DeprecatedFunctions.Deprecated
     1127            $libxml_disable_entity_loader = libxml_disable_entity_loader( true );
     1128            // phpcs:enable Generic.PHP.DeprecatedFunctions.Deprecated
     1129        }
     1130        // Suppress the errors.
     1131        $libxml_use_internal_errors = libxml_use_internal_errors( true );
     1132
     1133        // Create DOMDocument instance.
     1134        $dom                      = new \DOMDocument();
     1135        $dom->formatOutput        = false;
     1136        $dom->preserveWhiteSpace  = false;
     1137        $dom->strictErrorChecking = false;
     1138
     1139        $open_svg = ! ! $content ? $dom->loadXML( $content ) : false;
     1140        if ( ! $open_svg ) {
     1141            return '';
     1142        }
     1143
     1144        // Strip Doctype.
     1145        foreach ( $dom->childNodes as $child ) {
     1146            if ( XML_DOCUMENT_TYPE_NODE === $child->nodeType && ! ! $child->parentNode ) {
     1147                $child->parentNode->removeChild( $child );
     1148            }
     1149        }
     1150
     1151        // Sanitize elements.
     1152        $elements = $dom->getElementsByTagName( '*' );
     1153        for ( $index = $elements->length - 1; $index >= 0; $index-- ) {
     1154            $current_element = $elements->item( $index );
     1155            if ( ! in_array( strtolower( $current_element->tagName ), $allowed_tags, true ) ) {
     1156                $current_element->parentNode->removeChild( $current_element );
     1157                continue;
     1158            }
     1159
     1160            // Validate allowed attributes.
     1161            for ( $i = $current_element->attributes->length - 1; $i >= 0; $i-- ) {
     1162                $attr_name           = $current_element->attributes->item( $i )->name;
     1163                $attr_name_lowercase = strtolower( $attr_name );
     1164                if ( ! in_array( $attr_name_lowercase, $allowed_attributes ) &&
     1165                    ! preg_match( '/^aria-/', $attr_name_lowercase ) &&
     1166                    ! preg_match( '/^data-/', $attr_name_lowercase ) ) {
     1167                    $current_element->removeAttribute( $attr_name );
     1168                    continue;
     1169                }
     1170
     1171                $attr_value = $current_element->attributes->item( $i )->value;
     1172                if ( ! empty( $attr_value ) &&
     1173                    ( preg_match( '/^((https?|ftp|file):)?\/\//i', $attr_value ) ||
     1174                    preg_match( '/base64|data|(?:java)?script|alert\(|window\.|document/i', $attr_value ) ) ) {
     1175                    $current_element->removeAttribute( $attr_name );
     1176                    continue;
     1177                }
     1178            }
     1179
     1180            // Strip xlink:href.
     1181            $xlink_href = $current_element->getAttributeNS( 'http://www.w3.org/1999/xlink', 'href' );
     1182            if ( $xlink_href && strpos( $xlink_href, '#' ) !== 0 ) {
     1183                $current_element->removeAttributeNS( 'http://www.w3.org/1999/xlink', 'href' );
     1184            }
     1185
     1186            // Strip use tag with external references.
     1187            if ( strtolower( $current_element->tagName ) === 'use' ) {
     1188                $xlink_href = $current_element->getAttributeNS( 'http://www.w3.org/1999/xlink', 'href' );
     1189                if ( $current_element->parentNode && $xlink_href && strpos( $xlink_href, '#' ) !== 0 ) {
     1190                    $current_element->parentNode->removeChild( $current_element );
     1191                }
     1192            }
     1193        }
     1194
     1195        $sanitized = $dom->saveXML( $dom->documentElement, LIBXML_NOEMPTYTAG );
     1196
     1197        // Restore defaults.
     1198        if ( $php_version_under_eight && isset( $libxml_disable_entity_loader ) && function_exists( 'libxml_disable_entity_loader' ) ) {
     1199            // phpcs:disable Generic.PHP.DeprecatedFunctions.Deprecated
     1200            libxml_disable_entity_loader( $libxml_disable_entity_loader );
     1201            // phpcs:enable Generic.PHP.DeprecatedFunctions.Deprecated
     1202        }
     1203        libxml_use_internal_errors( $libxml_use_internal_errors );
     1204
     1205        return $sanitized;
     1206    }
    8531207}
    8541208
  • header-footer-elementor/trunk/inc/widgets-manager/class-widgets-loader.php

    r3145118 r3182862  
    204204
    205205        return $file;
    206     }
     206    } 
    207207
    208208    /**
  • header-footer-elementor/trunk/languages/header-footer-elementor.pot

    r3177331 r3182862  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Elementor Header & Footer Builder 1.6.45\n"
     5"Project-Id-Version: Elementor Header & Footer Builder 1.6.46\n"
    66"Report-Msgid-Bugs-To: "
    77"https://wordpress.org/support/plugin/header-footer-elementor\n"
    8 "POT-Creation-Date: 2024-10-28 15:46:42+00:00\n"
     8"POT-Creation-Date: 2024-11-05 08:26:02+00:00\n"
    99"MIME-Version: 1.0\n"
    1010"Content-Type: text/plain; charset=utf-8\n"
     
    123123msgstr ""
    124124
    125 #: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:281
     125#: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:287
    126126msgid "All Templates"
    127127msgstr ""
     
    305305msgstr ""
    306306
    307 #: inc/class-hfe-settings-page.php:65 inc/class-hfe-settings-page.php:710
     307#: inc/class-hfe-settings-page.php:71 inc/class-hfe-settings-page.php:716
    308308msgid "Activate"
    309309msgstr ""
    310310
    311 #: inc/class-hfe-settings-page.php:66 inc/class-hfe-settings-page.php:702
     311#: inc/class-hfe-settings-page.php:72 inc/class-hfe-settings-page.php:708
    312312msgid "Activated"
    313313msgstr ""
    314314
    315 #: inc/class-hfe-settings-page.php:67 inc/class-hfe-settings-page.php:699
     315#: inc/class-hfe-settings-page.php:73 inc/class-hfe-settings-page.php:705
    316316#: inc/widgets-manager/widgets/class-navigation-menu.php:1047
    317317#: inc/widgets-manager/widgets/class-navigation-menu.php:1230
     
    319319msgstr ""
    320320
    321 #: inc/class-hfe-settings-page.php:68
     321#: inc/class-hfe-settings-page.php:74
    322322msgid "Deactivate"
    323323msgstr ""
    324324
    325 #: inc/class-hfe-settings-page.php:69 inc/class-hfe-settings-page.php:707
     325#: inc/class-hfe-settings-page.php:75 inc/class-hfe-settings-page.php:713
    326326msgid "Inactive"
    327327msgstr ""
    328328
    329 #: inc/class-hfe-settings-page.php:70 inc/class-hfe-settings-page.php:723
     329#: inc/class-hfe-settings-page.php:76 inc/class-hfe-settings-page.php:729
    330330msgid "Install"
    331331msgstr ""
    332332
    333 #: inc/class-hfe-settings-page.php:71
     333#: inc/class-hfe-settings-page.php:77
    334334msgid "Theme Installed"
    335335msgstr ""
    336336
    337 #: inc/class-hfe-settings-page.php:72
     337#: inc/class-hfe-settings-page.php:78
    338338msgid "Plugin Installed"
    339339msgstr ""
    340340
    341 #: inc/class-hfe-settings-page.php:73
     341#: inc/class-hfe-settings-page.php:79
    342342msgid "Download"
    343343msgstr ""
    344344
    345 #: inc/class-hfe-settings-page.php:74
     345#: inc/class-hfe-settings-page.php:80
    346346msgid "Already Exists."
    347347msgstr ""
    348348
    349 #: inc/class-hfe-settings-page.php:75 inc/class-hfe-settings-page.php:728
     349#: inc/class-hfe-settings-page.php:81 inc/class-hfe-settings-page.php:734
    350350msgid "Visit Website"
    351351msgstr ""
    352352
    353 #: inc/class-hfe-settings-page.php:76
     353#: inc/class-hfe-settings-page.php:82
    354354msgid "Could not install. Please download from WordPress.org and install manually."
    355355msgstr ""
    356356
    357 #: inc/class-hfe-settings-page.php:77
     357#: inc/class-hfe-settings-page.php:83
    358358msgid "Your details are submitted successfully."
    359359msgstr ""
    360360
    361 #: inc/class-hfe-settings-page.php:78
     361#: inc/class-hfe-settings-page.php:84
    362362msgid "Encountered an error while performing your request."
    363363msgstr ""
    364364
    365 #: inc/class-hfe-settings-page.php:117
     365#: inc/class-hfe-settings-page.php:123
    366366msgid "Add Theme Support"
    367367msgstr ""
    368368
    369 #: inc/class-hfe-settings-page.php:133
     369#: inc/class-hfe-settings-page.php:139
    370370msgid ""
    371371"The Elementor Header & Footer Builder plugin need compatibility with your "
     
    376376msgstr ""
    377377
    378 #: inc/class-hfe-settings-page.php:152
     378#: inc/class-hfe-settings-page.php:158
    379379msgid " Method 1 (Recommended)"
    380380msgstr ""
    381381
    382 #: inc/class-hfe-settings-page.php:153
     382#: inc/class-hfe-settings-page.php:159
    383383msgid ""
    384384"This method replaces your theme's header (header.php) & footer (footer.php) "
     
    386386msgstr ""
    387387
    388 #: inc/class-hfe-settings-page.php:156
     388#: inc/class-hfe-settings-page.php:162
    389389msgid "Method 2"
    390390msgstr ""
    391391
    392 #: inc/class-hfe-settings-page.php:160
     392#: inc/class-hfe-settings-page.php:166
    393393msgid ""
    394394"This method hides your theme's header & footer template with CSS and "
     
    396396msgstr ""
    397397
    398 #: inc/class-hfe-settings-page.php:171
     398#: inc/class-hfe-settings-page.php:177
    399399#. translators: %s: URL to the plugin support page
    400400msgid ""
     
    404404msgstr ""
    405405
    406 #: inc/class-hfe-settings-page.php:196 inc/class-hfe-settings-page.php:197
    407 #: inc/class-hfe-settings-page.php:848
     406#: inc/class-hfe-settings-page.php:202 inc/class-hfe-settings-page.php:203
     407#: inc/class-hfe-settings-page.php:854
    408408msgid "Settings"
    409409msgstr ""
    410410
    411 #: inc/class-hfe-settings-page.php:205 inc/class-hfe-settings-page.php:206
    412 #: inc/class-hfe-settings-page.php:287
     411#: inc/class-hfe-settings-page.php:211 inc/class-hfe-settings-page.php:212
     412#: inc/class-hfe-settings-page.php:293
    413413msgid "About Us"
    414414msgstr ""
    415415
    416 #: inc/class-hfe-settings-page.php:223
     416#: inc/class-hfe-settings-page.php:229
    417417msgid "Elementor Header & Footer Builder "
    418418msgstr ""
    419419
    420 #: inc/class-hfe-settings-page.php:333
     420#: inc/class-hfe-settings-page.php:339
    421421#. translators: 1: Elementor, 2: Link to plugin review
    422422msgid ""
     
    425425msgstr ""
    426426
    427 #: inc/class-hfe-settings-page.php:376
     427#: inc/class-hfe-settings-page.php:382
    428428msgid "Create Impressive Header and Footer Designs"
    429429msgstr ""
    430430
    431 #: inc/class-hfe-settings-page.php:377
     431#: inc/class-hfe-settings-page.php:383
    432432msgid ""
    433433"Elementor Header & Footer Builder plugin lets you build impactful "
     
    436436msgstr ""
    437437
    438 #: inc/class-hfe-settings-page.php:391
     438#: inc/class-hfe-settings-page.php:397
    439439#. translators: %1$s and %3$s are opening anchor tags, and %2$s and %4$s is
    440440#. closing anchor tags.
     
    442442msgstr ""
    443443
    444 #: inc/class-hfe-settings-page.php:409
     444#: inc/class-hfe-settings-page.php:415
    445445msgid "Skip"
    446446msgstr ""
    447447
    448 #: inc/class-hfe-settings-page.php:427
     448#: inc/class-hfe-settings-page.php:433
    449449msgid "Beginner"
    450450msgstr ""
    451451
    452 #: inc/class-hfe-settings-page.php:428
     452#: inc/class-hfe-settings-page.php:434
    453453msgid "Intermediate"
    454454msgstr ""
    455455
    456 #: inc/class-hfe-settings-page.php:429
     456#: inc/class-hfe-settings-page.php:435
    457457msgid "Expert"
    458458msgstr ""
    459459
    460 #: inc/class-hfe-settings-page.php:431 inc/class-hfe-settings-page.php:440
     460#: inc/class-hfe-settings-page.php:437 inc/class-hfe-settings-page.php:446
    461461msgid "Field is required"
    462462msgstr ""
    463463
    464 #: inc/class-hfe-settings-page.php:432
     464#: inc/class-hfe-settings-page.php:438
    465465msgid "I'm a WordPress:"
    466466msgstr ""
    467467
    468 #: inc/class-hfe-settings-page.php:437
     468#: inc/class-hfe-settings-page.php:443
    469469msgid "Myself/My company"
    470470msgstr ""
    471471
    472 #: inc/class-hfe-settings-page.php:438
     472#: inc/class-hfe-settings-page.php:444
    473473msgid "My client"
    474474msgstr ""
    475475
    476 #: inc/class-hfe-settings-page.php:441
     476#: inc/class-hfe-settings-page.php:447
    477477msgid "I'm building website for:"
    478478msgstr ""
    479479
    480 #: inc/class-hfe-settings-page.php:464
     480#: inc/class-hfe-settings-page.php:470
    481481msgid "First name is required"
    482482msgstr ""
    483483
    484 #: inc/class-hfe-settings-page.php:465
     484#: inc/class-hfe-settings-page.php:471
    485485msgid "Your First Name"
    486486msgstr ""
    487487
    488 #: inc/class-hfe-settings-page.php:469
     488#: inc/class-hfe-settings-page.php:475
    489489msgid "Email address is required"
    490490msgstr ""
    491491
    492 #: inc/class-hfe-settings-page.php:470
     492#: inc/class-hfe-settings-page.php:476
    493493msgid "Your Work Email"
    494494msgstr ""
    495495
    496 #: inc/class-hfe-settings-page.php:474
     496#: inc/class-hfe-settings-page.php:480
    497497msgid "I agree to receive your newsletters and accept the data privacy statement."
    498498msgstr ""
    499499
    500 #: inc/class-hfe-settings-page.php:479
     500#: inc/class-hfe-settings-page.php:485
    501501msgid "Submit"
    502502msgstr ""
    503503
    504 #: inc/class-hfe-settings-page.php:536
     504#: inc/class-hfe-settings-page.php:542
    505505#. translators: %s: theme name
    506506msgid ""
     
    510510msgstr ""
    511511
    512 #: inc/class-hfe-settings-page.php:557
     512#: inc/class-hfe-settings-page.php:563
    513513msgid "Welcome to Elementor Header & Footer Builder!"
    514514msgstr ""
    515515
    516 #: inc/class-hfe-settings-page.php:559
     516#: inc/class-hfe-settings-page.php:565
    517517msgid ""
    518518"With this awesome plugin, experience the easiest way to create a customized "
     
    520520msgstr ""
    521521
    522 #: inc/class-hfe-settings-page.php:561
     522#: inc/class-hfe-settings-page.php:567
    523523msgid ""
    524524"Design beautiful layouts with simple drag & drop and display them at "
     
    529529msgstr ""
    530530
    531 #: inc/class-hfe-settings-page.php:563
     531#: inc/class-hfe-settings-page.php:569
    532532msgid ""
    533533"Trusted by more than 1+ Million users, Elementor Header & Footer Builder is "
     
    535535msgstr ""
    536536
    537 #: inc/class-hfe-settings-page.php:566
     537#: inc/class-hfe-settings-page.php:572
    538538#. translators: %s: theme name
    539539msgid ""
     
    542542msgstr ""
    543543
    544 #: inc/class-hfe-settings-page.php:572
     544#: inc/class-hfe-settings-page.php:578
    545545msgid "Team photo"
    546546msgstr ""
    547547
    548 #: inc/class-hfe-settings-page.php:574
     548#: inc/class-hfe-settings-page.php:580
    549549msgid "Brainstorm Force Team"
    550550msgstr ""
    551551
    552 #: inc/class-hfe-settings-page.php:619
     552#: inc/class-hfe-settings-page.php:625
    553553#. translators: %s - addon status label.
    554554msgid "%1$s %3$s %2$s"
    555555msgstr ""
    556556
    557 #: inc/class-hfe-settings-page.php:636
     557#: inc/class-hfe-settings-page.php:642
    558558#. translators: %s - addon status label.
    559559msgid "Status: %s"
    560560msgstr ""
    561561
    562 #: inc/class-hfe-settings-page.php:655
     562#: inc/class-hfe-settings-page.php:661
    563563msgid "WordPress.org"
    564564msgstr ""
    565565
    566 #: inc/class-hfe-settings-page.php:720
     566#: inc/class-hfe-settings-page.php:726
    567567msgid "Not Installed"
    568568msgstr ""
    569569
    570 #: inc/class-hfe-settings-page.php:767
     570#: inc/class-hfe-settings-page.php:773
    571571msgid "Starter Templates"
    572572msgstr ""
    573573
    574 #: inc/class-hfe-settings-page.php:768
     574#: inc/class-hfe-settings-page.php:774
    575575msgid ""
    576576"A popular templates plugin that provides an extensive library of "
     
    579579msgstr ""
    580580
    581 #: inc/class-hfe-settings-page.php:779
     581#: inc/class-hfe-settings-page.php:785
    582582msgid "Ultimate Addons for Elementor"
    583583msgstr ""
    584584
    585 #: inc/class-hfe-settings-page.php:780
     585#: inc/class-hfe-settings-page.php:786
    586586msgid ""
    587587"It’s a collection of 40+ unique, creative, and optimized Elementor widgets "
     
    590590msgstr ""
    591591
    592 #: inc/class-hfe-settings-page.php:847
     592#: inc/class-hfe-settings-page.php:853
    593593msgid "Go to HFE Settings page"
    594594msgstr ""
  • header-footer-elementor/trunk/readme.txt

    r3177331 r3182862  
    66Requires PHP: 7.4
    77Tested up to: 6.7
    8 Stable tag: 1.6.45
     8Stable tag: 1.6.46
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    141141== Changelog ==
    142142
     143= 1.6.46 =
     144- Fix: This update addressed a security bug. Props to Wordfence and Francesco Carlucci for privately reporting it to our team. Please make sure you are using the latest version on your website.
     145
    143146= 1.6.45 =
    144147- Improvement: Enhanced the enqueue_scripts method with checks to ensure styles load safely.
     
    146149= 1.6.44 =
    147150- Improvement: Compatibility with latest Elementor and Elementor Pro 3.25 version.
    148 - Fix: This update addressed a security bug. Props to Wordfence for privately reporting it to our team. Please make sure you are using the latest version on your website.
     151- Fix: This update addressed a security bug. Props to Wordfence and Francesco Carlucci for privately reporting it to our team. Please make sure you are using the latest version on your website.
    149152
    150153= 1.6.43 =
Note: See TracChangeset for help on using the changeset viewer.