Header Footer Elementor - Version 1.4.0

Version Description

  • New: WooCommerce Menu Cart widget.
  • Improvement: Compatibility to Elementor Pro v2.9 full site editing.
  • Improvement: In-built support to Hello Elementor theme.
  • Improvement: WPML support to before footer template.
  • Improvement: Navigation Menu - Added option to convert last item into CTA.
Download this release

Release Info

Developer Nikschavan
Plugin Icon Header Footer Elementor
Version 1.4.0
Comparing to
See all releases

Code changes from version 1.3.1 to 1.4.0

admin/class-hfe-admin.php CHANGED
@@ -80,6 +80,9 @@ class HFE_Admin {
80
  add_filter( 'single_template', [ $this, 'load_canvas_template' ] );
81
  add_filter( 'manage_elementor-hf_posts_columns', [ $this, 'set_shortcode_columns' ] );
82
  add_action( 'manage_elementor-hf_posts_custom_column', [ $this, 'render_shortcode_column' ], 10, 2 );
 
 
 
83
 
84
  if ( is_admin() ) {
85
  add_action( 'manage_elementor-hf_posts_custom_column', [ $this, 'column_content' ], 10, 2 );
@@ -87,6 +90,40 @@ class HFE_Admin {
87
  }
88
  }
89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  /**
91
  * Adds or removes list table column headings.
92
  *
80
  add_filter( 'single_template', [ $this, 'load_canvas_template' ] );
81
  add_filter( 'manage_elementor-hf_posts_columns', [ $this, 'set_shortcode_columns' ] );
82
  add_action( 'manage_elementor-hf_posts_custom_column', [ $this, 'render_shortcode_column' ], 10, 2 );
83
+ if ( defined( 'ELEMENTOR_PRO_VERSION' ) && ELEMENTOR_PRO_VERSION > 2.8 ) {
84
+ add_action( 'elementor/editor/footer', [ $this, 'register_hfe_epro_script' ], 99 );
85
+ }
86
 
87
  if ( is_admin() ) {
88
  add_action( 'manage_elementor-hf_posts_custom_column', [ $this, 'column_content' ], 10, 2 );
90
  }
91
  }
92
 
93
+ /**
94
+ * Script for Elementor Pro full site editing support.
95
+ *
96
+ * @since 1.4.0
97
+ *
98
+ * @return void
99
+ */
100
+ public function register_hfe_epro_script() {
101
+ $ids_array = [
102
+ [
103
+ 'id' => get_hfe_header_id(),
104
+ 'value' => 'Header',
105
+ ],
106
+ [
107
+ 'id' => get_hfe_footer_id(),
108
+ 'value' => 'Footer',
109
+ ],
110
+ [
111
+ 'id' => hfe_get_before_footer_id(),
112
+ 'value' => 'Before Footer',
113
+ ],
114
+ ];
115
+
116
+ wp_enqueue_script( 'hfe-elementor-pro-compatibility', HFE_URL . 'inc/js/hfe-elementor-pro-compatibility.js', [ 'jquery' ], HFE_VER, true );
117
+
118
+ wp_localize_script(
119
+ 'hfe-elementor-pro-compatibility',
120
+ 'hfe_admin',
121
+ [
122
+ 'ids_array' => wp_json_encode( $ids_array ),
123
+ ]
124
+ );
125
+ }
126
+
127
  /**
128
  * Adds or removes list table column headings.
129
  *
assets/css/style.css CHANGED
@@ -40,26 +40,28 @@
40
  border-style: solid;
41
  }
42
 
 
 
 
 
 
 
 
43
  .hfe-icon-copyright-widget:before {
44
- content: "\e905";
45
  }
46
  .hfe-icon-retina-image:before {
47
- content: "\e906";
48
  }
49
-
50
  .hfe-icon-page-title:before {
51
- content: "\e900";
52
  }
53
  .hfe-icon-site-logo:before {
54
- content: "\e901";
55
  }
56
  .hfe-icon-site-tagline:before {
57
- content: "\e902";
58
  }
59
  .hfe-icon-site-title:before {
60
- content: "\e903";
61
- }
62
- .hfe-icon-navigation-menu-4:before {
63
- content: "\e904";
64
- color: #556068;
65
  }
40
  border-style: solid;
41
  }
42
 
43
+ .hfe-icon-navigation-menu:before {
44
+ content: "\e900";
45
+ color: #556068;
46
+ }
47
+ .hfe-icon-menu-cart:before {
48
+ content: "\e901";
49
+ }
50
  .hfe-icon-copyright-widget:before {
51
+ content: "\e902";
52
  }
53
  .hfe-icon-retina-image:before {
54
+ content: "\e903";
55
  }
 
56
  .hfe-icon-page-title:before {
57
+ content: "\e904";
58
  }
59
  .hfe-icon-site-logo:before {
60
+ content: "\e905";
61
  }
62
  .hfe-icon-site-tagline:before {
63
+ content: "\e906";
64
  }
65
  .hfe-icon-site-title:before {
66
+ content: "\e907";
 
 
 
 
67
  }
assets/fonts/hfe.eot CHANGED
Binary file
assets/fonts/hfe.svg CHANGED
@@ -7,11 +7,12 @@
7
  <font-face units-per-em="1024" ascent="960" descent="-64" />
8
  <missing-glyph horiz-adv-x="1024" />
9
  <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
- <glyph unicode="&#xe900;" glyph-name="page-title" d="M553.613 952.083c-4.695 4.946-11.132 7.913-17.805 7.913h-399.462c-73.71 0-134.555-60.602-134.555-134.304v-755.383c0-73.712 60.845-134.312 134.555-134.312h542.175c73.71 0 134.555 60.6 134.555 134.312v599.803c0 6.429-2.968 12.609-7.172 17.314l-252.291 264.657zM560.785 872.683l168.938-177.344h-109.82c-32.65 0-59.117 26.217-59.117 58.867v118.477zM678.521-14.535h-542.175c-46.25 0-85.086 38.335-85.086 84.844v755.383c0 46.25 38.585 84.836 85.086 84.836h374.97v-156.321c0-60.101 48.485-108.336 108.586-108.336h143.705v-575.564c0-46.509-38.587-84.842-85.086-84.842zM300.571 417.609c7.633 0 13.879 6.242 13.879 13.879v16.795h61.069v-144.352h-25.953c-7.637 0-13.881-6.248-13.881-13.883 0-7.631 6.244-13.879 13.881-13.879h79.806c7.639 0 13.881 6.248 13.881 13.879 0 7.635-6.242 13.883-13.881 13.883h-26.093v144.348h61.075v-16.795c0-7.633 6.242-13.879 13.879-13.879 7.633 0 13.879 6.246 13.879 13.879v31.093c0 7.637-6.523 13.462-14.156 13.462h-177.11c-7.633 0-14.156-5.825-14.156-13.462v-31.093c-0.002-7.633 6.246-13.875 13.879-13.875z" />
11
- <glyph unicode="&#xe901;" glyph-name="site-logo" d="M619.652 354.789l-53.825-61.702-112.904 160.165c-4.644 6.978-12.637 10.976-21.005 10.504-8.217-0.193-15.919-4.046-21.005-10.504l-173.292-233.682c-5.975-8.956-6.968-20.341-2.626-30.194 4.219-9.539 13.25-16.062 23.631-17.067h480.492c10.38 1.005 19.414 7.528 23.631 17.067 4.372 9.4 3.37 20.424-2.626 28.882l-99.774 133.908c-4.402 6.752-11.662 11.109-19.693 11.815-8.079 0.525-15.909-2.902-21.005-9.192zM526.441 224.821h-215.304l120.779 162.791 114.215-162.791h-19.69zM686.606 224.821h-76.144l-13.127 21.005 40.698 45.949 48.573-66.954zM573.702 426.995c44.228 0 80.081 35.853 80.081 80.081s-35.853 80.081-80.081 80.081-80.081-35.853-80.081-80.081v0c0-44.228 35.853-80.081 80.081-80.081zM546.134 507.076c0 15.225 12.343 27.568 27.568 27.568s27.568-12.343 27.568-27.568c0-15.225-12.343-27.568-27.568-27.568s-27.568 12.343-27.568 27.568c0 0 0 0 0 0zM911.099 675.119l-278.32 277.003c-4.847 4.948-11.453 7.777-18.379 7.878h-378.092c-72.505 0-131.282-58.777-131.282-131.282v-761.435c0-72.505 58.777-131.282 131.282-131.282h551.386c72.505 0 131.282 58.777 131.282 131.282v589.458c-0.101 6.923-2.932 13.529-7.878 18.379zM643.282 697.435v170.668l185.107-183.795h-171.98c-6.481-0.771-12.358 3.857-13.127 10.338-0.111 0.925-0.111 1.862 0 2.789zM866.461 67.282c0-43.502-35.267-78.769-78.769-78.769h-551.383c-43.502 0-78.769 35.265-78.769 78.769v761.435c0 43.502 35.265 78.769 78.769 78.769h354.461v-210.052c0-36.252 29.387-65.64 65.64-65.64h210.052v-564.513z" />
12
- <glyph unicode="&#xe902;" glyph-name="site-tagline" d="M553.613 952.083c-4.695 4.946-11.132 7.913-17.805 7.913h-399.462c-73.71 0-134.555-60.602-134.555-134.304v-755.383c0-73.712 60.845-134.312 134.555-134.312h542.175c73.71 0 134.555 60.6 134.555 134.312v599.803c0 6.429-2.968 12.609-7.172 17.314l-252.291 264.657zM560.785 872.683l168.938-177.344h-109.82c-32.65 0-59.117 26.217-59.117 58.867v118.477zM678.521-14.535h-542.175c-46.25 0-85.086 38.335-85.086 84.844v755.383c0 46.25 38.585 84.836 85.086 84.836h374.97v-156.321c0-60.101 48.485-108.336 108.586-108.336h143.705v-575.564c0-46.509-38.587-84.842-85.086-84.842zM535.324 446.395h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM535.324 352.211h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM535.324 262.65h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM178.859 677.192c8.016 0 14.576 6.555 14.576 14.574v17.636h64.131v-151.588h-27.255c-8.020 0-14.576-6.561-14.576-14.576s6.557-14.574 14.576-14.574h83.806c8.020 0 14.576 6.561 14.576 14.574 0 8.016-6.555 14.576-14.576 14.576h-27.402v151.584h64.135v-17.636c0-8.016 6.555-14.574 14.574-14.574 8.016 0 14.576 6.559 14.576 14.574v32.65c0 8.020-6.851 14.14-14.867 14.14h-185.985c-8.016 0-14.865-6.118-14.865-14.14v-32.65c-0.002-8.016 6.559-14.57 14.574-14.57z" />
13
- <glyph unicode="&#xe903;" glyph-name="site-title" d="M659.821 954.086c-4.695 4.945-11.133 7.914-17.805 7.914h-399.462c-73.711 0-134.555-60.602-134.555-134.305v-755.384c0-73.711 60.844-134.313 134.555-134.313h542.173c73.711 0 134.555 60.602 134.555 134.313v599.806c0 6.43-2.969 12.609-7.172 17.313zM666.992 874.687l168.938-177.344h-109.821c-32.648 0-59.117 26.219-59.117 58.867zM784.727-12.533h-542.173c-46.25 0-85.086 38.336-85.086 84.844v755.384c0 46.25 38.586 84.836 85.086 84.836h374.969v-156.321c0-60.102 48.484-108.336 108.586-108.336h143.703v-575.564c0-46.508-38.586-84.844-85.086-84.844zM717.204 158.131h-407.126c-13.602 0-24.734-11.125-24.734-24.734 0-13.602 11.133-24.734 24.734-24.734h407.376c13.602 0 24.734 11.133 24.734 24.734 0 13.609-11.133 24.734-24.984 24.734zM355.343 504.171c13.602 0 24.734 11.125 24.734 24.734v29.93h108.828v-257.243h-46.25c-13.609 0-24.734-11.133-24.734-24.734s11.125-24.734 24.734-24.734h142.219c13.609 0 24.734 11.133 24.734 24.734s-11.125 24.734-24.734 24.734h-46.5v257.235h108.836v-29.93c0-13.602 11.125-24.734 24.734-24.734 13.602 0 24.734 11.133 24.734 24.734v55.406c0 13.609-11.625 23.992-25.227 23.992h-315.618c-13.602 0-25.227-10.383-25.227-23.992v-55.406c0-13.602 11.133-24.727 24.734-24.727z" />
14
- <glyph unicode="&#xe904;" glyph-name="navigation-menu-4" d="M921.6 467.626c0 10.834-8.794 19.628-19.626 19.628h-779.948c-10.832 0-19.626-8.794-19.626-19.628v-39.252c0-10.834 8.794-19.628 19.626-19.628h779.948c10.832 0 19.626 8.794 19.626 19.628v39.252zM921.6 254.294c0 10.832-8.794 19.626-19.626 19.626h-779.948c-10.832 0-19.626-8.794-19.626-19.626v-39.254c0-10.832 8.794-19.626 19.626-19.626h779.948c10.832 0 19.626 8.794 19.626 19.626v39.254zM921.6 680.96c0 10.832-8.794 19.626-19.626 19.626h-779.948c-10.832 0-19.626-8.794-19.626-19.626v-39.254c0-10.832 8.794-19.626 19.626-19.626h779.948c10.832 0 19.626 8.794 19.626 19.626v39.254z" />
15
- <glyph unicode="&#xe905;" glyph-name="copyright-widget" d="M512-64c-282.312 0-512 229.688-512 512s229.688 512 512 512 512-229.688 512-512-229.688-512-512-512zM512 896c-247.032 0-448-200.968-448-448s200.968-448 448-448 448 200.968 448 448-200.968 448-448 448zM512 191.999c-141.156 0-256.001 114.843-256.001 256.001s114.843 256.001 256.001 256.001c69.406 0 134.344-27.313 182.906-76.906l-45.749-44.749c-36.405 37.188-85.093 57.657-137.157 57.657-105.876 0-192.001-86.125-192.001-192.001s86.125-192.001 192.001-192.001c52.032 0 100.72 20.469 137.157 57.657l45.687-44.814c-48.533-49.563-113.468-76.844-182.844-76.846z" />
16
- <glyph unicode="&#xe906;" glyph-name="retina-image" d="M512 277.333c-94.123 0-170.667 76.544-170.667 170.667s76.544 170.667 170.667 170.667 170.667-76.544 170.667-170.667-76.544-170.667-170.667-170.667zM512 554.667c-58.795 0-106.667-47.872-106.667-106.667s47.872-106.667 106.667-106.667 106.667 47.872 106.667 106.667-47.872 106.667-106.667 106.667zM512 106.667c-202.88 0-392.747 121.728-507.861 325.589-5.504 9.771-5.504 21.675 0 31.445 115.115 203.904 304.981 325.632 507.861 325.632s392.747-121.728 507.861-325.589c5.504-9.771 5.504-21.675 0-31.445-115.115-203.904-304.981-325.632-507.861-325.632zM69.035 448c104.235-174.037 268.672-277.333 442.965-277.333s338.731 103.296 442.965 277.333c-104.235 174.037-268.672 277.333-442.965 277.333s-338.731-103.296-442.965-277.333zM992 603.819c-17.664 0-32 14.336-32 32v206.848c0 29.397-23.936 53.333-53.333 53.333h-206.848c-17.664 0-32 14.336-32 32s14.336 32 32 32h206.848c64.683 0 117.333-52.651 117.333-117.333v-206.848c0-17.664-14.336-32-32-32zM32 603.819c-17.664 0-32 14.336-32 32v206.848c0 64.683 52.651 117.333 117.333 117.333h206.848c17.664 0 32-14.336 32-32s-14.336-32-32-32h-206.848c-29.397 0-53.333-23.936-53.333-53.333v-206.848c0-17.664-14.336-32-32-32zM906.667-64h-206.848c-17.664 0-32 14.336-32 32s14.336 32 32 32h206.848c29.397 0 53.333 23.936 53.333 53.333v206.848c0 17.664 14.336 32 32 32s32-14.336 32-32v-206.848c0-64.683-52.651-117.333-117.333-117.333zM324.181-64h-206.848c-64.683 0-117.333 52.651-117.333 117.333v206.848c0 17.664 14.336 32 32 32s32-14.336 32-32v-206.848c0-29.397 23.936-53.333 53.333-53.333h206.848c17.664 0 32-14.336 32-32s-14.336-32-32-32z" />
 
17
  </font></defs></svg>
7
  <font-face units-per-em="1024" ascent="960" descent="-64" />
8
  <missing-glyph horiz-adv-x="1024" />
9
  <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" glyph-name="navigation-menu" d="M921.6 467.626c0 10.834-8.794 19.628-19.626 19.628h-779.948c-10.832 0-19.626-8.794-19.626-19.628v-39.252c0-10.834 8.794-19.628 19.626-19.628h779.948c10.832 0 19.626 8.794 19.626 19.628v39.252zM921.6 254.294c0 10.832-8.794 19.626-19.626 19.626h-779.948c-10.832 0-19.626-8.794-19.626-19.626v-39.254c0-10.832 8.794-19.626 19.626-19.626h779.948c10.832 0 19.626 8.794 19.626 19.626v39.254zM921.6 680.96c0 10.832-8.794 19.626-19.626 19.626h-779.948c-10.832 0-19.626-8.794-19.626-19.626v-39.254c0-10.832 8.794-19.626 19.626-19.626h779.948c10.832 0 19.626 8.794 19.626 19.626v39.254z" />
11
+ <glyph unicode="&#xe901;" glyph-name="menu-cart" d="M513.065 767.324l83.968-71.967c0.041-0.020 0.061-0.041 0.102-0.061 0.676-0.594 1.434-1.106 2.212-1.577 0.102-0.061 0.205-0.123 0.328-0.184 0.758-0.43 1.536-0.819 2.355-1.106 0.143-0.041 0.266-0.102 0.389-0.143 0.819-0.287 1.659-0.492 2.499-0.655 0.143-0.020 0.266-0.041 0.41-0.061 1.761-0.328 3.564-0.328 5.325 0 0.143 0.020 0.266 0.020 0.41 0.061 0.84 0.164 1.679 0.369 2.499 0.655 0.123 0.041 0.246 0.102 0.389 0.143 0.819 0.307 1.597 0.676 2.355 1.106 0.123 0.061 0.225 0.123 0.328 0.184 0.778 0.471 1.516 0.983 2.212 1.577 0.041 0.020 0.061 0.041 0.102 0.061l83.968 71.967c7.045 6.042 7.864 16.65 1.823 23.675-6.021 7.045-16.65 7.864-23.675 1.823l-56.259-48.21v198.595c0 9.277-7.496 16.794-16.773 16.794s-16.794-7.516-16.794-16.794v-198.615l-56.238 48.23c-7.045 6.042-17.633 5.222-23.675-1.823-6.124-7.025-5.304-17.633 1.741-23.675v0zM32.174 751.124h102.441c33.649 0.123 62.321-24.31 67.543-57.528l81.080-608.010c0-0.123 0.020-0.287 0.041-0.41 7.68-49.684 50.524-86.282 100.762-86.077h14.090c6.185-36.434 37.765-63.119 74.752-63.119 36.966 0 68.547 26.685 74.732 63.119h140.288c6.492-38.031 40.53-65.167 79.094-62.956s69.284 33.034 71.373 71.598c2.13 38.543-25.088 72.52-63.16 78.93s-74.875-16.835-85.484-53.965h-143.954c-9.277 32.563-39.035 55.009-72.888 55.009s-63.631-22.446-72.909-55.009h-15.933c-33.649-0.143-62.321 24.33-67.564 57.549l-24.433 183.255h523.981c43.459 0 82.145 27.546 96.399 68.608l95.232 274.883c1.782 5.14 0.963 10.813-2.171 15.237-3.154 4.424-8.253 7.066-13.701 7.066h-748.483l-7.864 58.941c-0.020 0.143-0.020 0.287-0.061 0.41-7.66 49.684-50.504 86.262-100.762 86.057h-102.42c-9.277 0-16.794-7.516-16.794-16.794s7.496-16.773 16.773-16.794v0zM762.655 54.149c23.347 0 42.25-18.903 42.25-42.25 0-23.327-18.903-42.25-42.25-42.25s-42.25 18.924-42.25 42.25c0.020 23.306 18.944 42.23 42.25 42.25zM472.883 54.149c23.327 0 42.25-18.903 42.25-42.25 0-23.327-18.903-42.25-42.25-42.25s-42.25 18.924-42.25 42.25c0.041 23.306 18.944 42.23 42.25 42.25v0zM968.233 605.716l-87.511-252.58c-9.564-27.566-35.492-46.019-64.655-46.019h-528.466l-39.813 298.619h720.445z" />
12
+ <glyph unicode="&#xe902;" glyph-name="copyright-widget" d="M512-64c-282.312 0-512 229.688-512 512s229.688 512 512 512 512-229.688 512-512-229.688-512-512-512zM512 896c-247.032 0-448-200.968-448-448s200.968-448 448-448 448 200.968 448 448-200.968 448-448 448zM512 191.999c-141.156 0-256.001 114.843-256.001 256.001s114.843 256.001 256.001 256.001c69.406 0 134.344-27.313 182.906-76.906l-45.749-44.749c-36.405 37.188-85.093 57.657-137.157 57.657-105.876 0-192.001-86.125-192.001-192.001s86.125-192.001 192.001-192.001c52.032 0 100.72 20.469 137.157 57.657l45.687-44.814c-48.533-49.563-113.468-76.844-182.844-76.846z" />
13
+ <glyph unicode="&#xe903;" glyph-name="retina-image" d="M512 277.333c-94.123 0-170.667 76.544-170.667 170.667s76.544 170.667 170.667 170.667 170.667-76.544 170.667-170.667-76.544-170.667-170.667-170.667zM512 554.667c-58.795 0-106.667-47.872-106.667-106.667s47.872-106.667 106.667-106.667 106.667 47.872 106.667 106.667-47.872 106.667-106.667 106.667zM512 106.667c-202.88 0-392.747 121.728-507.861 325.589-5.504 9.771-5.504 21.675 0 31.445 115.115 203.904 304.981 325.632 507.861 325.632s392.747-121.728 507.861-325.589c5.504-9.771 5.504-21.675 0-31.445-115.115-203.904-304.981-325.632-507.861-325.632zM69.035 448c104.235-174.037 268.672-277.333 442.965-277.333s338.731 103.296 442.965 277.333c-104.235 174.037-268.672 277.333-442.965 277.333s-338.731-103.296-442.965-277.333zM992 603.819c-17.664 0-32 14.336-32 32v206.848c0 29.397-23.936 53.333-53.333 53.333h-206.848c-17.664 0-32 14.336-32 32s14.336 32 32 32h206.848c64.683 0 117.333-52.651 117.333-117.333v-206.848c0-17.664-14.336-32-32-32zM32 603.819c-17.664 0-32 14.336-32 32v206.848c0 64.683 52.651 117.333 117.333 117.333h206.848c17.664 0 32-14.336 32-32s-14.336-32-32-32h-206.848c-29.397 0-53.333-23.936-53.333-53.333v-206.848c0-17.664-14.336-32-32-32zM906.667-64h-206.848c-17.664 0-32 14.336-32 32s14.336 32 32 32h206.848c29.397 0 53.333 23.936 53.333 53.333v206.848c0 17.664 14.336 32 32 32s32-14.336 32-32v-206.848c0-64.683-52.651-117.333-117.333-117.333zM324.181-64h-206.848c-64.683 0-117.333 52.651-117.333 117.333v206.848c0 17.664 14.336 32 32 32s32-14.336 32-32v-206.848c0-29.397 23.936-53.333 53.333-53.333h206.848c17.664 0 32-14.336 32-32s-14.336-32-32-32z" />
14
+ <glyph unicode="&#xe904;" glyph-name="page-title" d="M553.613 952.083c-4.695 4.946-11.132 7.913-17.805 7.913h-399.462c-73.71 0-134.555-60.602-134.555-134.304v-755.383c0-73.712 60.845-134.312 134.555-134.312h542.175c73.71 0 134.555 60.6 134.555 134.312v599.803c0 6.429-2.968 12.609-7.172 17.314l-252.291 264.657zM560.785 872.683l168.938-177.344h-109.82c-32.65 0-59.117 26.217-59.117 58.867v118.477zM678.521-14.535h-542.175c-46.25 0-85.086 38.335-85.086 84.844v755.383c0 46.25 38.585 84.836 85.086 84.836h374.97v-156.321c0-60.101 48.485-108.336 108.586-108.336h143.705v-575.564c0-46.509-38.587-84.842-85.086-84.842zM300.571 417.609c7.633 0 13.879 6.242 13.879 13.879v16.795h61.069v-144.352h-25.953c-7.637 0-13.881-6.248-13.881-13.883 0-7.631 6.244-13.879 13.881-13.879h79.806c7.639 0 13.881 6.248 13.881 13.879 0 7.635-6.242 13.883-13.881 13.883h-26.093v144.348h61.075v-16.795c0-7.633 6.242-13.879 13.879-13.879 7.633 0 13.879 6.246 13.879 13.879v31.093c0 7.637-6.523 13.462-14.156 13.462h-177.11c-7.633 0-14.156-5.825-14.156-13.462v-31.093c-0.002-7.633 6.246-13.875 13.879-13.875z" />
15
+ <glyph unicode="&#xe905;" glyph-name="site-logo" d="M619.652 354.789l-53.825-61.702-112.904 160.165c-4.644 6.978-12.637 10.976-21.005 10.504-8.217-0.193-15.919-4.046-21.005-10.504l-173.292-233.682c-5.975-8.956-6.968-20.341-2.626-30.194 4.219-9.539 13.25-16.062 23.631-17.067h480.492c10.38 1.005 19.414 7.528 23.631 17.067 4.372 9.4 3.37 20.424-2.626 28.882l-99.774 133.908c-4.402 6.752-11.662 11.109-19.693 11.815-8.079 0.525-15.909-2.902-21.005-9.192zM526.441 224.821h-215.304l120.779 162.791 114.215-162.791h-19.69zM686.606 224.821h-76.144l-13.127 21.005 40.698 45.949 48.573-66.954zM573.702 426.995c44.228 0 80.081 35.853 80.081 80.081s-35.853 80.081-80.081 80.081-80.081-35.853-80.081-80.081v0c0-44.228 35.853-80.081 80.081-80.081zM546.134 507.076c0 15.225 12.343 27.568 27.568 27.568s27.568-12.343 27.568-27.568c0-15.225-12.343-27.568-27.568-27.568s-27.568 12.343-27.568 27.568c0 0 0 0 0 0zM911.099 675.119l-278.32 277.003c-4.847 4.948-11.453 7.777-18.379 7.878h-378.092c-72.505 0-131.282-58.777-131.282-131.282v-761.435c0-72.505 58.777-131.282 131.282-131.282h551.386c72.505 0 131.282 58.777 131.282 131.282v589.458c-0.101 6.923-2.932 13.529-7.878 18.379zM643.282 697.435v170.668l185.107-183.795h-171.98c-6.481-0.771-12.358 3.857-13.127 10.338-0.111 0.925-0.111 1.862 0 2.789zM866.461 67.282c0-43.502-35.267-78.769-78.769-78.769h-551.383c-43.502 0-78.769 35.265-78.769 78.769v761.435c0 43.502 35.265 78.769 78.769 78.769h354.461v-210.052c0-36.252 29.387-65.64 65.64-65.64h210.052v-564.513z" />
16
+ <glyph unicode="&#xe906;" glyph-name="site-tagline" d="M553.613 952.083c-4.695 4.946-11.132 7.913-17.805 7.913h-399.462c-73.71 0-134.555-60.602-134.555-134.304v-755.383c0-73.712 60.845-134.312 134.555-134.312h542.175c73.71 0 134.555 60.6 134.555 134.312v599.803c0 6.429-2.968 12.609-7.172 17.314l-252.291 264.657zM560.785 872.683l168.938-177.344h-109.82c-32.65 0-59.117 26.217-59.117 58.867v118.477zM678.521-14.535h-542.175c-46.25 0-85.086 38.335-85.086 84.844v755.383c0 46.25 38.585 84.836 85.086 84.836h374.97v-156.321c0-60.101 48.485-108.336 108.586-108.336h143.705v-575.564c0-46.509-38.587-84.842-85.086-84.842zM535.324 446.395h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM535.324 352.211h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM535.324 262.65h-354.679c-11.849 0-21.548-7.008-21.548-15.58 0-8.567 9.699-15.578 21.548-15.578h354.895c11.849 0 21.548 7.012 21.548 15.578 0 8.573-9.699 15.58-21.765 15.58zM178.859 677.192c8.016 0 14.576 6.555 14.576 14.574v17.636h64.131v-151.588h-27.255c-8.020 0-14.576-6.561-14.576-14.576s6.557-14.574 14.576-14.574h83.806c8.020 0 14.576 6.561 14.576 14.574 0 8.016-6.555 14.576-14.576 14.576h-27.402v151.584h64.135v-17.636c0-8.016 6.555-14.574 14.574-14.574 8.016 0 14.576 6.559 14.576 14.574v32.65c0 8.020-6.851 14.14-14.867 14.14h-185.985c-8.016 0-14.865-6.118-14.865-14.14v-32.65c-0.002-8.016 6.559-14.57 14.574-14.57z" />
17
+ <glyph unicode="&#xe907;" glyph-name="site-title" d="M659.821 954.086c-4.695 4.945-11.133 7.914-17.805 7.914h-399.462c-73.711 0-134.555-60.602-134.555-134.305v-755.384c0-73.711 60.844-134.313 134.555-134.313h542.173c73.711 0 134.555 60.602 134.555 134.313v599.806c0 6.43-2.969 12.609-7.172 17.313zM666.992 874.687l168.938-177.344h-109.821c-32.648 0-59.117 26.219-59.117 58.867zM784.727-12.533h-542.173c-46.25 0-85.086 38.336-85.086 84.844v755.384c0 46.25 38.586 84.836 85.086 84.836h374.969v-156.321c0-60.102 48.484-108.336 108.586-108.336h143.703v-575.564c0-46.508-38.586-84.844-85.086-84.844zM717.204 158.131h-407.126c-13.602 0-24.734-11.125-24.734-24.734 0-13.602 11.133-24.734 24.734-24.734h407.376c13.602 0 24.734 11.133 24.734 24.734 0 13.609-11.133 24.734-24.984 24.734zM355.343 504.171c13.602 0 24.734 11.125 24.734 24.734v29.93h108.828v-257.243h-46.25c-13.609 0-24.734-11.133-24.734-24.734s11.125-24.734 24.734-24.734h142.219c13.609 0 24.734 11.133 24.734 24.734s-11.125 24.734-24.734 24.734h-46.5v257.235h108.836v-29.93c0-13.602 11.125-24.734 24.734-24.734 13.602 0 24.734 11.133 24.734 24.734v55.406c0 13.609-11.625 23.992-25.227 23.992h-315.618c-13.602 0-25.227-10.383-25.227-23.992v-55.406c0-13.602 11.133-24.727 24.734-24.727z" />
18
  </font></defs></svg>
assets/fonts/hfe.ttf CHANGED
Binary file
assets/fonts/hfe.woff CHANGED
Binary file
header-footer-elementor.php CHANGED
@@ -7,12 +7,12 @@
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
- * Version: 1.3.1
11
  *
12
  * @package header-footer-elementor
13
  */
14
 
15
- define( 'HFE_VER', '1.3.1' );
16
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
17
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
18
  define( 'HFE_PATH', plugin_basename( __FILE__ ) );
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
+ * Version: 1.4.0
11
  *
12
  * @package header-footer-elementor
13
  */
14
 
15
+ define( 'HFE_VER', '1.4.0' );
16
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
17
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
18
  define( 'HFE_PATH', plugin_basename( __FILE__ ) );
inc/class-header-footer-elementor.php CHANGED
@@ -70,6 +70,8 @@ class Header_Footer_Elementor {
70
  require HFE_DIR . 'themes/oceanwp/class-hfe-oceanwp-compat.php';
71
  } elseif ( 'storefront' == $this->template ) {
72
  require HFE_DIR . 'themes/storefront/class-hfe-storefront-compat.php';
 
 
73
  } else {
74
  add_action( 'init', [ $this, 'setup_unsupported_theme' ] );
75
  }
70
  require HFE_DIR . 'themes/oceanwp/class-hfe-oceanwp-compat.php';
71
  } elseif ( 'storefront' == $this->template ) {
72
  require HFE_DIR . 'themes/storefront/class-hfe-storefront-compat.php';
73
+ } elseif ( 'hello-elementor' == $this->template ) {
74
+ require HFE_DIR . 'themes/hello-elementor/class-hfe-hello-elementor-compat.php';
75
  } else {
76
  add_action( 'init', [ $this, 'setup_unsupported_theme' ] );
77
  }
