Changeset 3182862
- Timestamp:
- 11/06/2024 06:20:52 AM (17 months ago)
- Location:
- header-footer-elementor
- Files:
-
- 10 edited
- 1 copied
-
tags/1.6.46 (copied) (copied from header-footer-elementor/trunk)
-
tags/1.6.46/header-footer-elementor.php (modified) (2 diffs)
-
tags/1.6.46/inc/class-hfe-settings-page.php (modified) (2 diffs)
-
tags/1.6.46/inc/widgets-manager/class-widgets-loader.php (modified) (1 diff)
-
tags/1.6.46/languages/header-footer-elementor.pot (modified) (18 diffs)
-
tags/1.6.46/readme.txt (modified) (3 diffs)
-
trunk/header-footer-elementor.php (modified) (2 diffs)
-
trunk/inc/class-hfe-settings-page.php (modified) (2 diffs)
-
trunk/inc/widgets-manager/class-widgets-loader.php (modified) (1 diff)
-
trunk/languages/header-footer-elementor.pot (modified) (18 diffs)
-
trunk/readme.txt (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
header-footer-elementor/tags/1.6.46/header-footer-elementor.php
r3177331 r3182862 8 8 * Text Domain: header-footer-elementor 9 9 * Domain Path: /languages 10 * Version: 1.6.4 510 * Version: 1.6.46 11 11 * Elementor tested up to: 3.25 12 12 * Elementor Pro tested up to: 3.25 … … 15 15 */ 16 16 17 define( 'HFE_VER', '1.6.4 5' );17 define( 'HFE_VER', '1.6.46' ); 18 18 define( 'HFE_FILE', __FILE__ ); 19 19 define( 'HFE_DIR', plugin_dir_path( __FILE__ ) ); -
header-footer-elementor/tags/1.6.46/inc/class-hfe-settings-page.php
r3152577 r3182862 33 33 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_scripts' ] ); 34 34 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 } 35 41 } 36 42 … … 851 857 return array_merge( $custom, (array) $links ); 852 858 } 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 } 853 1207 } 854 1208 -
header-footer-elementor/tags/1.6.46/inc/widgets-manager/class-widgets-loader.php
r3145118 r3182862 204 204 205 205 return $file; 206 } 206 } 207 207 208 208 /** -
header-footer-elementor/tags/1.6.46/languages/header-footer-elementor.pot
r3177331 r3182862 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Elementor Header & Footer Builder 1.6.4 5\n"5 "Project-Id-Version: Elementor Header & Footer Builder 1.6.46\n" 6 6 "Report-Msgid-Bugs-To: " 7 7 "https://wordpress.org/support/plugin/header-footer-elementor\n" 8 "POT-Creation-Date: 2024-1 0-28 15:46:42+00:00\n"8 "POT-Creation-Date: 2024-11-05 08:26:02+00:00\n" 9 9 "MIME-Version: 1.0\n" 10 10 "Content-Type: text/plain; charset=utf-8\n" … … 123 123 msgstr "" 124 124 125 #: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:28 1125 #: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:287 126 126 msgid "All Templates" 127 127 msgstr "" … … 305 305 msgstr "" 306 306 307 #: inc/class-hfe-settings-page.php: 65 inc/class-hfe-settings-page.php:710307 #: inc/class-hfe-settings-page.php:71 inc/class-hfe-settings-page.php:716 308 308 msgid "Activate" 309 309 msgstr "" 310 310 311 #: inc/class-hfe-settings-page.php: 66 inc/class-hfe-settings-page.php:702311 #: inc/class-hfe-settings-page.php:72 inc/class-hfe-settings-page.php:708 312 312 msgid "Activated" 313 313 msgstr "" 314 314 315 #: inc/class-hfe-settings-page.php: 67 inc/class-hfe-settings-page.php:699315 #: inc/class-hfe-settings-page.php:73 inc/class-hfe-settings-page.php:705 316 316 #: inc/widgets-manager/widgets/class-navigation-menu.php:1047 317 317 #: inc/widgets-manager/widgets/class-navigation-menu.php:1230 … … 319 319 msgstr "" 320 320 321 #: inc/class-hfe-settings-page.php: 68321 #: inc/class-hfe-settings-page.php:74 322 322 msgid "Deactivate" 323 323 msgstr "" 324 324 325 #: inc/class-hfe-settings-page.php: 69 inc/class-hfe-settings-page.php:707325 #: inc/class-hfe-settings-page.php:75 inc/class-hfe-settings-page.php:713 326 326 msgid "Inactive" 327 327 msgstr "" 328 328 329 #: inc/class-hfe-settings-page.php:7 0 inc/class-hfe-settings-page.php:723329 #: inc/class-hfe-settings-page.php:76 inc/class-hfe-settings-page.php:729 330 330 msgid "Install" 331 331 msgstr "" 332 332 333 #: inc/class-hfe-settings-page.php:7 1333 #: inc/class-hfe-settings-page.php:77 334 334 msgid "Theme Installed" 335 335 msgstr "" 336 336 337 #: inc/class-hfe-settings-page.php:7 2337 #: inc/class-hfe-settings-page.php:78 338 338 msgid "Plugin Installed" 339 339 msgstr "" 340 340 341 #: inc/class-hfe-settings-page.php:7 3341 #: inc/class-hfe-settings-page.php:79 342 342 msgid "Download" 343 343 msgstr "" 344 344 345 #: inc/class-hfe-settings-page.php: 74345 #: inc/class-hfe-settings-page.php:80 346 346 msgid "Already Exists." 347 347 msgstr "" 348 348 349 #: inc/class-hfe-settings-page.php: 75 inc/class-hfe-settings-page.php:728349 #: inc/class-hfe-settings-page.php:81 inc/class-hfe-settings-page.php:734 350 350 msgid "Visit Website" 351 351 msgstr "" 352 352 353 #: inc/class-hfe-settings-page.php: 76353 #: inc/class-hfe-settings-page.php:82 354 354 msgid "Could not install. Please download from WordPress.org and install manually." 355 355 msgstr "" 356 356 357 #: inc/class-hfe-settings-page.php: 77357 #: inc/class-hfe-settings-page.php:83 358 358 msgid "Your details are submitted successfully." 359 359 msgstr "" 360 360 361 #: inc/class-hfe-settings-page.php: 78361 #: inc/class-hfe-settings-page.php:84 362 362 msgid "Encountered an error while performing your request." 363 363 msgstr "" 364 364 365 #: inc/class-hfe-settings-page.php:1 17365 #: inc/class-hfe-settings-page.php:123 366 366 msgid "Add Theme Support" 367 367 msgstr "" 368 368 369 #: inc/class-hfe-settings-page.php:13 3369 #: inc/class-hfe-settings-page.php:139 370 370 msgid "" 371 371 "The Elementor Header & Footer Builder plugin need compatibility with your " … … 376 376 msgstr "" 377 377 378 #: inc/class-hfe-settings-page.php:15 2378 #: inc/class-hfe-settings-page.php:158 379 379 msgid " Method 1 (Recommended)" 380 380 msgstr "" 381 381 382 #: inc/class-hfe-settings-page.php:15 3382 #: inc/class-hfe-settings-page.php:159 383 383 msgid "" 384 384 "This method replaces your theme's header (header.php) & footer (footer.php) " … … 386 386 msgstr "" 387 387 388 #: inc/class-hfe-settings-page.php:1 56388 #: inc/class-hfe-settings-page.php:162 389 389 msgid "Method 2" 390 390 msgstr "" 391 391 392 #: inc/class-hfe-settings-page.php:16 0392 #: inc/class-hfe-settings-page.php:166 393 393 msgid "" 394 394 "This method hides your theme's header & footer template with CSS and " … … 396 396 msgstr "" 397 397 398 #: inc/class-hfe-settings-page.php:17 1398 #: inc/class-hfe-settings-page.php:177 399 399 #. translators: %s: URL to the plugin support page 400 400 msgid "" … … 404 404 msgstr "" 405 405 406 #: inc/class-hfe-settings-page.php: 196 inc/class-hfe-settings-page.php:197407 #: inc/class-hfe-settings-page.php:8 48406 #: inc/class-hfe-settings-page.php:202 inc/class-hfe-settings-page.php:203 407 #: inc/class-hfe-settings-page.php:854 408 408 msgid "Settings" 409 409 msgstr "" 410 410 411 #: inc/class-hfe-settings-page.php:2 05 inc/class-hfe-settings-page.php:206412 #: inc/class-hfe-settings-page.php:2 87411 #: inc/class-hfe-settings-page.php:211 inc/class-hfe-settings-page.php:212 412 #: inc/class-hfe-settings-page.php:293 413 413 msgid "About Us" 414 414 msgstr "" 415 415 416 #: inc/class-hfe-settings-page.php:22 3416 #: inc/class-hfe-settings-page.php:229 417 417 msgid "Elementor Header & Footer Builder " 418 418 msgstr "" 419 419 420 #: inc/class-hfe-settings-page.php:33 3420 #: inc/class-hfe-settings-page.php:339 421 421 #. translators: 1: Elementor, 2: Link to plugin review 422 422 msgid "" … … 425 425 msgstr "" 426 426 427 #: inc/class-hfe-settings-page.php:3 76427 #: inc/class-hfe-settings-page.php:382 428 428 msgid "Create Impressive Header and Footer Designs" 429 429 msgstr "" 430 430 431 #: inc/class-hfe-settings-page.php:3 77431 #: inc/class-hfe-settings-page.php:383 432 432 msgid "" 433 433 "Elementor Header & Footer Builder plugin lets you build impactful " … … 436 436 msgstr "" 437 437 438 #: inc/class-hfe-settings-page.php:39 1438 #: inc/class-hfe-settings-page.php:397 439 439 #. translators: %1$s and %3$s are opening anchor tags, and %2$s and %4$s is 440 440 #. closing anchor tags. … … 442 442 msgstr "" 443 443 444 #: inc/class-hfe-settings-page.php:4 09444 #: inc/class-hfe-settings-page.php:415 445 445 msgid "Skip" 446 446 msgstr "" 447 447 448 #: inc/class-hfe-settings-page.php:4 27448 #: inc/class-hfe-settings-page.php:433 449 449 msgid "Beginner" 450 450 msgstr "" 451 451 452 #: inc/class-hfe-settings-page.php:4 28452 #: inc/class-hfe-settings-page.php:434 453 453 msgid "Intermediate" 454 454 msgstr "" 455 455 456 #: inc/class-hfe-settings-page.php:4 29456 #: inc/class-hfe-settings-page.php:435 457 457 msgid "Expert" 458 458 msgstr "" 459 459 460 #: inc/class-hfe-settings-page.php:43 1 inc/class-hfe-settings-page.php:440460 #: inc/class-hfe-settings-page.php:437 inc/class-hfe-settings-page.php:446 461 461 msgid "Field is required" 462 462 msgstr "" 463 463 464 #: inc/class-hfe-settings-page.php:43 2464 #: inc/class-hfe-settings-page.php:438 465 465 msgid "I'm a WordPress:" 466 466 msgstr "" 467 467 468 #: inc/class-hfe-settings-page.php:4 37468 #: inc/class-hfe-settings-page.php:443 469 469 msgid "Myself/My company" 470 470 msgstr "" 471 471 472 #: inc/class-hfe-settings-page.php:4 38472 #: inc/class-hfe-settings-page.php:444 473 473 msgid "My client" 474 474 msgstr "" 475 475 476 #: inc/class-hfe-settings-page.php:44 1476 #: inc/class-hfe-settings-page.php:447 477 477 msgid "I'm building website for:" 478 478 msgstr "" 479 479 480 #: inc/class-hfe-settings-page.php:4 64480 #: inc/class-hfe-settings-page.php:470 481 481 msgid "First name is required" 482 482 msgstr "" 483 483 484 #: inc/class-hfe-settings-page.php:4 65484 #: inc/class-hfe-settings-page.php:471 485 485 msgid "Your First Name" 486 486 msgstr "" 487 487 488 #: inc/class-hfe-settings-page.php:4 69488 #: inc/class-hfe-settings-page.php:475 489 489 msgid "Email address is required" 490 490 msgstr "" 491 491 492 #: inc/class-hfe-settings-page.php:47 0492 #: inc/class-hfe-settings-page.php:476 493 493 msgid "Your Work Email" 494 494 msgstr "" 495 495 496 #: inc/class-hfe-settings-page.php:4 74496 #: inc/class-hfe-settings-page.php:480 497 497 msgid "I agree to receive your newsletters and accept the data privacy statement." 498 498 msgstr "" 499 499 500 #: inc/class-hfe-settings-page.php:4 79500 #: inc/class-hfe-settings-page.php:485 501 501 msgid "Submit" 502 502 msgstr "" 503 503 504 #: inc/class-hfe-settings-page.php:5 36504 #: inc/class-hfe-settings-page.php:542 505 505 #. translators: %s: theme name 506 506 msgid "" … … 510 510 msgstr "" 511 511 512 #: inc/class-hfe-settings-page.php:5 57512 #: inc/class-hfe-settings-page.php:563 513 513 msgid "Welcome to Elementor Header & Footer Builder!" 514 514 msgstr "" 515 515 516 #: inc/class-hfe-settings-page.php:5 59516 #: inc/class-hfe-settings-page.php:565 517 517 msgid "" 518 518 "With this awesome plugin, experience the easiest way to create a customized " … … 520 520 msgstr "" 521 521 522 #: inc/class-hfe-settings-page.php:56 1522 #: inc/class-hfe-settings-page.php:567 523 523 msgid "" 524 524 "Design beautiful layouts with simple drag & drop and display them at " … … 529 529 msgstr "" 530 530 531 #: inc/class-hfe-settings-page.php:56 3531 #: inc/class-hfe-settings-page.php:569 532 532 msgid "" 533 533 "Trusted by more than 1+ Million users, Elementor Header & Footer Builder is " … … 535 535 msgstr "" 536 536 537 #: inc/class-hfe-settings-page.php:5 66537 #: inc/class-hfe-settings-page.php:572 538 538 #. translators: %s: theme name 539 539 msgid "" … … 542 542 msgstr "" 543 543 544 #: inc/class-hfe-settings-page.php:57 2544 #: inc/class-hfe-settings-page.php:578 545 545 msgid "Team photo" 546 546 msgstr "" 547 547 548 #: inc/class-hfe-settings-page.php:5 74548 #: inc/class-hfe-settings-page.php:580 549 549 msgid "Brainstorm Force Team" 550 550 msgstr "" 551 551 552 #: inc/class-hfe-settings-page.php:6 19552 #: inc/class-hfe-settings-page.php:625 553 553 #. translators: %s - addon status label. 554 554 msgid "%1$s %3$s %2$s" 555 555 msgstr "" 556 556 557 #: inc/class-hfe-settings-page.php:6 36557 #: inc/class-hfe-settings-page.php:642 558 558 #. translators: %s - addon status label. 559 559 msgid "Status: %s" 560 560 msgstr "" 561 561 562 #: inc/class-hfe-settings-page.php:6 55562 #: inc/class-hfe-settings-page.php:661 563 563 msgid "WordPress.org" 564 564 msgstr "" 565 565 566 #: inc/class-hfe-settings-page.php:72 0566 #: inc/class-hfe-settings-page.php:726 567 567 msgid "Not Installed" 568 568 msgstr "" 569 569 570 #: inc/class-hfe-settings-page.php:7 67570 #: inc/class-hfe-settings-page.php:773 571 571 msgid "Starter Templates" 572 572 msgstr "" 573 573 574 #: inc/class-hfe-settings-page.php:7 68574 #: inc/class-hfe-settings-page.php:774 575 575 msgid "" 576 576 "A popular templates plugin that provides an extensive library of " … … 579 579 msgstr "" 580 580 581 #: inc/class-hfe-settings-page.php:7 79581 #: inc/class-hfe-settings-page.php:785 582 582 msgid "Ultimate Addons for Elementor" 583 583 msgstr "" 584 584 585 #: inc/class-hfe-settings-page.php:78 0585 #: inc/class-hfe-settings-page.php:786 586 586 msgid "" 587 587 "It’s a collection of 40+ unique, creative, and optimized Elementor widgets " … … 590 590 msgstr "" 591 591 592 #: inc/class-hfe-settings-page.php:8 47592 #: inc/class-hfe-settings-page.php:853 593 593 msgid "Go to HFE Settings page" 594 594 msgstr "" -
header-footer-elementor/tags/1.6.46/readme.txt
r3177331 r3182862 6 6 Requires PHP: 7.4 7 7 Tested up to: 6.7 8 Stable tag: 1.6.4 58 Stable tag: 1.6.46 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 141 141 == Changelog == 142 142 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 143 146 = 1.6.45 = 144 147 - Improvement: Enhanced the enqueue_scripts method with checks to ensure styles load safely. … … 146 149 = 1.6.44 = 147 150 - 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. 149 152 150 153 = 1.6.43 = -
header-footer-elementor/trunk/header-footer-elementor.php
r3177331 r3182862 8 8 * Text Domain: header-footer-elementor 9 9 * Domain Path: /languages 10 * Version: 1.6.4 510 * Version: 1.6.46 11 11 * Elementor tested up to: 3.25 12 12 * Elementor Pro tested up to: 3.25 … … 15 15 */ 16 16 17 define( 'HFE_VER', '1.6.4 5' );17 define( 'HFE_VER', '1.6.46' ); 18 18 define( 'HFE_FILE', __FILE__ ); 19 19 define( 'HFE_DIR', plugin_dir_path( __FILE__ ) ); -
header-footer-elementor/trunk/inc/class-hfe-settings-page.php
r3152577 r3182862 33 33 add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_scripts' ] ); 34 34 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 } 35 41 } 36 42 … … 851 857 return array_merge( $custom, (array) $links ); 852 858 } 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 } 853 1207 } 854 1208 -
header-footer-elementor/trunk/inc/widgets-manager/class-widgets-loader.php
r3145118 r3182862 204 204 205 205 return $file; 206 } 206 } 207 207 208 208 /** -
header-footer-elementor/trunk/languages/header-footer-elementor.pot
r3177331 r3182862 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Elementor Header & Footer Builder 1.6.4 5\n"5 "Project-Id-Version: Elementor Header & Footer Builder 1.6.46\n" 6 6 "Report-Msgid-Bugs-To: " 7 7 "https://wordpress.org/support/plugin/header-footer-elementor\n" 8 "POT-Creation-Date: 2024-1 0-28 15:46:42+00:00\n"8 "POT-Creation-Date: 2024-11-05 08:26:02+00:00\n" 9 9 "MIME-Version: 1.0\n" 10 10 "Content-Type: text/plain; charset=utf-8\n" … … 123 123 msgstr "" 124 124 125 #: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:28 1125 #: admin/class-hfe-admin.php:243 inc/class-hfe-settings-page.php:287 126 126 msgid "All Templates" 127 127 msgstr "" … … 305 305 msgstr "" 306 306 307 #: inc/class-hfe-settings-page.php: 65 inc/class-hfe-settings-page.php:710307 #: inc/class-hfe-settings-page.php:71 inc/class-hfe-settings-page.php:716 308 308 msgid "Activate" 309 309 msgstr "" 310 310 311 #: inc/class-hfe-settings-page.php: 66 inc/class-hfe-settings-page.php:702311 #: inc/class-hfe-settings-page.php:72 inc/class-hfe-settings-page.php:708 312 312 msgid "Activated" 313 313 msgstr "" 314 314 315 #: inc/class-hfe-settings-page.php: 67 inc/class-hfe-settings-page.php:699315 #: inc/class-hfe-settings-page.php:73 inc/class-hfe-settings-page.php:705 316 316 #: inc/widgets-manager/widgets/class-navigation-menu.php:1047 317 317 #: inc/widgets-manager/widgets/class-navigation-menu.php:1230 … … 319 319 msgstr "" 320 320 321 #: inc/class-hfe-settings-page.php: 68321 #: inc/class-hfe-settings-page.php:74 322 322 msgid "Deactivate" 323 323 msgstr "" 324 324 325 #: inc/class-hfe-settings-page.php: 69 inc/class-hfe-settings-page.php:707325 #: inc/class-hfe-settings-page.php:75 inc/class-hfe-settings-page.php:713 326 326 msgid "Inactive" 327 327 msgstr "" 328 328 329 #: inc/class-hfe-settings-page.php:7 0 inc/class-hfe-settings-page.php:723329 #: inc/class-hfe-settings-page.php:76 inc/class-hfe-settings-page.php:729 330 330 msgid "Install" 331 331 msgstr "" 332 332 333 #: inc/class-hfe-settings-page.php:7 1333 #: inc/class-hfe-settings-page.php:77 334 334 msgid "Theme Installed" 335 335 msgstr "" 336 336 337 #: inc/class-hfe-settings-page.php:7 2337 #: inc/class-hfe-settings-page.php:78 338 338 msgid "Plugin Installed" 339 339 msgstr "" 340 340 341 #: inc/class-hfe-settings-page.php:7 3341 #: inc/class-hfe-settings-page.php:79 342 342 msgid "Download" 343 343 msgstr "" 344 344 345 #: inc/class-hfe-settings-page.php: 74345 #: inc/class-hfe-settings-page.php:80 346 346 msgid "Already Exists." 347 347 msgstr "" 348 348 349 #: inc/class-hfe-settings-page.php: 75 inc/class-hfe-settings-page.php:728349 #: inc/class-hfe-settings-page.php:81 inc/class-hfe-settings-page.php:734 350 350 msgid "Visit Website" 351 351 msgstr "" 352 352 353 #: inc/class-hfe-settings-page.php: 76353 #: inc/class-hfe-settings-page.php:82 354 354 msgid "Could not install. Please download from WordPress.org and install manually." 355 355 msgstr "" 356 356 357 #: inc/class-hfe-settings-page.php: 77357 #: inc/class-hfe-settings-page.php:83 358 358 msgid "Your details are submitted successfully." 359 359 msgstr "" 360 360 361 #: inc/class-hfe-settings-page.php: 78361 #: inc/class-hfe-settings-page.php:84 362 362 msgid "Encountered an error while performing your request." 363 363 msgstr "" 364 364 365 #: inc/class-hfe-settings-page.php:1 17365 #: inc/class-hfe-settings-page.php:123 366 366 msgid "Add Theme Support" 367 367 msgstr "" 368 368 369 #: inc/class-hfe-settings-page.php:13 3369 #: inc/class-hfe-settings-page.php:139 370 370 msgid "" 371 371 "The Elementor Header & Footer Builder plugin need compatibility with your " … … 376 376 msgstr "" 377 377 378 #: inc/class-hfe-settings-page.php:15 2378 #: inc/class-hfe-settings-page.php:158 379 379 msgid " Method 1 (Recommended)" 380 380 msgstr "" 381 381 382 #: inc/class-hfe-settings-page.php:15 3382 #: inc/class-hfe-settings-page.php:159 383 383 msgid "" 384 384 "This method replaces your theme's header (header.php) & footer (footer.php) " … … 386 386 msgstr "" 387 387 388 #: inc/class-hfe-settings-page.php:1 56388 #: inc/class-hfe-settings-page.php:162 389 389 msgid "Method 2" 390 390 msgstr "" 391 391 392 #: inc/class-hfe-settings-page.php:16 0392 #: inc/class-hfe-settings-page.php:166 393 393 msgid "" 394 394 "This method hides your theme's header & footer template with CSS and " … … 396 396 msgstr "" 397 397 398 #: inc/class-hfe-settings-page.php:17 1398 #: inc/class-hfe-settings-page.php:177 399 399 #. translators: %s: URL to the plugin support page 400 400 msgid "" … … 404 404 msgstr "" 405 405 406 #: inc/class-hfe-settings-page.php: 196 inc/class-hfe-settings-page.php:197407 #: inc/class-hfe-settings-page.php:8 48406 #: inc/class-hfe-settings-page.php:202 inc/class-hfe-settings-page.php:203 407 #: inc/class-hfe-settings-page.php:854 408 408 msgid "Settings" 409 409 msgstr "" 410 410 411 #: inc/class-hfe-settings-page.php:2 05 inc/class-hfe-settings-page.php:206412 #: inc/class-hfe-settings-page.php:2 87411 #: inc/class-hfe-settings-page.php:211 inc/class-hfe-settings-page.php:212 412 #: inc/class-hfe-settings-page.php:293 413 413 msgid "About Us" 414 414 msgstr "" 415 415 416 #: inc/class-hfe-settings-page.php:22 3416 #: inc/class-hfe-settings-page.php:229 417 417 msgid "Elementor Header & Footer Builder " 418 418 msgstr "" 419 419 420 #: inc/class-hfe-settings-page.php:33 3420 #: inc/class-hfe-settings-page.php:339 421 421 #. translators: 1: Elementor, 2: Link to plugin review 422 422 msgid "" … … 425 425 msgstr "" 426 426 427 #: inc/class-hfe-settings-page.php:3 76427 #: inc/class-hfe-settings-page.php:382 428 428 msgid "Create Impressive Header and Footer Designs" 429 429 msgstr "" 430 430 431 #: inc/class-hfe-settings-page.php:3 77431 #: inc/class-hfe-settings-page.php:383 432 432 msgid "" 433 433 "Elementor Header & Footer Builder plugin lets you build impactful " … … 436 436 msgstr "" 437 437 438 #: inc/class-hfe-settings-page.php:39 1438 #: inc/class-hfe-settings-page.php:397 439 439 #. translators: %1$s and %3$s are opening anchor tags, and %2$s and %4$s is 440 440 #. closing anchor tags. … … 442 442 msgstr "" 443 443 444 #: inc/class-hfe-settings-page.php:4 09444 #: inc/class-hfe-settings-page.php:415 445 445 msgid "Skip" 446 446 msgstr "" 447 447 448 #: inc/class-hfe-settings-page.php:4 27448 #: inc/class-hfe-settings-page.php:433 449 449 msgid "Beginner" 450 450 msgstr "" 451 451 452 #: inc/class-hfe-settings-page.php:4 28452 #: inc/class-hfe-settings-page.php:434 453 453 msgid "Intermediate" 454 454 msgstr "" 455 455 456 #: inc/class-hfe-settings-page.php:4 29456 #: inc/class-hfe-settings-page.php:435 457 457 msgid "Expert" 458 458 msgstr "" 459 459 460 #: inc/class-hfe-settings-page.php:43 1 inc/class-hfe-settings-page.php:440460 #: inc/class-hfe-settings-page.php:437 inc/class-hfe-settings-page.php:446 461 461 msgid "Field is required" 462 462 msgstr "" 463 463 464 #: inc/class-hfe-settings-page.php:43 2464 #: inc/class-hfe-settings-page.php:438 465 465 msgid "I'm a WordPress:" 466 466 msgstr "" 467 467 468 #: inc/class-hfe-settings-page.php:4 37468 #: inc/class-hfe-settings-page.php:443 469 469 msgid "Myself/My company" 470 470 msgstr "" 471 471 472 #: inc/class-hfe-settings-page.php:4 38472 #: inc/class-hfe-settings-page.php:444 473 473 msgid "My client" 474 474 msgstr "" 475 475 476 #: inc/class-hfe-settings-page.php:44 1476 #: inc/class-hfe-settings-page.php:447 477 477 msgid "I'm building website for:" 478 478 msgstr "" 479 479 480 #: inc/class-hfe-settings-page.php:4 64480 #: inc/class-hfe-settings-page.php:470 481 481 msgid "First name is required" 482 482 msgstr "" 483 483 484 #: inc/class-hfe-settings-page.php:4 65484 #: inc/class-hfe-settings-page.php:471 485 485 msgid "Your First Name" 486 486 msgstr "" 487 487 488 #: inc/class-hfe-settings-page.php:4 69488 #: inc/class-hfe-settings-page.php:475 489 489 msgid "Email address is required" 490 490 msgstr "" 491 491 492 #: inc/class-hfe-settings-page.php:47 0492 #: inc/class-hfe-settings-page.php:476 493 493 msgid "Your Work Email" 494 494 msgstr "" 495 495 496 #: inc/class-hfe-settings-page.php:4 74496 #: inc/class-hfe-settings-page.php:480 497 497 msgid "I agree to receive your newsletters and accept the data privacy statement." 498 498 msgstr "" 499 499 500 #: inc/class-hfe-settings-page.php:4 79500 #: inc/class-hfe-settings-page.php:485 501 501 msgid "Submit" 502 502 msgstr "" 503 503 504 #: inc/class-hfe-settings-page.php:5 36504 #: inc/class-hfe-settings-page.php:542 505 505 #. translators: %s: theme name 506 506 msgid "" … … 510 510 msgstr "" 511 511 512 #: inc/class-hfe-settings-page.php:5 57512 #: inc/class-hfe-settings-page.php:563 513 513 msgid "Welcome to Elementor Header & Footer Builder!" 514 514 msgstr "" 515 515 516 #: inc/class-hfe-settings-page.php:5 59516 #: inc/class-hfe-settings-page.php:565 517 517 msgid "" 518 518 "With this awesome plugin, experience the easiest way to create a customized " … … 520 520 msgstr "" 521 521 522 #: inc/class-hfe-settings-page.php:56 1522 #: inc/class-hfe-settings-page.php:567 523 523 msgid "" 524 524 "Design beautiful layouts with simple drag & drop and display them at " … … 529 529 msgstr "" 530 530 531 #: inc/class-hfe-settings-page.php:56 3531 #: inc/class-hfe-settings-page.php:569 532 532 msgid "" 533 533 "Trusted by more than 1+ Million users, Elementor Header & Footer Builder is " … … 535 535 msgstr "" 536 536 537 #: inc/class-hfe-settings-page.php:5 66537 #: inc/class-hfe-settings-page.php:572 538 538 #. translators: %s: theme name 539 539 msgid "" … … 542 542 msgstr "" 543 543 544 #: inc/class-hfe-settings-page.php:57 2544 #: inc/class-hfe-settings-page.php:578 545 545 msgid "Team photo" 546 546 msgstr "" 547 547 548 #: inc/class-hfe-settings-page.php:5 74548 #: inc/class-hfe-settings-page.php:580 549 549 msgid "Brainstorm Force Team" 550 550 msgstr "" 551 551 552 #: inc/class-hfe-settings-page.php:6 19552 #: inc/class-hfe-settings-page.php:625 553 553 #. translators: %s - addon status label. 554 554 msgid "%1$s %3$s %2$s" 555 555 msgstr "" 556 556 557 #: inc/class-hfe-settings-page.php:6 36557 #: inc/class-hfe-settings-page.php:642 558 558 #. translators: %s - addon status label. 559 559 msgid "Status: %s" 560 560 msgstr "" 561 561 562 #: inc/class-hfe-settings-page.php:6 55562 #: inc/class-hfe-settings-page.php:661 563 563 msgid "WordPress.org" 564 564 msgstr "" 565 565 566 #: inc/class-hfe-settings-page.php:72 0566 #: inc/class-hfe-settings-page.php:726 567 567 msgid "Not Installed" 568 568 msgstr "" 569 569 570 #: inc/class-hfe-settings-page.php:7 67570 #: inc/class-hfe-settings-page.php:773 571 571 msgid "Starter Templates" 572 572 msgstr "" 573 573 574 #: inc/class-hfe-settings-page.php:7 68574 #: inc/class-hfe-settings-page.php:774 575 575 msgid "" 576 576 "A popular templates plugin that provides an extensive library of " … … 579 579 msgstr "" 580 580 581 #: inc/class-hfe-settings-page.php:7 79581 #: inc/class-hfe-settings-page.php:785 582 582 msgid "Ultimate Addons for Elementor" 583 583 msgstr "" 584 584 585 #: inc/class-hfe-settings-page.php:78 0585 #: inc/class-hfe-settings-page.php:786 586 586 msgid "" 587 587 "It’s a collection of 40+ unique, creative, and optimized Elementor widgets " … … 590 590 msgstr "" 591 591 592 #: inc/class-hfe-settings-page.php:8 47592 #: inc/class-hfe-settings-page.php:853 593 593 msgid "Go to HFE Settings page" 594 594 msgstr "" -
header-footer-elementor/trunk/readme.txt
r3177331 r3182862 6 6 Requires PHP: 7.4 7 7 Tested up to: 6.7 8 Stable tag: 1.6.4 58 Stable tag: 1.6.46 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 141 141 == Changelog == 142 142 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 143 146 = 1.6.45 = 144 147 - Improvement: Enhanced the enqueue_scripts method with checks to ensure styles load safely. … … 146 149 = 1.6.44 = 147 150 - 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. 149 152 150 153 = 1.6.43 =
Note: See TracChangeset
for help on using the changeset viewer.