inc/compatibility/class-hfe-wpml-compatibility.php CHANGED
@@ -46,6 +46,7 @@ class HFE_WPML_Compatibility {
46
  private function __construct() {
47
  add_filter( 'hfe_get_settings_type_header', [ $this, 'get_wpml_object' ] );
48
  add_filter( 'hfe_get_settings_type_footer', [ $this, 'get_wpml_object' ] );
 
49
  add_filter( 'hfe_render_template_id', [ $this, 'get_wpml_object' ] );
50
  }
51
 
46
  private function __construct() {
47
  add_filter( 'hfe_get_settings_type_header', [ $this, 'get_wpml_object' ] );
48
  add_filter( 'hfe_get_settings_type_footer', [ $this, 'get_wpml_object' ] );
49
+ add_filter( 'hfe_get_settings_type_before_footer', [ $this, 'get_wpml_object' ] );
50
  add_filter( 'hfe_render_template_id', [ $this, 'get_wpml_object' ] );
51
  }
52
 
inc/js/hfe-elementor-pro-compatibility.js ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($){
2
+
3
+ EHF_EPRO_Compatibility = {
4
+
5
+ /**
6
+ * Binds events for the Elementor Header Footer.
7
+ *
8
+ * @since 1.4.0
9
+ * @access private
10
+ * @method _bind
11
+ */
12
+ init: function() {
13
+ elementor.on( "document:loaded", function() {
14
+ setTimeout( function() {
15
+ jQuery.each( elementorFrontend.documentsManager.documents, function ( index, document ) {
16
+ var $documentElement = document.$element;
17
+ var ids_array = JSON.parse( hfe_admin.ids_array );
18
+ ids_array.forEach( function( item, index ){
19
+ var elementor_id = $documentElement.data( 'elementor-id' );
20
+ if( elementor_id == ids_array[index].id ){
21
+ $documentElement.find( '.elementor-document-handle__title' ).text( elementor.translate('edit_element', [ids_array[index].value] ) );
22
+ }
23
+ } );
24
+ });
25
+ }, 1000 );
26
+ });
27
+ }
28
+ };
29
+
30
+ /**
31
+ * Initialize EHF_EPRO_Compatibility
32
+ */
33
+ $(function(){
34
+ EHF_EPRO_Compatibility.init();
35
+ });
36
+
37
+ })(jQuery);
inc/js/hfe-nav-menu.js CHANGED
@@ -12,7 +12,9 @@
12
  var id = $scope.data( 'id' );
13
  var wrapper = $scope.find('.elementor-widget-hfe-nav-menu ');
14
  var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
15
- var flyout_data = $( '.hfe-flyout-wrapper' ).data( 'flyout-class' );
 
 
16
 
17
  $( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
18
 
@@ -28,8 +30,6 @@
28
 
29
  _eventClick( id );
30
  }
31
-
32
- _borderClass( id );
33
 
34
  $( '.elementor-element-' + id + ' .hfe-flyout-trigger .hfe-nav-menu-icon' ).off( 'click keyup' ).on( 'click keyup', function() {
35
 
@@ -55,6 +55,13 @@
55
  $scope.find( parent ).removeClass( 'parent-has-no-child' );
56
  });
57
 
 
 
 
 
 
 
 
58
  $( window ).resize( function(){
59
 
60
  if( 'horizontal' !== layout ) {
@@ -405,6 +412,10 @@
405
 
406
  function _borderClass( id ){
407
 
 
 
 
 
408
  $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
409
 
410
  if ( window.matchMedia( "( max-width: 767px )" ).matches ) {
@@ -412,20 +423,44 @@
412
  if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet')){
413
 
414
  $( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
 
 
 
 
415
  }else{
416
 
417
  $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
 
 
 
 
418
  }
419
  }else if ( window.matchMedia( "( max-width: 1023px )" ).matches ) {
420
 
421
  if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
422
 
423
  $( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
 
 
 
 
424
  }else{
425
 
426
  $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
 
 
 
 
427
  }
428
  }
 
 
 
 
 
 
 
 
429
  }
430
 
431
  function _toggleClick( id ){
12
  var id = $scope.data( 'id' );
13
  var wrapper = $scope.find('.elementor-widget-hfe-nav-menu ');
14
  var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
15
+ var flyout_data = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'flyout-class' );
16
+ var last_item = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'last-item' );
17
+ var last_item_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'last-item' );
18
 
19
  $( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
20
 
30
 
31
  _eventClick( id );
32
  }
 
 
33
 
34
  $( '.elementor-element-' + id + ' .hfe-flyout-trigger .hfe-nav-menu-icon' ).off( 'click keyup' ).on( 'click keyup', function() {
35
 
55
  $scope.find( parent ).removeClass( 'parent-has-no-child' );
56
  });
57
 
58
+ if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
59
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().addClass( 'elementor-button-wrapper' );
60
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).addClass( 'elementor-button' );
61
+ }
62
+
63
+ _borderClass( id );
64
+
65
  $( window ).resize( function(){
66
 
67
  if( 'horizontal' !== layout ) {
412
 
413
  function _borderClass( id ){
414
 
415
+ var last_item = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'last-item' );
416
+ var last_item_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'last-item' );
417
+ var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
418
+
419
  $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
420
 
421
  if ( window.matchMedia( "( max-width: 767px )" ).matches ) {
423
  if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet')){
424
 
425
  $( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
426
+ if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
427
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().removeClass( 'elementor-button-wrapper' );
428
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).removeClass( 'elementor-button' );
429
+ }
430
  }else{
431
 
432
  $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
433
+ if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
434
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().addClass( 'elementor-button-wrapper' );
435
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).addClass( 'elementor-button' );
436
+ }
437
  }
438
  }else if ( window.matchMedia( "( max-width: 1023px )" ).matches ) {
439
 
440
  if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
441
 
442
  $( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
443
+ if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
444
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().removeClass( 'elementor-button-wrapper' );
445
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).removeClass( 'elementor-button' );
446
+ }
447
  }else{
448
 
449
  $( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
450
+ if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
451
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().addClass( 'elementor-button-wrapper' );
452
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).addClass( 'elementor-button' );
453
+ }
454
  }
455
  }
456
+
457
+ var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
458
+ if( 'expandible' == layout ){
459
+ if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
460
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().removeClass( 'elementor-button-wrapper' );
461
+ $( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).removeClass( 'elementor-button' );
462
+ }
463
+ }
464
  }
465
 
466
  function _toggleClick( id ){
inc/widgets-css/frontend.css CHANGED
@@ -135,7 +135,15 @@ div.hfe-nav-menu,
135
  -webkit-justify-content: flex-end;
136
  -moz-box-pack: end;
137
  justify-content: flex-end; }
138
-
 
 
 
 
 
 
 
 
139
  .hfe-nav-menu__align-left .hfe-nav-menu {
140
  margin-right: auto;
141
  -webkit-box-pack: start;
@@ -162,14 +170,14 @@ div.hfe-nav-menu,
162
  justify-content: center; }
163
 
164
  .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
165
- .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item{
166
  -webkit-box-pack: center;
167
  -ms-flex-pack: center;
168
  -webkit-justify-content: center;
169
  -moz-box-pack: center;
170
  justify-content: center; }
171
 
172
- .hfe-nav-menu__layout-horizontal .hfe-nav-menu{
173
  -js-display: flex;
174
  display: -webkit-box;
175
  display: -webkit-flex;
@@ -904,11 +912,25 @@ div.hfe-nav-menu,
904
  -webkit-backface-visibility: hidden;
905
  }
906
 
907
- .hfe-flyout-animating,
908
- .hfe-side,
909
- .hfe-flyout-overlay {
910
- -webkit-transition: all 0.3s;
911
- transition: all 0.3s;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
912
  }
913
 
914
  .hfe-flyout-close {
@@ -1079,6 +1101,14 @@ div.hfe-nav-menu,
1079
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
1080
  }
1081
 
 
 
 
 
 
 
 
 
1082
  /* Tablet */
1083
  @media only screen and ( max-width: 1023px ) {
1084
 
@@ -1267,7 +1297,8 @@ div.hfe-nav-menu,
1267
  }
1268
 
1269
  .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
1270
- .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item {
 
1271
  -webkit-box-pack: justify;
1272
  -webkit-justify-content: space-between;
1273
  -moz-box-pack: justify;
@@ -1280,7 +1311,8 @@ div.hfe-nav-menu,
1280
  @media only screen and ( max-width: 767px ) {
1281
 
1282
  .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
1283
- .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item {
 
1284
  -webkit-box-pack: justify;
1285
  -webkit-justify-content: space-between;
1286
  -moz-box-pack: justify;
@@ -1555,4 +1587,158 @@ div.hfe-nav-menu,
1555
 
1556
  .hfe-icon {
1557
  display: inline-block;
1558
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  -webkit-justify-content: flex-end;
136
  -moz-box-pack: end;
137
  justify-content: flex-end; }
138
+ .hfe-nav-menu__align-right .hfe-nav-menu__layout-vertical li.elementor-button-wrapper{
139
+ text-align: right;
140
+ }
141
+ .hfe-nav-menu__align-left .hfe-nav-menu__layout-vertical li.elementor-button-wrapper{
142
+ text-align: left;
143
+ }
144
+ .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li.elementor-button-wrapper{
145
+ text-align: center;
146
+ }
147
  .hfe-nav-menu__align-left .hfe-nav-menu {
148
  margin-right: auto;
149
  -webkit-box-pack: start;
170
  justify-content: center; }
171
 
172
  .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-menu-item,
173
+ .hfe-nav-menu__align-center .hfe-nav-menu__layout-vertical li a.hfe-sub-menu-item {
174
  -webkit-box-pack: center;
175
  -ms-flex-pack: center;
176
  -webkit-justify-content: center;
177
  -moz-box-pack: center;
178
  justify-content: center; }
179
 
180
+ .hfe-nav-menu__layout-horizontal .hfe-nav-menu {
181
  -js-display: flex;
182
  display: -webkit-box;
183
  display: -webkit-flex;
912
  -webkit-backface-visibility: hidden;
913
  }
914
 
915
+ /* No link hover effect to last menu item */
916
+
917
+ .hfe-pointer__underline .menu-item.parent a.hfe-menu-item.elementor-button:after,
918
+ .hfe-pointer__overline .menu-item.parent a.hfe-menu-item.elementor-button:before,
919
+ .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item.elementor-button:after,
920
+ .hfe-pointer__double-line .menu-item.parent a.hfe-menu-item.elementor-button:before {
921
+ height: 0px;
922
+ }
923
+
924
+ .hfe-pointer__framed .menu-item.parent a.hfe-menu-item.elementor-button:before,
925
+ .hfe-pointer__framed .menu-item.parent a.hfe-menu-item.elementor-button:after{
926
+ border-width: 0px;
927
+ }
928
+
929
+ .hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item.elementor-button:hover,
930
+ .hfe-pointer__text.hfe-animation__grow .menu-item.parent a.hfe-menu-item.elementor-button:focus
931
+ {
932
+ -webkit-transform: none;
933
+ transform: none;
934
  }
935
 
936
  .hfe-flyout-close {
1101
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
1102
  }
1103
 
1104
+ a.hfe-menu-item.elementor-button {
1105
+ display: inline-flex;
1106
+ }
1107
+
1108
+ .hfe-nav-menu li.elementor-button-wrapper {
1109
+ align-self: center;
1110
+ }
1111
+
1112
  /* Tablet */
1113
  @media only screen and ( max-width: 1023px ) {
1114
 
1297
  }
1298
 
1299
  .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
1300
+ .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item,
1301
+ .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.elementor-button-wrapper {
1302
  -webkit-box-pack: justify;
1303
  -webkit-justify-content: space-between;
1304
  -moz-box-pack: justify;
1311
  @media only screen and ( max-width: 767px ) {
1312
 
1313
  .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-menu-item,
1314
+ .hfe-nav-menu__breakpoint-mobile.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li a.hfe-sub-menu-item
1315
+ .hfe-nav-menu__breakpoint-tablet.hfe-nav-menu__align-justify .hfe-nav-menu__layout-horizontal .hfe-nav-menu li.elementor-button-wrapper {
1316
  -webkit-box-pack: justify;
1317
  -webkit-justify-content: space-between;
1318
  -moz-box-pack: justify;
1587
 
1588
  .hfe-icon {
1589
  display: inline-block;
1590
+ }
1591
+
1592
+ /* Menu Cart CSS */
1593
+
1594
+ .hfe-cart-menu-wrap-custom {
1595
+ display: inline-block;
1596
+ line-height: 1;
1597
+ }
1598
+
1599
+ .hfe-cart-menu-wrap-custom .count,
1600
+ .hfe-cart-menu-wrap-custom .count:after {
1601
+ border-color: #75c32c;
1602
+ color: #75c32c;
1603
+ }
1604
+
1605
+ .hfe-cart-menu-wrap-custom .count {
1606
+ font-weight: bold;
1607
+ position: relative;
1608
+ display: inline-block;
1609
+ vertical-align: middle;
1610
+ text-align: center;
1611
+ min-width: 2.1em;
1612
+ min-height: 2.1em;
1613
+ font-size: 0.860em;
1614
+ line-height: 1.8;
1615
+ border-radius: 0.3em 0.3em 0.3em 0.3em;
1616
+ border-width: 2px;
1617
+ border-style: solid;
1618
+ padding: 12px 24px;
1619
+ }
1620
+
1621
+ /* Default skin for cart*/
1622
+ .hfe-cart-menu-wrap-default {
1623
+ display: inline-block;
1624
+ line-height: 1;
1625
+ }
1626
+
1627
+ .hfe-cart-menu-wrap-default .count,
1628
+ .hfe-cart-menu-wrap-default .count:after {
1629
+ border-color: #75c32c;
1630
+ color: #75c32c;
1631
+ }
1632
+
1633
+ .hfe-cart-menu-wrap-default .count {
1634
+ font-weight: bold;
1635
+ position: relative;
1636
+ display: inline-block;
1637
+ vertical-align: middle;
1638
+ text-align: center;
1639
+ min-width: 2.1em;
1640
+ min-height: 2.1em;
1641
+ font-size: 0.860em;
1642
+ line-height: 1.8;
1643
+ border-radius: 0em 0em 0.3em 0.3em;
1644
+ border-width: 2px;
1645
+ border-style: solid;
1646
+ padding: 0 .4em;
1647
+ }
1648
+
1649
+ .hfe-cart-menu-wrap-default .count:after {
1650
+ bottom: 100%;
1651
+ margin-bottom: 0;
1652
+ height: .8em;
1653
+ width: .8em;
1654
+ left: 50%;
1655
+ transform: translateX(-50%);
1656
+ top: -.6em;
1657
+ content: ' ';
1658
+ position: absolute;
1659
+ pointer-events: none;
1660
+ border-width: 2px;
1661
+ border-style: solid;
1662
+ border-top-left-radius: 10em;
1663
+ border-top-right-radius: 10em;
1664
+ border-bottom: 0;
1665
+ }
1666
+
1667
+ .elementor-widget-hfe-cart:not(.hfe-menu-cart--show-subtotal-yes) .hfe-menu-cart__toggle .elementor-button-text {
1668
+ display: none;
1669
+ }
1670
+
1671
+ .elementor-widget-hfe-cart.toggle-icon--bag-light .hfe-menu-cart__toggle .elementor-button-icon i:before {
1672
+ content: '\e8e3';
1673
+ }
1674
+
1675
+ .elementor-widget-hfe-cart.toggle-icon--bag-medium .hfe-menu-cart__toggle .elementor-button-icon i:before {
1676
+ content: '\e8e4';
1677
+ }
1678
+
1679
+ .elementor-widget-hfe-cart.toggle-icon--bag-solid .hfe-menu-cart__toggle .elementor-button-icon i:before {
1680
+ content: '\e8e5';
1681
+ }
1682
+
1683
+ .hfe-menu-cart__toggle .elementor-button {
1684
+ background: transparent;
1685
+ border-radius: 0;
1686
+ color: #818a91;
1687
+ border: 1px solid;
1688
+ border-color: inherit;
1689
+ display: -webkit-inline-box;
1690
+ display: -ms-inline-flexbox;
1691
+ display: inline-flex;
1692
+ -webkit-box-align: center;
1693
+ -ms-flex-align: center;
1694
+ align-items: center;
1695
+ }
1696
+
1697
+ .hfe-menu-cart__toggle .elementor-button-text {
1698
+ margin-right: 0.3em; }
1699
+
1700
+ .hfe-menu-cart__toggle .elementor-button-icon {
1701
+ position: relative;
1702
+ -webkit-transition: color 0.1s;
1703
+ -o-transition: color 0.1s;
1704
+ transition: color 0.1s;
1705
+ }
1706
+
1707
+ .hfe-menu-cart--items-indicator-bubble .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before {
1708
+ content: attr(data-counter);
1709
+ display: block;
1710
+ position: absolute;
1711
+ min-width: 1.6em;
1712
+ height: 1.6em;
1713
+ line-height: 1.5em;
1714
+ top: -0.7em;
1715
+ right: -0.7em;
1716
+ border-radius: 100%;
1717
+ color: #fff;
1718
+ background-color: #d9534f;
1719
+ text-align: center;
1720
+ font-size: 10px;
1721
+ }
1722
+
1723
+ .hfe-menu-cart--items-indicator-plain .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before {
1724
+ content: attr(data-counter);
1725
+ display: inline-block;
1726
+ font-weight: normal;
1727
+ }
1728
+
1729
+ .hfe-menu-cart--empty-indicator-hide .hfe-menu-cart__toggle .elementor-button .elementor-button-icon[data-counter]:before {
1730
+ content: none;
1731
+ display: none;
1732
+ }
1733
+
1734
+ .hfe-menu-cart__toggle .elementor-button-icon {
1735
+ -webkit-box-ordinal-group: 16;
1736
+ -webkit-order: 15;
1737
+ -ms-flex-order: 15;
1738
+ order: 15;
1739
+ }
1740
+
1741
+ .hfe-menu-cart__toggle.elementor-button-wrapper .elementor-button {
1742
+ color:#4d4848;
1743
+ }
1744
+
inc/widgets-manager/class-widgets-loader.php CHANGED
@@ -93,6 +93,7 @@ class Widgets_Loader {
93
  'page-title',
94
  'site-tagline',
95
  'site-logo',
 
96
  ];
97
 
98
  return $widget_list;
@@ -107,7 +108,6 @@ class Widgets_Loader {
107
  * @access public
108
  */
109
  public function include_widgets_files() {
110
-
111
  $js_files = $this->get_widget_script();
112
  $widget_list = $this->get_widget_list();
113
 
@@ -119,7 +119,6 @@ class Widgets_Loader {
119
 
120
  if ( ! empty( $js_files ) ) {
121
  foreach ( $js_files as $handle => $data ) {
122
-
123
  wp_register_script( $handle, HFE_URL . $data['path'], $data['dep'], HFE_VER, $data['in_footer'] );
124
  }
125
  }
@@ -181,6 +180,10 @@ class Widgets_Loader {
181
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Title() );
182
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Tagline() );
183
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Logo() );
 
 
 
 
184
  }
185
  }
186
 
93
  'page-title',
94
  'site-tagline',
95
  'site-logo',
96
+ 'cart',
97
  ];
98
 
99
  return $widget_list;
108
  * @access public
109
  */
110
  public function include_widgets_files() {
 
111
  $js_files = $this->get_widget_script();
112
  $widget_list = $this->get_widget_list();
113
 
119
 
120
  if ( ! empty( $js_files ) ) {
121
  foreach ( $js_files as $handle => $data ) {
 
122
  wp_register_script( $handle, HFE_URL . $data['path'], $data['dep'], HFE_VER, $data['in_footer'] );
123
  }
124
  }
180
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Title() );
181
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Tagline() );
182
  Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Site_Logo() );
183
+
184
+ if ( class_exists( 'woocommerce' ) ) {
185
+ Plugin::instance()->widgets_manager->register_widget_type( new Widgets\Cart() );
186
+ }
187
  }
188
  }
189
 
inc/widgets-manager/widgets/class-cart.php ADDED
@@ -0,0 +1,625 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Elementor Classes.
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ namespace HFE\WidgetsManager\Widgets;
9
+
10
+ use Elementor\Controls_Manager;
11
+ use Elementor\Group_Control_Typography;
12
+ use Elementor\Scheme_Typography;
13
+ use Elementor\Widget_Base;
14
+ use Elementor\Group_Control_Text_Shadow;
15
+ use Elementor\Scheme_Color;
16
+ use Elementor\Core\Schemes;
17
+ use Elementor\Group_Control_Border;
18
+
19
+ if ( ! defined( 'ABSPATH' ) ) {
20
+ exit; // Exit if accessed directly.
21
+ }
22
+
23
+ /**
24
+ * HFE Cart Widget
25
+ *
26
+ * @since 1.4.0
27
+ */
28
+ class Cart extends Widget_Base {
29
+
30
+ /**
31
+ * Retrieve the widget name.
32
+ *
33
+ * @since 1.4.0
34
+ *
35
+ * @access public
36
+ *
37
+ * @return string Widget name.
38
+ */
39
+ public function get_name() {
40
+ return 'hfe-cart';
41
+ }
42
+
43
+ /**
44
+ * Retrieve the widget title.
45
+ *
46
+ * @since 1.4.0
47
+ *
48
+ * @access public
49
+ *
50
+ * @return string Widget title.
51
+ */
52
+ public function get_title() {
53
+ return __( 'Cart', 'header-footer-elementor' );
54
+ }
55
+
56
+ /**
57
+ * Retrieve the widget icon.
58
+ *
59
+ * @since 1.4.0
60
+ *
61
+ * @access public
62
+ *
63
+ * @return string Widget icon.
64
+ */
65
+ public function get_icon() {
66
+ return 'hfe-icon-menu-cart';
67
+ }
68
+
69
+ /**
70
+ * Retrieve the list of categories the widget belongs to.
71
+ *
72
+ * Used to determine where to display the widget in the editor.
73
+ *
74
+ * Note that currently Elementor supports only one category.
75
+ * When multiple categories passed, Elementor uses the first one.
76
+ *
77
+ * @since 1.4.0
78
+ *
79
+ * @access public
80
+ *
81
+ * @return array Widget categories.
82
+ */
83
+ public function get_categories() {
84
+ return [ 'hfe-widgets' ];
85
+ }
86
+
87
+ /**
88
+ * Register cart controls controls.
89
+ *
90
+ * @since 1.4.0
91
+ * @access protected
92
+ */
93
+ protected function _register_controls() {
94
+
95
+ $this->register_general_content_controls();
96
+ $this->register_cart_typo_content_controls();
97
+ }
98
+
99
+ /**
100
+ * Register Menu Cart General Controls.
101
+ *
102
+ * @since 1.4.0
103
+ * @access protected
104
+ */
105
+ protected function register_general_content_controls() {
106
+
107
+ $this->start_controls_section(
108
+ 'section_general_fields',
109
+ [
110
+ 'label' => __( 'Menu Cart', 'header-footer-elementor' ),
111
+ ]
112
+ );
113
+
114
+ $this->add_control(
115
+ 'hfe_cart_type',
116
+ [
117
+ 'label' => __( 'Type', 'header-footer-elementor' ),
118
+ 'type' => Controls_Manager::SELECT,
119
+ 'default' => 'default',
120
+ 'options' => [
121
+ 'default' => __( 'Default', 'header-footer-elementor' ),
122
+ 'custom' => __( 'Custom', 'header-footer-elementor' ),
123
+ ],
124
+ ]
125
+ );
126
+
127
+ $this->add_control(
128
+ 'icon',
129
+ [
130
+ 'label' => __( 'Icon', 'header-footer-elementor' ),
131
+ 'type' => Controls_Manager::SELECT,
132
+ 'options' => [
133
+ 'bag-light' => __( 'Bag Light', 'header-footer-elementor' ),
134
+ 'bag-medium' => __( 'Bag Medium', 'header-footer-elementor' ),
135
+ 'bag-solid' => __( 'Bag Solid', 'header-footer-elementor' ),
136
+ ],
137
+ 'default' => 'bag-light',
138
+ 'prefix_class' => 'toggle-icon--',
139
+ 'condition' => [
140
+ 'hfe_cart_type' => 'custom',
141
+ ],
142
+ ]
143
+ );
144
+
145
+ $this->add_control(
146
+ 'items_indicator',
147
+ [
148
+ 'label' => __( 'Items Count', 'header-footer-elementor' ),
149
+ 'type' => Controls_Manager::SELECT,
150
+ 'options' => [
151
+ 'none' => __( 'None', 'header-footer-elementor' ),
152
+ 'bubble' => __( 'Bubble', 'header-footer-elementor' ),
153
+ ],
154
+ 'prefix_class' => 'hfe-menu-cart--items-indicator-',
155
+ 'default' => 'bubble',
156
+ 'condition' => [
157
+ 'hfe_cart_type' => 'custom',
158
+ ],
159
+ ]
160
+ );
161
+
162
+ $this->add_control(
163
+ 'show_subtotal',
164
+ [
165
+ 'label' => __( 'Show Total Price', 'header-footer-elementor' ),
166
+ 'type' => Controls_Manager::SWITCHER,
167
+ 'label_on' => __( 'Yes', 'header-footer-elementor' ),
168
+ 'label_off' => __( 'No', 'header-footer-elementor' ),
169
+ 'return_value' => 'yes',
170
+ 'default' => 'yes',
171
+ 'prefix_class' => 'hfe-menu-cart--show-subtotal-',
172
+ 'condition' => [
173
+ 'hfe_cart_type' => 'custom',
174
+ ],
175
+ ]
176
+ );
177
+
178
+ $this->add_control(
179
+ 'hide_empty_indicator',
180
+ [
181
+ 'label' => __( 'Hide Empty', 'header-footer-elementor' ),
182
+ 'type' => Controls_Manager::SWITCHER,
183
+ 'label_on' => __( 'Yes', 'header-footer-elementor' ),
184
+ 'label_off' => __( 'No', 'header-footer-elementor' ),
185
+ 'return_value' => 'hide',
186
+ 'prefix_class' => 'hfe-menu-cart--empty-indicator-',
187
+ 'description' => __( 'This will hide the items count until the cart is empty', 'header-footer-elementor' ),
188
+ 'condition' => [
189
+ 'items_indicator!' => 'none',
190
+ 'hfe_cart_type' => 'custom',
191
+ ],
192
+ ]
193
+ );
194
+
195
+ $this->add_responsive_control(
196
+ 'align',
197
+ [
198
+ 'label' => __( 'Alignment', 'header-footer-elementor' ),
199
+ 'type' => Controls_Manager::CHOOSE,
200
+ 'options' => [
201
+ 'left' => [
202
+ 'title' => __( 'Left', 'header-footer-elementor' ),
203
+ 'icon' => 'eicon-text-align-left',
204
+ ],
205
+ 'center' => [
206
+ 'title' => __( 'Center', 'header-footer-elementor' ),
207
+ 'icon' => 'eicon-text-align-center',
208
+ ],
209
+ 'right' => [
210
+ 'title' => __( 'Right', 'header-footer-elementor' ),
211
+ 'icon' => 'eicon-text-align-right',
212
+ ],
213
+ ],
214
+ 'prefix_class' => 'elementor%s-align-',
215
+ 'default' => '',
216
+ ]
217
+ );
218
+
219
+ $this->end_controls_section();
220
+ }
221
+
222
+
223
+ /**
224
+ * Register Menu Cart Typography Controls.
225
+ *
226
+ * @since 1.4.0
227
+ * @access protected
228
+ */
229
+ protected function register_cart_typo_content_controls() {
230
+ $this->start_controls_section(
231
+ 'section_heading_typography',
232
+ [
233
+ 'label' => __( 'Menu Cart', 'header-footer-elementor' ),
234
+ 'tab' => Controls_Manager::TAB_STYLE,
235
+ ]
236
+ );
237
+
238
+ $this->add_group_control(
239
+ Group_Control_Typography::get_type(),
240
+ [
241
+ 'name' => 'toggle_button_typography',
242
+ 'scheme' => Schemes\Typography::TYPOGRAPHY_1,
243
+ 'selector' => '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button',
244
+ 'condition' => [
245
+ 'hfe_cart_type' => 'custom',
246
+ ],
247
+ ]
248
+ );
249
+ $this->add_control(
250
+ 'icon_size',
251
+ [
252
+ 'label' => __( 'Size', 'header-footer-elementor' ),
253
+ 'type' => Controls_Manager::SLIDER,
254
+ 'range' => [
255
+ 'px' => [
256
+ 'min' => 15,
257
+ 'max' => 30,
258
+ ],
259
+ ],
260
+ 'selectors' => [
261
+ '{{WRAPPER}} .hfe-masthead-custom-menu-items .hfe-site-header-cart .hfe-site-header-cart-li ' => 'font-size: {{SIZE}}{{UNIT}};',
262
+ ],
263
+ 'condition' => [
264
+ 'hfe_cart_type' => 'default',
265
+ ],
266
+ ]
267
+ );
268
+ $this->add_control(
269
+ 'toggle_button_border_width',
270
+ [
271
+ 'label' => __( 'Border Width', 'header-footer-elementor' ),
272
+ 'type' => Controls_Manager::DIMENSIONS,
273
+ 'size_units' => [ 'px' ],
274
+ 'default' => [
275
+ 'top' => '1',
276
+ 'bottom' => '1',
277
+ 'left' => '1',
278
+ 'right' => '1',
279
+ 'unit' => 'px',
280
+ ],
281
+ 'selectors' => [
282
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button,{{WRAPPER}} .hfe-cart-menu-wrap-default .count:after,.hfe-cart-menu-wrap-default .count' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
283
+ ],
284
+ ]
285
+ );
286
+
287
+ $this->add_control(
288
+ 'toggle_button_border_radius',
289
+ [
290
+ 'label' => __( 'Border Radius', 'header-footer-elementor' ),
291
+ 'type' => Controls_Manager::DIMENSIONS,
292
+ 'default' => [
293
+ 'top' => '',
294
+ 'bottom' => '',
295
+ 'left' => '',
296
+ 'right' => '',
297
+ 'unit' => 'px',
298
+ ],
299
+ 'size_units' => [ 'px', 'em', '%' ],
300
+ 'selectors' => [
301
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button,{{WRAPPER}} .hfe-cart-menu-wrap-default .count:after,.hfe-cart-menu-wrap-default .count' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
302
+ ],
303
+
304
+ ]
305
+ );
306
+
307
+ $this->add_responsive_control(
308
+ 'toggle_button_padding',
309
+ [
310
+ 'label' => __( 'Padding', 'header-footer-elementor' ),
311
+ 'type' => Controls_Manager::DIMENSIONS,
312
+ 'size_units' => [ 'px', 'em' ],
313
+ 'selectors' => [
314
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}',
315
+ ],
316
+ 'condition' => [
317
+ 'hfe_cart_type' => 'custom',
318
+ ],
319
+ ]
320
+ );
321
+
322
+ $this->start_controls_tabs( 'toggle_button_colors' );
323
+
324
+ $this->start_controls_tab(
325
+ 'toggle_button_normal_colors',
326
+ [
327
+ 'label' => __( 'Normal', 'header-footer-elementor' ),
328
+ ]
329
+ );
330
+
331
+ $this->add_control(
332
+ 'toggle_button_text_color',
333
+ [
334
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
335
+ 'type' => Controls_Manager::COLOR,
336
+ 'selectors' => [
337
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button,{{WRAPPER}} .hfe-cart-menu-wrap-default span.count' => 'color: {{VALUE}}',
338
+ ],
339
+ ]
340
+ );
341
+
342
+ $this->add_control(
343
+ 'toggle_button_icon_color',
344
+ [
345
+ 'label' => __( 'Icon Color', 'header-footer-elementor' ),
346
+ 'type' => Controls_Manager::COLOR,
347
+ 'selectors' => [
348
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button-icon' => 'color: {{VALUE}}',
349
+ ],
350
+ 'condition' => [
351
+ 'hfe_cart_type' => 'custom',
352
+ ],
353
+ ]
354
+ );
355
+
356
+ $this->add_control(
357
+ 'toggle_button_background_color',
358
+ [
359
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
360
+ 'type' => Controls_Manager::COLOR,
361
+ 'selectors' => [
362
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button,{{WRAPPER}} .hfe-cart-menu-wrap-default span.count' => 'background-color: {{VALUE}}',
363
+ ],
364
+ ]
365
+ );
366
+
367
+ $this->add_control(
368
+ 'toggle_button_border_color',
369
+ [
370
+ 'label' => __( 'Border Color', 'header-footer-elementor' ),
371
+ 'type' => Controls_Manager::COLOR,
372
+ 'selectors' => [
373
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button,{{WRAPPER}} .hfe-cart-menu-wrap-default .count:after,.hfe-cart-menu-wrap-default .count' => 'border-color: {{VALUE}}',
374
+ ],
375
+ ]
376
+ );
377
+
378
+ $this->end_controls_tab();
379
+
380
+ $this->start_controls_tab(
381
+ 'toggle_button_hover_colors',
382
+ [
383
+ 'label' => __( 'Hover', 'header-footer-elementor' ),
384
+ ]
385
+ );
386
+
387
+ $this->add_control(
388
+ 'toggle_button_hover_text_color',
389
+ [
390
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
391
+ 'type' => Controls_Manager::COLOR,
392
+ 'selectors' => [
393
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button:hover,{{WRAPPER}} .hfe-cart-menu-wrap-default span.count:hover' => 'color: {{VALUE}}',
394
+ ],
395
+ ]
396
+ );
397
+
398
+ $this->add_control(
399
+ 'toggle_button_hover_icon_color',
400
+ [
401
+ 'label' => __( 'Icon Color', 'header-footer-elementor' ),
402
+ 'type' => Controls_Manager::COLOR,
403
+ 'selectors' => [
404
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button:hover .elementor-button-icon' => 'color: {{VALUE}}',
405
+ ],
406
+ 'condition' => [
407
+ 'hfe_cart_type' => 'custom',
408
+ ],
409
+ ]
410
+ );
411
+
412
+ $this->add_control(
413
+ 'toggle_button_hover_background_color',
414
+ [
415
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
416
+ 'type' => Controls_Manager::COLOR,
417
+ 'selectors' => [
418
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button:hover,{{WRAPPER}} .hfe-cart-menu-wrap-default span.count:hover' => 'background-color: {{VALUE}}',
419
+ ],
420
+ ]
421
+ );
422
+
423
+ $this->add_control(
424
+ 'toggle_button_hover_border_color',
425
+ [
426
+ 'label' => __( 'Border Color', 'header-footer-elementor' ),
427
+ 'type' => Controls_Manager::COLOR,
428
+ 'selectors' => [
429
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button:hover,{{WRAPPER}} .hfe-cart-menu-wrap-default:hover .count:after,.hfe-cart-menu-wrap-default:hover .count' => 'border-color: {{VALUE}}',
430
+ ],
431
+ ]
432
+ );
433
+
434
+ $this->end_controls_tab();
435
+
436
+ $this->end_controls_tabs();
437
+ $this->add_control(
438
+ 'toggle_icon_size',
439
+ [
440
+ 'label' => __( 'Icon Size', 'header-footer-elementor' ),
441
+ 'type' => Controls_Manager::SLIDER,
442
+ 'range' => [
443
+ 'px' => [
444
+ 'min' => 0,
445
+ 'max' => 50,
446
+ ],
447
+ ],
448
+ 'size_units' => [ 'px', 'em' ],
449
+ 'selectors' => [
450
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button-icon' => 'font-size: {{SIZE}}{{UNIT}}',
451
+ ],
452
+ 'condition' => [
453
+ 'hfe_cart_type' => 'custom',
454
+ ],
455
+ 'separator' => 'before',
456
+ ]
457
+ );
458
+
459
+ $this->add_control(
460
+ 'toggle_icon_spacing',
461
+ [
462
+ 'label' => __( 'Icon Spacing', 'header-footer-elementor' ),
463
+ 'type' => Controls_Manager::SLIDER,
464
+ 'range' => [
465
+ 'px' => [
466
+ 'min' => 0,
467
+ 'max' => 50,
468
+ ],
469
+ ],
470
+ 'size-units' => [ 'px', 'em' ],
471
+ 'selectors' => [
472
+ 'body:not(.rtl) {{WRAPPER}} .hfe-menu-cart__toggle .elementor-button-text' => 'margin-right: {{SIZE}}{{UNIT}}',
473
+ 'body.rtl {{WRAPPER}} .hfe-menu-cart__toggle .elementor-button-text' => 'margin-left: {{SIZE}}{{UNIT}}',
474
+ ],
475
+ 'condition' => [
476
+ 'hfe_cart_type' => 'custom',
477
+ ],
478
+ ]
479
+ );
480
+
481
+ $this->end_controls_section();
482
+
483
+ $this->start_controls_section(
484
+ 'section_icon',
485
+ [
486
+ 'label' => __( 'Items Count', 'header-footer-elementor' ),
487
+ 'tab' => Controls_Manager::TAB_STYLE,
488
+ 'condition' => [
489
+ 'icon[value]!' => '',
490
+ 'items_indicator!' => 'none',
491
+ 'hfe_cart_type' => 'custom',
492
+ ],
493
+ ]
494
+ );
495
+
496
+ $this->add_control(
497
+ 'items_indicator_text_color',
498
+ [
499
+ 'label' => __( 'Text Color', 'header-footer-elementor' ),
500
+ 'type' => Controls_Manager::COLOR,
501
+ 'selectors' => [
502
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before' => 'color: {{VALUE}}',
503
+ ],
504
+ 'condition' => [
505
+ 'items_indicator!' => 'none',
506
+ ],
507
+ ]
508
+ );
509
+
510
+ $this->add_control(
511
+ 'items_indicator_background_color',
512
+ [
513
+ 'label' => __( 'Background Color', 'header-footer-elementor' ),
514
+ 'type' => Controls_Manager::COLOR,
515
+ 'selectors' => [
516
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before' => 'background-color: {{VALUE}}',
517
+ ],
518
+ 'condition' => [
519
+ 'items_indicator' => 'bubble',
520
+ ],
521
+ ]
522
+ );
523
+
524
+ $this->add_control(
525
+ 'items_indicator_distance',
526
+ [
527
+ 'label' => __( 'Distance', 'header-footer-elementor' ),
528
+ 'type' => Controls_Manager::SLIDER,
529
+ 'default' => [
530
+ 'unit' => 'em',
531
+ ],
532
+ 'range' => [
533
+ 'em' => [
534
+ 'min' => 0,
535
+ 'max' => 4,
536
+ 'step' => 0.1,
537
+ ],
538
+ ],
539
+ 'selectors' => [
540
+ '{{WRAPPER}} .hfe-menu-cart__toggle .elementor-button-icon[data-counter]:before' => 'right: -{{SIZE}}{{UNIT}}; top: -{{SIZE}}{{UNIT}}',
541
+ ],
542
+ 'condition' => [
543
+ 'items_indicator' => 'bubble',
544
+ ],
545
+ ]
546
+ );
547
+
548
+ $this->end_controls_section();
549
+ }
550
+
551
+ /**
552
+ * Render Menu Cart output on the frontend.
553
+ *
554
+ * Written in PHP and used to generate the final HTML.
555
+ *
556
+ * @since 1.4.0
557
+ * @access protected
558
+ */
559
+ protected function render() {
560
+
561
+ $settings = $this->get_settings();
562
+ global $woocommerce;
563
+
564
+ if ( empty( $woocommerce ) ) {
565
+ return;
566
+ }
567
+ ?>
568
+
569
+ <div class="hfe-masthead-custom-menu-items woocommerce-custom-menu-item">
570
+ <div id="hfe-site-header-cart" class="hfe-site-header-cart hfe-menu-cart-with-border">
571
+ <div class="hfe-site-header-cart-li current-menu-item">
572
+ <?php if ( 'default' === $settings['hfe_cart_type'] ) { ?>
573
+ <a class="hfe-cart-container" href="<?php echo esc_url( wc_get_cart_url() ); ?>" title="View your shopping cart">
574
+ <div class="hfe-cart-menu-wrap-<?php echo $settings['hfe_cart_type']; ?>">
575
+ <span class="count">
576
+ <?php
577
+ echo $woocommerce->cart->cart_contents_count;
578
+ ?>
579
+ </span>
580
+ </div>
581
+ </a>
582
+ <?php } else { ?>
583
+ <div class="hfe-menu-cart__toggle elementor-button-wrapper">
584
+ <a id="hfe-menu-cart__toggle_button" href="<?php echo esc_url( wc_get_cart_url() ); ?>" class="elementor-button">
585
+ <span class="elementor-button-text">
586
+ <?php echo $woocommerce->cart->get_cart_total(); ?>
587
+ </span>
588
+ <span class="elementor-button-icon" data-counter="<?php echo $woocommerce->cart->cart_contents_count; ?>">
589
+ <i class="eicon" aria-hidden="true"></i>
590
+ <span class="elementor-screen-only">Cart</span>
591
+ </span>
592
+ </a>
593
+ <?php } ?>
594
+ </div>
595
+ </div>
596
+ </div>
597
+ <?php
598
+ }
599
+
600
+
601
+ /**
602
+ * Render Menu Cart output in the editor.
603
+ *
604
+ * Written as a Backbone JavaScript template and used to generate the live preview.
605
+ *
606
+ * @since 1.4.0
607
+ * @access protected
608
+ */
609
+ protected function content_template() {
610
+ }
611
+
612
+ /**
613
+ * Render cart output in the editor.
614
+ *
615
+ * Written as a Backbone JavaScript template and used to generate the live preview.
616
+ *
617
+ * Remove this after Elementor v3.3.0
618
+ *
619
+ * @since 1.4.0
620
+ * @access protected
621
+ */
622
+ protected function _content_template() {
623
+ $this->content_template();
624
+ }
625
+ }
inc/widgets-manager/widgets/class-navigation-menu.php CHANGED
@@ -15,6 +15,7 @@ use Elementor\Scheme_Typography;
15
  use Elementor\Scheme_Color;
16
  use Elementor\Group_Control_Border;
17
  use Elementor\Group_Control_Box_Shadow;
 
18
  use Elementor\Widget_Base;
19
  use Elementor\Plugin;
20
 
@@ -72,7 +73,7 @@ class Navigation_Menu extends Widget_Base {
72
  * @return string Widget icon.
73
  */
74
  public function get_icon() {
75
- return 'hfe-icon-navigation-menu-4';
76
  }
77
 
78
  /**
@@ -217,6 +218,19 @@ class Navigation_Menu extends Widget_Base {
217
  );
218
  }
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  $this->end_controls_section();
221
 
222
  $this->start_controls_section(
@@ -372,6 +386,8 @@ class Navigation_Menu extends Widget_Base {
372
  ],
373
  'selectors' => [
374
  '{{WRAPPER}} li.menu-item a' => 'justify-content: {{VALUE}};',
 
 
375
  ],
376
  'prefix_class' => 'hfe-menu-item-',
377
  ]
@@ -688,12 +704,14 @@ class Navigation_Menu extends Widget_Base {
688
  'selectors' => [
689
  'body:not(.rtl) {{WRAPPER}} .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-right: {{SIZE}}{{UNIT}}',
690
  'body.rtl {{WRAPPER}} .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-left: {{SIZE}}{{UNIT}}',
691
- '{{WRAPPER}} nav:not(.hfe-nav-menu__layout-horizontal) .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-bottom: 0',
692
  '(tablet)body:not(.rtl) {{WRAPPER}}.hfe-nav-menu__breakpoint-tablet .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-right: 0px',
693
  '(mobile)body:not(.rtl) {{WRAPPER}}.hfe-nav-menu__breakpoint-mobile .hfe-nav-menu__layout-horizontal .hfe-nav-menu > li.menu-item:not(:last-child)' => 'margin-right: 0px',
 
 
694
  ],
695
  'condition' => [
696
- 'layout' => 'horizontal',
697
  ],
698
  ]
699
  );
@@ -745,7 +763,6 @@ class Navigation_Menu extends Widget_Base {
745
  'type' => Controls_Manager::COLOR,
746
  'default' => '#FFFFFF',
747
  'selectors' => [
748
- '{{WRAPPER}} .menu-item a.hfe-menu-item' => 'background-color: {{VALUE}}',
749
  '{{WRAPPER}} .hfe-flyout-content' => 'background-color: {{VALUE}}',
750
  ],
751
  'condition' => [
@@ -1529,6 +1546,170 @@ class Navigation_Menu extends Widget_Base {
1529
  ]
1530
  );
1531
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1532
  $this->end_controls_section();
1533
  }
1534
 
@@ -1559,6 +1740,10 @@ class Navigation_Menu extends Widget_Base {
1559
  if ( 'flyout' === $settings['layout'] ) {
1560
 
1561
  $this->add_render_attribute( 'hfe-flyout', 'class', 'hfe-flyout-wrapper' );
 
 
 
 
1562
 
1563
  ?>
1564
  <div class="hfe-nav-menu__toggle elementor-clickable hfe-flyout-trigger" tabindex="0">
@@ -1575,7 +1760,7 @@ class Navigation_Menu extends Widget_Base {
1575
  <div class="hfe-flyout-container">
1576
  <div id="hfe-flyout-content-id-<?php echo esc_attr( $this->get_id() ); ?>" class="hfe-side hfe-flyout-<?php echo esc_attr( $settings['flyout_layout'] ); ?> hfe-flyout-open" data-width="<?php echo esc_attr( $settings['width_flyout_menu_item']['size'] ); ?>" data-layout="<?php echo wp_kses_post( $settings['flyout_layout'] ); ?>" data-flyout-type="<?php echo wp_kses_post( $settings['flyout_type'] ); ?>">
1577
  <div class="hfe-flyout-content push">
1578
- <nav <?php echo wp_kses_post( $this->get_render_attribute_string( 'hfe-nav-menu' ) ); ?>><?php echo wp_kses_post( $menu_html ); ?></nav>
1579
  <div class="elementor-clickable hfe-flyout-close" tabindex="0">
1580
  <?php if ( $this->is_elementor_updated() ) { ?>
1581
  <i class="<?php echo esc_attr( $settings['dropdown_close_icon']['value'] ); ?>" aria-hidden="true"></i>
@@ -1604,6 +1789,11 @@ class Navigation_Menu extends Widget_Base {
1604
 
1605
  $this->add_render_attribute( 'hfe-main-menu', 'data-layout', $settings['layout'] );
1606
 
 
 
 
 
 
1607
  if ( $settings['pointer'] ) {
1608
  if ( 'horizontal' === $settings['layout'] || 'vertical' === $settings['layout'] ) {
1609
  $this->add_render_attribute( 'hfe-main-menu', 'class', 'hfe-pointer__' . $settings['pointer'] );
15
  use Elementor\Scheme_Color;
16
  use Elementor\Group_Control_Border;
17
  use Elementor\Group_Control_Box_Shadow;
18
+ use Elementor\Group_Control_Background;
19
  use Elementor\Widget_Base;
20
  use Elementor\Plugin;
21
 
73
  * @return string Widget icon.
74
  */
75
  public function get_icon() {
76
+ return 'hfe-icon-navigation-menu';
77
  }
78
 
79