Header Footer Elementor - Version 1.6.0

Version Description

  • New: Added Email Subscription and About Us section on the settings page.
  • New: Renamed the plugin to Elementor Header & Footer Builder.
  • Improvement: Added an option to hide + & - sign added by Twenty Twenty-One Theme.
  • Fix: Navigation Menu - Border for dropdown is also applying to the menu trigger icon.
  • Fix: Navigation Menu - Fix top distance option for dropdown adding a top-margin to sub-menu.
  • Fix: Navigation Menu - Fixed active color issues in case of full-page anchor links used in nav links.
  • Fix: Navigation Menu - Navigation schema not working.
Download this release

Release Info

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

Code changes from version 1.5.9 to 1.6.0

admin/assets/css/ehf-admin.css CHANGED
@@ -7,18 +7,15 @@ span.hfe-shortcode-col-wrap > input {
7
  padding: 4px 8px;
8
  margin: 0;
9
  }
10
-
11
  input.hfe-large-text{
12
  width: 99%;
13
  }
14
-
15
  .hfe-options-row-heading {
16
  border-right: 1px solid #E1E1E1;
17
  padding: 15px;
18
  width: 45%;
19
  vertical-align: middle;
20
  }
21
-
22
  .hfe-options-row td {
23
  padding-left: 12px;
24
  padding-right: 12px;
@@ -26,22 +23,14 @@ input.hfe-large-text{
26
  zoom: 1;
27
  vertical-align: middle;
28
  }
29
-
30
  .hfe-options-table .hfe-options-row-content {
31
  padding: 15px 10px;
32
  position: relative;
33
  width: 55%;
34
  }
35
-
36
- .hfe-options-table.widefat{
37
  border-width: 0;
38
  }
39
-
40
- #ehf-meta-box .inside {
41
- margin: 0;
42
- padding: 0;
43
- }
44
-
45
  .hfe-options-row-heading label {
46
  display: inline-block;
47
  font-size: 13px;
@@ -51,50 +40,774 @@ input.hfe-large-text{
51
  margin: 0 0 3px;
52
  color: #333;
53
  }
54
-
55
  .hfe-options-row-content select {
56
  width: 95%;
57
  }
58
-
59
  .hfe_radio_options {
60
  display: inline-block;
61
  }
62
-
63
- li#toplevel_page_Settings-page {
 
 
64
  display: none;
65
  }
66
-
67
- .wp-admin #adminmenu .wp-submenu a[href="themes.php?page=hfe-settings"] {
68
- display:none;
69
- }
70
-
71
  .appearance_page_hfe-settings #adminmenu .wp-submenu a[href ="edit.php?post_type=elementor-hf" ] {
72
- color: white;
73
  font-weight: 600;
74
  }
75
-
76
- .hfe-heading-inline{
77
  font-size: 23px;
78
  font-weight: 400;
79
  margin: 0;
80
  padding: 9px 0 4px 0;
81
  line-height: 1.3;
82
  }
83
-
 
 
84
  .hfe-selected-template-type-custom .bsf-target-rules-row,
85
- .hfe-selected-template-type-custom .enable-for-canvas {
 
 
 
 
 
86
  display: none;
87
  }
88
-
89
- .hfe-selected-template-type-custom .hfe-shortcode {
90
- display: table-row;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  }
92
- .hfe-shortcode {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  display: none;
94
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
 
96
- .hfe-selected-template-type-none .bsf-target-rules-row,
97
- .hfe-selected-template-type-none .hfe-shortcode,
98
- .hfe-selected-template-type-none .enable-for-canvas {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  }
7
  padding: 4px 8px;
8
  margin: 0;
9
  }
 
10
  input.hfe-large-text{
11
  width: 99%;
12
  }
 
13
  .hfe-options-row-heading {
14
  border-right: 1px solid #E1E1E1;
15
  padding: 15px;
16
  width: 45%;
17
  vertical-align: middle;
18
  }
 
19
  .hfe-options-row td {
20
  padding-left: 12px;
21
  padding-right: 12px;
23
  zoom: 1;
24
  vertical-align: middle;
25
  }
 
26
  .hfe-options-table .hfe-options-row-content {
27
  padding: 15px 10px;
28
  position: relative;
29
  width: 55%;
30
  }
31
+ .hfe-options-table.widefat {
 
32
  border-width: 0;
33
  }
 
 
 
 
 
 
34
  .hfe-options-row-heading label {
35
  display: inline-block;
36
  font-size: 13px;
40
  margin: 0 0 3px;
41
  color: #333;
42
  }
 
43
  .hfe-options-row-content select {
44
  width: 95%;
45
  }
 
46
  .hfe_radio_options {
47
  display: inline-block;
48
  }
49
+ li#toplevel_page_Settings-page,
50
+ .wp-admin #adminmenu .wp-submenu a[href="themes.php?page=hfe-settings"],
51
+ .wp-admin #adminmenu .wp-submenu a[href="themes.php?page=hfe-guide"],
52
+ .wp-admin #adminmenu .wp-submenu a[href="themes.php?page=hfe-about"] {
53
  display: none;
54
  }
 
 
 
 
 
55
  .appearance_page_hfe-settings #adminmenu .wp-submenu a[href ="edit.php?post_type=elementor-hf" ] {
56
+ color: #ffffff;
57
  font-weight: 600;
58
  }
59
+ .hfe-heading-inline {
 
60
  font-size: 23px;
61
  font-weight: 400;
62
  margin: 0;
63
  padding: 9px 0 4px 0;
64
  line-height: 1.3;
65
  }
66
+ .hfe-selected-template-type-custom .hfe-shortcode {
67
+ display: table-row;
68
+ }
69
  .hfe-selected-template-type-custom .bsf-target-rules-row,
70
+ .hfe-selected-template-type-custom .enable-for-canvas,
71
+ .hfe-shortcode,
72
+ .hfe-selected-template-type-none .bsf-target-rules-row,
73
+ .hfe-selected-template-type-none .hfe-shortcode,
74
+ .hfe-selected-template-type-none .enable-for-canvas,
75
+ .hfe-guide-content .form-table th {
76
  display: none;
77
  }
78
+ /* Notice */
79
+ #header-footer-install-notice img.custom-logo {
80
+ height: 30px;
81
+ margin-right: 6px;
82
+ }
83
+ #header-footer-install-notice .notice-container {
84
+ display: flex;
85
+ align-items: center;
86
+ padding-top: 5px;
87
+ padding-bottom: 5px;
88
+ }
89
+ #header-footer-install-notice .notice-content {
90
+ margin-left: 0px;
91
+ }
92
+ #header-footer-install-notice .notice-dismiss {
93
+ height: 100%;
94
+ }
95
+ /* EHF Settings - Step by Step guide */
96
+ #ehf-meta-box .inside,
97
+ .hfe-admin-guide-section.hfe-admin-about-section {
98
+ padding: 0px;
99
+ }
100
+ .appearance_page_hfe-guide .nav-tab-wrapper,
101
+ .appearance_page_hfe-about .nav-tab-wrapper,
102
+ .appearance_page_hfe-settings .nav-tab-wrapper {
103
+ margin-right: 18px;
104
+ margin-bottom: 30px;
105
+ margin-top: 10px;
106
+ }
107
+ .post-type-elementor-hf .nav-tab-wrapper {
108
+ margin-bottom: 18px;
109
+ margin-top: 10px;
110
+ }
111
+ .post-type-elementor-hf .wrap h1.wp-heading-inline,
112
+ .hfe-heading-inline {
113
+ margin-top: 10px
114
+ }
115
+ .hfe-admin-about-section,
116
+ .hfe-subscription-row {
117
+ display: flex;
118
+ justify-content: center;
119
+ }
120
+ .hfe-subscription-row .hfe-input-container {
121
+ width: 50%;
122
+ text-align: left;
123
+ position: relative;
124
+ width: 100%;
125
+ }
126
+ .hfe-guide-modal-content .hfe-checkbox-container {
127
+ display: flex;
128
+ align-items: flex-start;
129
+ }
130
+ .hfe-guide-modal-content .hfe-admin-column-50:not(.hfe-admin-column-last) {
131
+ display: flex;
132
+ align-items: center;
133
+ }
134
+ /* Form CSS */
135
+ .hfe-subscription-row {
136
+ margin-bottom: 10px;
137
+ }
138
+ .hfe-subscription-row .hfe-subscribe-field:focus {
139
+ outline: none;
140
+ box-shadow: none;
141
+ }
142
+ .hfe-subscription-row .hfe-subscribe-field {
143
+ width: 100%;
144
+ max-width: 100%;
145
+ border-radius: 3px;
146
+ border: 1px solid #585F66;
147
+ padding: 10px 15px;
148
+ box-shadow: none;
149
+ min-height: 44px;
150
+ font-size: 15px;
151
+ font-weight: 400;
152
+ outline: none;
153
+ background-color: transparent;
154
+ background-position: right 10px top 55%;
155
+ margin: 0;
156
+ }
157
+ .hfe-subscription-row .subscription-label {
158
+ color: #585F66;
159
+ margin: 12px 10px;
160
+ position: absolute;
161
+ top: 0;
162
+ font-weight: 400;
163
+ padding: 0 5px;
164
+ font-size: 14px;
165
+ left: 0;
166
+ -webkit-transition: all 0.25s ease;
167
+ transition: all 0.25s ease;
168
+ pointer-events: none;
169
+ }
170
+ .hfe-subscription-row .hfe-input-container:not(.subscription-success, .subscription-error) .hfe-subscribe-field:hover {
171
+ border-color: #2271b1;
172
  }
173
+ .hfe-subscription-row .hfe-subscribe-field:hover,
174
+ .hfe-subscription-row .hfe-subscribe-field:focus {
175
+ color: #2c3338;
176
+ }
177
+ .hfe-subscription-row .subscription-anim .subscription-label {
178
+ background-color: #fff;
179
+ font-size: 12px;
180
+ line-height: 12px;
181
+ margin-top: 0;
182
+ padding: 0 4px;
183
+ top: -5px;
184
+ transition: all 0.125s ease;
185
+ -webkit-transition: all 0.125s ease;
186
+ color: #2271b1;
187
+ }
188
+ .hfe-subscription-row .subscription-error .hfe-subscribe-field,
189
+ .hfe-subscription-row .subscription-error .hfe-subscribe-field:focus {
190
+ border-color: #ff0000;
191
+ }
192
+ .hfe-subscription-row .subscription-error .subscription-desc,
193
+ .hfe-subscription-row .subscription-anim.subscription-error .subscription-label {
194
+ color: #ff0000;
195
+ }
196
+ .hfe-subscription-row .subscription-success .hfe-subscribe-field,
197
+ .hfe-subscription-row .subscription-success .hfe-subscribe-field:focus {
198
+ border-color: #66a700;
199
+ }
200
+ .hfe-subscription-row .subscription-anim.subscription-success .subscription-label {
201
+ color: #66a700;
202
+ }
203
+ .hfe-input-container .subscription-desc {
204
+ padding-left: 2px;
205
+ opacity: 0;
206
+ visibility: hidden;
207
+ }
208
+ .hfe-input-container.subscription-error .subscription-desc {
209
+ opacity: 1;
210
+ visibility: visible;
211
+ }
212
+ input[type="text"].hfe-subscribe-field,
213
+ select.hfe-subscribe-field {
214
+ text-align: left;
215
+ width: 100%;
216
+ padding: 10px 15px;
217
+ outline: none;
218
+ margin-left: 0px;
219
+ }
220
+ .hfe-guide-content p.submit {
221
+ text-align: center;
222
+ margin-top: 0px;
223
+ padding-top: 0px;
224
+ padding-bottom: 0px;
225
+ margin-bottom: 0px;
226
+ }
227
+ .hfe-privacy-policy-container {
228
+ margin-top: 0;
229
+ text-align: center;
230
  display: none;
231
  }
232
+ .hfe-subscription-step-2-active ~ .hfe-privacy-policy-container {
233
+ display: block;
234
+ }
235
+ .hfe-privacy-policy-container .hfe-subscription-policy {
236
+ margin: 0;
237
+ padding-top: 15px;
238
+ font-size: 12px;
239
+ }
240
+ .button-subscription-skip:focus {
241
+ box-shadow: none;
242
+ }
243
+ .button-subscription-skip {
244
+ width: 100%;
245
+ text-align: center;
246
+ margin-top: .8em;
247
+ display: inline-block;
248
+ font-size: 14px;
249
+ }
250
+ .hfe-guide-content .button {
251
+ text-transform: uppercase;
252
+ padding: 10px 20px;
253
+ width: 100%;
254
+ font-size: 13px;
255
+ }
256
+ .hfe-guide-content .button.submitting {
257
+ margin-right: 3px;
258
+ }
259
+ /* EHF Settings - About Us */
260
+ .hfe-admin-about-section {
261
+ margin: 0px 19px 23px 0px;
262
+ padding: 40px;
263
+ line-height: 2;
264
+ }
265
+ .hfe-admin-about-section p,
266
+ .hfe-admin-addons .addon-item,
267
+ .hfe-admin-addons .addon-item p,
268
+ .hfe-admin-about-section ul {
269
+ font-size: 15px;
270
+ }
271
+ .hfe-admin-about-us {
272
+ background: #fff;
273
+ border: 1px solid #ddd;
274
+ }
275
+ .hfe-admin-about-section h1,
276
+ .hfe-admin-about-section h2,
277
+ .hfe-admin-about-section h3,
278
+ .hfe-admin-about-section h4,
279
+ .hfe-admin-about-section h5 {
280
+ margin-top: 0;
281
+ line-height: 1.3;
282
+ }
283
+ .hfe-clear:before {
284
+ content: " ";
285
+ display: table;
286
+ }
287
+ .hfe-clear:after,
288
+ .hfe-admin-columns:after {
289
+ clear: both;
290
+ content: " ";
291
+ display: table;
292
+ }
293
+ .hfe-admin-columns .hfe-admin-column-40 {
294
+ width: 40%;
295
+ }
296
+ .hfe-admin-columns .hfe-admin-column-50 {
297
+ width: 50%;
298
+ background: #fff;
299
+ border: 1px solid #ddd;
300
+ }
301
+ .hfe-admin-columns .hfe-admin-column-60 {
302
+ width: 60%;
303
+ }
304
+ .hfe-admin-columns .hfe-admin-column-last .hfe-guide-content {
305
+ width: 100%;
306
+ }
307
+ .hfe-admin-about-section figure {
308
+ margin: 0;
309
+ padding-top: 0px;
310
+ }
311
+ .hfe-admin-about-section figure img {
312
+ width: 100%;
313
+ box-shadow: 0 0 8px rgb(0 0 0 / 10%);
314
+ }
315
+ .hfe-admin-about-section figure figcaption {
316
+ font-size: 15px;
317
+ color: #686868;
318
+ margin-top: 5px;
319
+ text-align: center;
320
+ line-height: initial;
321
+ }
322
+ .hfe-admin-about-section .hfe-admin-column-40 {
323
+ padding-left: 15px;
324
+ }
325
+ .hfe-admin-about-section .hfe-admin-column-60 {
326
+ padding-right: 15px;
327
+ }
328
+ .hfe-admin-about-section *,
329
+ .hfe-admin-about-section *::before,
330
+ .hfe-admin-about-section *::after,
331
+ .hfe-admin-addons *,
332
+ .hfe-admin-addons *::before,
333
+ .hfe-admin-addons *::after {
334
+ -webkit-box-sizing: border-box;
335
+ -moz-box-sizing: border-box;
336
+ box-sizing: border-box;
337
+ }
338
+ /* About Us - Plugins section */
339
+ .hfe-admin-addons .addon-container:last-child {
340
+ padding-right: 10px;
341
+ }
342
+ .hfe-admin-addons .addon-container:first-child,
343
+ .hfe-admin-addons .addon-container {
344
+ padding-left: 10px;
345
+ }
346
+ .hfe-admin-addons {
347
+ padding: 0 27px 0px 10px;
348
+ }
349
+ .hfe-admin-addons .addon-item .details {
350
+ padding: 20px;
351
+ }
352
+ .hfe-admin-addons .addon-item img {
353
+ padding: 13px;
354
+ padding-top: 0px;
355
+ }
356
+ .hfe-admin-addons .addons-container{
357
+ margin-left: -20px;
358
+ margin-right: -20px;
359
+ }
360
+ .hfe-admin-addons .addon-container {
361
+ padding-right: 10px;
362
+ float: left;
363
+ width: 33.333333%;
364
+ margin-bottom: 20px;
365
+ }
366
+ .hfe-admin-addons h4 {
367
+ font-size: 17px;
368
+ font-weight: 700;
369
+ }
370
+ .hfe-admin-addons .addon-item {
371
+ background-color: #fff;
372
+ border: 1px solid #ddd;
373
+ border-radius: 3px;
374
+ margin: 0;
375
+ }
376
+ .hfe-admin-addons .addon-item img {
377
+ float: left;
378
+ max-width: 80px;
379
+ }
380
+ .hfe-admin-addons .addon-item h5 {
381
+ margin: 0 0 15px 90px;
382
+ font-size: 17px;
383
+ line-height: 1.4em;
384
+ }
385
+ .hfe-admin-addons .addon-item p {
386
+ margin: 0 0 0 90px;
387
+ }
388
+ .hfe-admin-addons .website-link {
389
+ color: inherit;
390
+ text-decoration: none;
391
+ }
392
+ .hfe-admin-addons .addon-item .details {
393
+ padding: 30px 20px;
394
+ }
395
 
396
+ .hfe-admin-addons .addon-item .action-button .button {
397
+ display: inline-block;
398
+ text-decoration: none;
399
+ font-size: 14px;
400
+ line-height: 26px;
401
+ height: 28px;
402
+ margin: 0;
403
+ padding: 0 10px 1px;
404
+ box-shadow: 0 1px 0 #cccccc;
405
+ cursor: pointer;
406
+ -webkit-appearance: none;
407
+ border-radius: 3px;
408
+ border: 1px solid #cccccc;
409
+ background: #f7f7f7;
410
+ font-weight: normal;
411
+ }
412
+
413
+ .hfe-admin-addons .addon-item .action-button .button:hover,
414
+ .hfe-admin-addons .addon-item .action-button .button:focus {
415
+ background: #fafafa;
416
+ border-color: #999;
417
+ color: #23282d;
418
+ }
419
+
420
+ .hfe-admin-addons .addon-item .action-button .button.button-primary {
421
+ background: #0085ba;
422
+ border-color: #0073aa #006799 #006799;
423
+ box-shadow: 0 1px 0 #006799;
424
+ color: #fff;
425
+ text-shadow: 0 -1px 1px #006799, 1px 0 1px #006799, 0 1px 1px #006799, -1px 0 1px #006799;
426
+ }
427
+
428
+ .hfe-admin-addons .addon-item .action-button .button.button-primary:hover,
429
+ .hfe-admin-addons .addon-item .action-button .button.button-primary:focus {
430
+ background: #008ec2;
431
+ border-color: #006799;
432
+ color: #fff;
433
+ }
434
+
435
+ .hfe-admin-addons .addon-item .action-button .button.button-secondary {
436
+ color: #555;
437
+ border-color: #cccccc;
438
+ background: #f7f7f7;
439
+ box-shadow: 0 1px 0 #cccccc;
440
+ }
441
+
442
+ .hfe-admin-addons .addon-item .action-button .button.button-secondary:hover,
443
+ .hfe-admin-addons .addon-item .action-button .button.button-secondary:focus {
444
+ background: #fafafa;
445
+ border-color: #999;
446
+ color: #23282d;
447
+ }
448
+
449
+ .hfe-admin-addons .addon-item .action-button .button.disabled {
450
+ cursor: default;
451
+ }
452
+
453
+ .hfe-admin-addons .addon-item .actions {
454
+ display: flex;
455
+ align-items: center;
456
+ background-color: #f7f7f7;
457
+ border-top: 1px solid #ddd;
458
+ padding: 20px;
459
+ min-height: 75px;
460
+ position: relative;
461
+ }
462
+
463
+ .hfe-admin-addons .addon-item .actions .msg {
464
+ background-color: #f7f7f7;
465
+ border: none;
466
+ position: absolute;
467
+ text-align: center;
468
+ font-weight: 600;
469
+ top: 0;
470
+ left: 0;
471
+ height: 100%;
472
+ width: 100%;
473
+ margin: 0;
474
+ z-index: 99;
475
+ padding: 20px;
476
+ display: flex;
477
+ align-items: center;
478
+ justify-content: center;
479
+ }
480
+
481
+ .hfe-admin-addons .addon-item .actions .msg.success,
482
+ .hfe-admin-addons .addon-item .status .status-active,
483
+ .hfe-admin-addons .addon-item .action-button button.status-active .fa {
484
+ color: #2a9b39;
485
+ }
486
+
487
+ .hfe-admin-addons .addon-item .actions .msg.error,
488
+ .hfe-admin-addons .addon-item .status .status-inactive,
489
+ .hfe-admin-addons .addon-item .action-button button.status-inactive .fa {
490
+ color: red;
491
+ }
492
+
493
+ .hfe-admin-addons .addon-item .status {
494
+ flex-grow: 1;
495
+ }
496
+
497
+ .hfe-admin-addons .addon-item .status .status-download {
498
+ color: #666;
499
+ }
500
+
501
+ .hfe-admin-addons .addon-item .upgrade-button {
502
+ text-align: center;
503
+ }
504
+
505
+ .hfe-admin-addons .addon-item .upgrade-button a {
506
+ font-weight: 600;
507
+ width: 110px;
508
+ text-align: center;
509
+ padding: 8px 5px;
510
+ }
511
+ .hfe-admin-addons .addon-item .action-button a.button {
512
+ width: 110px;
513
+ text-align: center;
514
+ }
515
+ .hfe-admin-addons .addon-item .action-button button {
516
+ background: none;
517
+ border: 1px solid #ddd;
518
+ border-radius: 3px;
519
+ box-shadow: none;
520
+ cursor: pointer;
521
+ font-weight: 600;
522
+ width: 110px;
523
+ text-align: center;
524
+ padding: 8px 5px;
525
+ }
526
+
527
+ .hfe-admin-addons .addon-item .action-button button:hover, .hfe-admin-addons .addon-item .action-button button.loading {
528
+ background-color: #e9e9e9;
529
+ }
530
+
531
+ .hfe-admin-addons .addon-item .action-button button .fa {
532
+ margin-right: 8px;
533
+ }
534
+
535
+ .hfe-admin-addons .addon-item .action-button button .fa.fa-spinner {
536
+ margin-right: 0;
537
+ }
538
+
539
+ .hfe-admin-addons .addon-item .action-button button.status-download .fa {
540
+ color: #999;
541
+ }
542
+
543
+ .hfe-admin-addons .addon-item .action-button button.disabled {
544
+ cursor: default;
545
+ pointer-events: none;
546
+ }
547
+
548
+ .hfe-admin-addons .addon-item .action-button button.loading .fa {
549
+ color: #666;
550
+ }
551
+
552
+ .hfe-admin-addons .addon-item .action-button a {
553
+ text-decoration: none;
554
+ }
555
+
556
+ /* Modal Popup */
557
+ .hfe-guide-modal-header {
558
+ padding: 10px;
559
+ text-align: center;
560
+ }
561
+ .hfe-guide-modal-popup-wrapper .heading {
562
+ background: #ffffff;
563
+ padding: 5px 20px;
564
+ margin-top: 0;
565
+ box-shadow: 0 0 8px rgb(0 0 0 / 10%);
566
+ display: flex;
567
+ justify-content: space-between;
568
+ }
569
+ .hfe-guide-modal-popup-wrapper .hfe-admin-guide-section.hfe-admin-about-section,
570
+ .hfe-guide-modal-popup-wrapper .hfe-admin-column-50:not(.hfe-admin-column-last) {
571
+ margin: 0px;
572
+ }
573
+ .hfe-guide-modal-popup-wrapper .hfe-admin-column-50:not(.hfe-admin-column-last),
574
+ .hfe-admin-column-last .hfe-guide-content form {
575
+ padding: 50px;
576
+ }
577
+ .hfe-guide-modal-overlay {
578
+ position: fixed;
579
+ width: 100%;
580
+ height: 100%;
581
+ visibility: hidden;
582
+ top: 0;
583
+ bottom: 0;
584
+ left: 0;
585
+ right: 0;
586
+ z-index: 9999;
587
+ opacity: 0;
588
+ background: rgba(0,0,0,0.75);
589
+ -webkit-transition: all .5s;
590
+ transition: all .5s;
591
+ }
592
+ .hfe-guide-modal-content {
593
+ width: 70%;
594
+ background-color: #ffffff;
595
+ opacity: 0;
596
+ position: relative;
597
+ margin: 0 auto;
598
+ transition: all .5s;
599
+ }
600
+ .hfe-guide-modal-popup-wrapper {
601
+ z-index: 99999;
602
+ top: 51%;
603
+ transform: translateY(-50%);
604
+ margin-bottom: 20px;
605
+ visibility: hidden;
606
+ position: fixed;
607
+ left: 0;
608
+ width: 100%;
609
+ max-width: 100%;
610
+ bottom: auto;
611
+ }
612
+ .hfe-guide-modal-popup-wrapper .subscription-anim .subscription-label {
613
+ background-color: #ffffff;
614
+ }
615
+ .hfe-guide-modal-popup-wrapper .hfe-admin-about-section {
616
+ background-color: #f1f3f5;
617
+ }
618
+ .hfe-admin-about-section h3 {
619
+ font-size: 20px;
620
+ }
621
+ .hfe-guide-modal-popup-wrapper .hfe-guide-content form {
622
+ padding: 0px;
623
+ }
624
+ .hfe-guide-modal-popup-wrapper .hfe-guide-content {
625
+ background-color: #ffffff;
626
+ box-shadow: 0 2px 30px 0 rgb(0 0 0 / 8%);
627
+ border: 0px;
628
+ padding: 50px 50px 25px 50px;
629
+ }
630
+ .hfe-guide-modal-popup-wrapper .hfe-admin-columns .hfe-admin-column-50.hfe-admin-column-last {
631
+ width: 50%;
632
+ margin: 0;
633
+ padding: 50px;
634
+ }
635
+ .hfe-guide-modal-popup-wrapper .hfe-admin-columns .hfe-admin-column-50 {
636
+ width: 50%;
637
+ background: unset;
638
+ border: 0px;
639
+ }
640
+ .hfe-guide-modal-popup-wrapper .heading {
641
+ position: relative;
642
+ z-index: 1;
643
+ display: flex;
644
+ align-items: center;
645
+ }
646
+ .hfe-guide-modal-popup-wrapper .hfe-logo {
647
+ height: 35px;
648
+ }
649
+ .hfe-guide-modal-popup-wrapper h3 {
650
+ width: 100%;
651
+ margin-left: 15px;
652
+ }
653
+ .hfe-guide-modal-popup-wrapper .hfe-admin-about-section.hfe-admin-columns.hfe-admin-guide-section {
654
+ max-height: 75vh;
655
+ overflow: auto;
656
+ }
657
+ .hfe-guide-modal-popup-wrapper .hfe-admin-about-section-column {
658
+ padding-bottom: 20px;
659
+ }
660
+ .hfe-guide-modal-popup-wrapper .hfe-subscription-step-1-active .hfe-subscription-step-2,
661
+ .hfe-guide-modal-popup-wrapper .hfe-subscription-step-2-active .hfe-subscription-step-1 {
662
  display: none;
663
+ }
664
+ /* Limited this only for modal Popup */
665
+ .hfe-guide-modal-popup-wrapper .hfe-subscription-row .hfe-input-container,
666
+ .hfe-guide-modal-popup-wrapper .button {
667
+ width: 100%;
668
+ margin-bottom: 5px;
669
+ }
670
+ .hfe-guide-modal-popup-wrapper .hfe-subscription-row {
671
+ display: block;
672
+ margin-bottom: 0px;
673
+ }
674
+ .hfe-guide-modal-popup-wrapper .hfe-admin-about-section-column h2 {
675
+ font-size: 28px;
676
+ margin-bottom: 15px;
677
+ }
678
+ .hfe-admin-about-section-column h3 {
679
+ margin-bottom: 0;
680
+ padding: 15px 30px;
681
+ border-bottom: 1px solid #c3c4c7;
682
+ }
683
+ .hfe-admin-about-section-column h3 {
684
+ text-align: center;
685
+ font-size: 18px;
686
+ line-height: 1.3;
687
+ }
688
+ .hfe-show {
689
+ z-index: 9999;
690
+ }
691
+ .hfe-show .hfe-modal-close,
692
+ .hfe-show .hfe-modal-close.action-button,
693
+ .hfe-show .hfe-guide-modal-content {
694
+ visibility: visible;
695
+ }
696
+ .hfe-show .hfe-guide-modal-overlay {
697
+ opacity: 1;
698
+ visibility: visible;
699
+ }
700
+ .hfe-show .hfe-guide-modal-content {
701
+ opacity: 1;
702
+ }
703
+ .hfe-input-container.hfe-error .hfe-subscribe-field {
704
+ border-color: #d11212;
705
+ }
706
+ span.hfe-subscribe-message {
707
+ width: 100%;
708
+ display: block;
709
+ text-align: center;
710
+ margin-top: 20px;
711
+ font-size: 14px;
712
+ font-weight: 400;
713
+ padding: 15px;
714
+ }
715
+ span.hfe-subscribe-message.success {
716
+ color: #3c763d;
717
+ background-color: #dff0d8;
718
+ border-left: 4px solid #93d776;
719
+ }
720
+ span.hfe-subscribe-message.error {
721
+ color: #d11212;
722
+ background-color: #f2dede96;
723
+ border-left: 4px solid #c01a1a66;
724
+ }
725
+ span.dashicons.dashicons-update.hfe-loader {
726
+ animation: rotation 2s infinite linear;
727
+ vertical-align: text-top;
728
+ margin-left: 7px;
729
+ }
730
+
731
+ @media (max-width: 1249px) {
732
+ .hfe-admin-addons .addon-container {
733
+ width: 50%;
734
+ }
735
+ }
736
+
737
+ @media (max-width: 767px) {
738
+ .hfe-admin-addons .addon-container {
739
+ width: 100%;
740
+ margin-bottom: 20px;
741
+ }
742
+ .hfe-admin-about-section .hfe-admin-column-40 {
743
+ width: 100%;
744
+ padding-left: 0;
745
+ padding-top: 20px;
746
+ }
747
+ .hfe-admin-about-section .hfe-admin-column-60 {
748
+ width: 100%;
749
+ padding-right: 0;
750
+ }
751
+ .hfe-admin-addons .addon-item {
752
+ margin: 0 0;
753
+ }
754
+ }
755
+
756
+ @media screen and ( max-width: 782px ) {
757
+ .hfe-subscription-row,
758
+ .hfe-admin-about-section {
759
+ display: block;
760
+ }
761
+ .hfe-guide-modal-popup-wrapper p.button,
762
+ .hfe-admin-about-section figure {
763
+ padding-bottom: 0px;
764
+ }
765
+ .hfe-admin-guide-section.hfe-admin-columns .hfe-admin-column-50,
766
+ .hfe-guide-modal-popup-wrapper .hfe-admin-columns .hfe-admin-column-50.hfe-admin-column-last,
767
+ .hfe-subscription-row .hfe-input-container {
768
+ width: 100%;
769
+ }
770
+ .hfe-guide-modal-popup-wrapper .hfe-admin-columns .hfe-admin-column-50.hfe-admin-column-last,
771
+ .hfe-guide-modal-popup-wrapper .hfe-guide-content,
772
+ .hfe-admin-guide-section .hfe-admin-column-50:not(.hfe-admin-column-last) {
773
+ padding: 15px;
774
+ }
775
+ .hfe-subscribe-email span.dashicons.dashicons-email {
776
+ font-size: 15px;
777
+ height: 15px;
778
+ line-height: 1;
779
+ width: 15px;
780
+ }
781
+ .hfe-subscribe-email input.hfe-subscribe-field {
782
+ min-height: unset;
783
+ font-size: 10px;
784
+ }
785
+ .hfe-subscribe-field {
786
+ padding: 5px;
787
+ }
788
+ .hfe-admin-guide-section.hfe-admin-about-section {
789
+ display: block;
790
+ }
791
+ .hfe-guide-content .button {
792
+ font-size: 10px;
793
+ }
794
+ .hfe-checkbox-container {
795
+ display: flex;
796
+ }
797
+ .hfe-admin-columns .hfe-admin-column-last {
798
+ padding-top: 0px;
799
+ }
800
+ .hfe-subscription-row select.hfe-subscribe-field {
801
+ padding: 10px 15px;
802
+ }
803
+ .hfe-admin-about-section-column h3 {
804
+ border-bottom: 0px;
805
+ }
806
+ .hfe-admin-about-us {
807
+ margin-right: 10px;
808
+ }
809
+ .hfe-admin-addons .addon-container,
810
+ .hfe-admin-addons .addon-container:last-child {
811
+ padding-right: 0px;
812
+ }
813
  }
admin/assets/js/ehf-admin.js CHANGED
@@ -1,12 +1,494 @@
1
- jQuery(document).ready(function ($) {
2
- var ehf_hide_shortcode_field = function() {
3
- var selected = jQuery('#ehf_template_type').val() || 'none';
4
- jQuery( '.hfe-options-table' ).removeClass().addClass( 'hfe-options-table widefat hfe-selected-template-type-' + selected );
5
- }
6
-
7
- jQuery(document).on( 'change', '#ehf_template_type', function( e ) {
8
- ehf_hide_shortcode_field();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  });
10
 
11
- ehf_hide_shortcode_field();
12
- });
 
1
+ ;( function( $ ) {
2
+
3
+ 'use strict';
4
+
5
+ // Global settings access.
6
+ var settings = {
7
+ iconActivate: '<i class="fa fa-toggle-on fa-flip-horizontal" aria-hidden="true"></i>',
8
+ iconDeactivate: '<i class="fa fa-toggle-on" aria-hidden="true"></i>',
9
+ iconInstall: '<i class="fa fa-cloud-download" aria-hidden="true"></i>'
10
+ };
11
+
12
+ var HFEAdmin = {
13
+
14
+ /**
15
+ * Start the engine.
16
+ *
17
+ * @since 1.3.9
18
+ */
19
+ _init: function() {
20
+
21
+ var ehf_hide_shortcode_field = function() {
22
+ var selected = $('#ehf_template_type').val() || 'none';
23
+ $( '.hfe-options-table' ).removeClass().addClass( 'hfe-options-table widefat hfe-selected-template-type-' + selected );
24
+ }
25
+
26
+ var $document = $( document );
27
+
28
+ $document.on( 'change', '#ehf_template_type', function( e ) {
29
+ ehf_hide_shortcode_field();
30
+ });
31
+
32
+ ehf_hide_shortcode_field();
33
+
34
+ // Templates page modal popup.
35
+ HFEAdmin._display_modal();
36
+
37
+ $( '.hfe-subscribe-field' ).on( 'keyup', function( e ) {
38
+ $( '.hfe-subscribe-message' ).remove();
39
+ });
40
+
41
+ $document.on( 'focusout change', '.hfe-subscribe-field', HFEAdmin._validate_single_field );
42
+ $document.on( 'click input', '.hfe-subscribe-field', HFEAdmin._animate_fields );
43
+
44
+ $document.on( 'click', '.hfe-guide-content .submit-1', HFEAdmin._step_one_subscribe );
45
+ $document.on( 'click', '.hfe-guide-content .submit-2', HFEAdmin._step_two_subscribe );
46
+
47
+ $document.on('click', '.hfe-guide-content .button-subscription-skip', HFEAdmin._close_modal );
48
+
49
+ // About us - addons functionality.
50
+ if ( $( '.hfe-admin-addons' ).length ) {
51
+
52
+ $document.on( 'click', '.hfe-admin-addons .addon-item button', function( event ) {
53
+ event.preventDefault();
54
+
55
+ if ( $( this ).hasClass( 'disabled' ) ) {
56
+ return false;
57
+ }
58
+
59
+ HFEAdmin._addons( $( this ) );
60
+
61
+ } );
62
+
63
+ }
64
+ },
65
+
66
+ _animate_fields: function ( event ) {
67
+ event.preventDefault();
68
+ event.stopPropagation();
69
+ var parentWrapper = $( this ).parents( '.hfe-input-container' );
70
+ parentWrapper.addClass( 'subscription-anim' );
71
+ },
72
+
73
+ _validate_single_field: function ( event ) {
74
+ event.preventDefault();
75
+ event.stopPropagation();
76
+ HFEAdmin._validate_field( event.target );
77
+ },
78
+
79
+ _validate_field: function ( target ) {
80
+
81
+ var field = $( target );
82
+ var fieldValue = field.val() || '';
83
+ var parentWrapper = field.parents( '.hfe-input-container' );
84
+ var fieldStatus = fieldValue.length ? true : false;
85
+
86
+ if ( ( field.hasClass( 'hfe-subscribe-email' ) && false === HFEAdmin._is_valid_email( fieldValue ) )) {
87
+ fieldStatus = false;
88
+ }
89
+
90
+ if ( fieldStatus ) {
91
+ parentWrapper.removeClass( 'subscription-error' ).addClass( 'subscription-success' );
92
+ } else {
93
+ parentWrapper.removeClass( 'subscription-success subscription-anim' ).addClass( 'subscription-error' );
94
+
95
+ if ( field.hasClass( 'hfe-subscribe-email' ) && fieldValue.length ) {
96
+ parentWrapper.addClass( 'subscription-anim' );
97
+ }
98
+ }
99
+
100
+ },
101
+
102
+ /**
103
+ * Subscribe Form Step One
104
+ *
105
+ */
106
+ _step_one_subscribe: function( event ) {
107
+ event.preventDefault();
108
+ event.stopPropagation();
109
+
110
+ var form_one_wrapper = $( '.hfe-subscription-step-1' );
111
+
112
+ var first_name_field = form_one_wrapper.find( '.hfe-subscribe-field[name="hfe_subscribe_name"]' );
113
+ var email_field = form_one_wrapper.find( '.hfe-subscribe-field[name="hfe_subscribe_email"]' );
114
+
115
+ HFEAdmin._validate_field( first_name_field );
116
+ HFEAdmin._validate_field( email_field );
117
+
118
+ if ( form_one_wrapper.find( '.hfe-input-container' ).hasClass( 'subscription-error' )) {
119
+ return;
120
+ }
121
+
122
+ $( '.hfe-guide-content' ).addClass( 'hfe-subscription-step-2-active' ).removeClass( 'hfe-subscription-step-1-active' );
123
+
124
+ },
125
+
126
+ /**
127
+ * Subscribe Form
128
+ *
129
+ */
130
+ _step_two_subscribe: function( event ) {
131
+
132
+ event.preventDefault();
133
+ event.stopPropagation();
134
+
135
+ var submit_button = $(this);
136
+
137
+ var is_modal = $( '.hfe-guide-modal-popup.hfe-show' );
138
+
139
+ var first_name_field = $('.hfe-subscribe-field[name="hfe_subscribe_name"]');
140
+ var email_field = $('.hfe-subscribe-field[name="hfe_subscribe_email"]');
141
+ var user_type_field = $('.hfe-subscribe-field[name="wp_user_type"]');
142
+ var build_for_field = $('.hfe-subscribe-field[name="build_website_for"]');
143
+
144
+ var subscription_first_name = first_name_field.val() || '';
145
+ var subscription_email = email_field.val() || '';
146
+ var subscription_user_type = user_type_field.val() || '';
147
+ var subscription_build_for = build_for_field.val() || '';
148
+ var button_text = submit_button.find( '.hfe-submit-button-text' );
149
+
150
+ HFEAdmin._validate_field( first_name_field );
151
+ HFEAdmin._validate_field( email_field );
152
+ HFEAdmin._validate_field( user_type_field );
153
+ HFEAdmin._validate_field( build_for_field );
154
+
155
+ $( '.hfe-subscribe-message' ).remove();
156
+
157
+ if ( $( '.hfe-input-container' ).hasClass( 'subscription-error' )) {
158
+ return;
159
+ }
160
+
161
+ submit_button.removeClass( 'submitted' );
162
+
163
+ if( ! submit_button.hasClass( 'submitting' ) ) {
164
+ submit_button.addClass( 'submitting' );
165
+ } else {
166
+ return;
167
+ }
168
+
169
+ var subscription_fields = {
170
+ EMAIL: subscription_email,
171
+ FIRSTNAME: subscription_first_name,
172
+ PAGE_BUILDER: "1",
173
+ WP_USER_TYPE: subscription_user_type,
174
+ BUILD_WEBSITE_FOR: subscription_build_for,
175
+ SOURCE: hfe_admin_data.data_source
176
+ };
177
+
178
+ $.ajax({
179
+ url : hfe_admin_data.ajax_url,
180
+ type : 'POST',
181
+ data : {
182
+ action : 'hfe-update-subscription',
183
+ nonce : hfe_admin_data.nonce,
184
+ data: JSON.stringify( subscription_fields ),
185
+ },
186
+ beforeSend: function() {
187
+ console.groupCollapsed( 'Email Subscription' );
188
+
189
+ button_text.append( '<span class="dashicons dashicons-update hfe-loader"></span>' );
190
+
191
+ },
192
+ })
193
+ .done( function ( response ) {
194
+
195
+ $( '.hfe-loader.dashicons-update' ).remove();
196
+
197
+ submit_button.removeClass( 'submitting' ).addClass('submitted');
198
+
199
+ if( response.success === true ) {
200
+ $('.hfe-admin-about-section form').trigger( "reset" );
201
+ $( '.hfe-input-container' ).removeClass( 'subscription-success subscription-anim' );
202
+
203
+ submit_button.after( '<span class="hfe-subscribe-message success">' + hfe_admin_data.subscribe_success + '</span>' );
204
+ } else {
205
+ submit_button.after( '<span class="hfe-subscribe-message error">' + hfe_admin_data.subscribe_error + '</span>' );
206
+ }
207
+
208
+ if( is_modal.length ) {
209
+ window.setTimeout( function () {
210
+ window.location = $( '.hfe-guide-modal-popup' ).data( 'new-page' );
211
+ }, 3000 );
212
+ }
213
+
214
+ });
215
+
216
+ },
217
+
218
+ /**
219
+ * email Validation
220
+ *
221
+ */
222
+ _is_valid_email: function(eMail) {
223
+ if (/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/.test( eMail ) ) {
224
+ return true;
225
+ }
226
+
227
+ return false;
228
+ },
229
+
230
+ /**
231
+ * Display the Modal Popup
232
+ *
233
+ */
234
+ _display_modal: function() {
235
+ var hf_new_post = $( '.post-type-elementor-hf' ).find( '.page-title-action' );
236
+
237
+ var modal_wrapper = $( '.hfe-guide-modal-popup' );
238
+ var display_allow = hfe_admin_data.popup_dismiss;
239
+
240
+ if( 'dismissed' !== display_allow[0] ) {
241
+ // Display Modal Popup on click of Add new button.
242
+ hf_new_post.on( 'click', function(e) {
243
+ if( modal_wrapper.length && ! modal_wrapper.hasClass( 'hfe-show' ) ) {
244
+ e.preventDefault();
245
+ e.stopPropagation();
246
+ modal_wrapper.addClass( 'hfe-show' );
247
+ }
248
+ });
249
+ }
250
+ },
251
+
252
+ /**
253
+ * Close the Modal Popup
254
+ *
255
+ */
256
+ _close_modal: function() {
257
+ var modal_wrapper = $( '.hfe-guide-modal-popup' );
258
+ var new_page_link = modal_wrapper.data( 'new-page' );
259
+
260
+ $.ajax({
261
+ url: hfe_admin_data.ajax_url,
262
+ type: 'POST',
263
+ data: {
264
+ action : 'hfe_admin_modal',
265
+ nonce : hfe_admin_data.nonce,
266
+ },
267
+ });
268
+
269
+ if( modal_wrapper.hasClass( 'hfe-show' ) ) {
270
+ modal_wrapper.removeClass( 'hfe-show' );
271
+ }
272
+
273
+ window.location = new_page_link;
274
+ },
275
+
276
+ /**
277
+ * Toggle addon state.
278
+ */
279
+ _addons: function( $button ) {
280
+
281
+ var $addon = $button.closest( '.addon-item' ),
282
+ plugin = $button.attr( 'data-plugin' ),
283
+ addonType = $button.attr( 'data-type' ),
284
+ addonSlug = $button.attr( 'data-slug' ),
285
+ addonFile = $button.attr( 'data-file' ),
286
+ state,
287
+ cssClass,
288
+ stateText,
289
+ buttonText,
290
+ errorText,
291
+ successText;
292
+
293
+ if ( $button.hasClass( 'status-go-to-url' ) ) {
294
+
295
+ // Open url in new tab.
296
+ window.open( $button.attr( 'data-site' ), '_blank' );
297
+ return;
298
+ }
299
+
300
+ $button.prop( 'disabled', true ).addClass( 'loading' );
301
+ $button.html( '<span class="dashicons dashicons-update hfe-loader"></span>' );
302
+
303
+ if ( $button.hasClass( 'status-active' ) ) {
304
+
305
+ // Deactivate.
306
+ state = 'deactivate';
307
+ cssClass = 'status-inactive';
308
+ cssClass += ' button button-secondary';
309
+ stateText = hfe_admin_data.addon_inactive;
310
+ buttonText = hfe_admin_data.addon_activate;
311
+ errorText = hfe_admin_data.addon_deactivate;
312
+
313
+ } else if ( $button.hasClass( 'status-inactive' ) ) {
314
+
315
+ // Activate.
316
+ state = 'activate';
317
+ cssClass = 'status-active';
318
+ cssClass += ' button button-secondary disabled';
319
+ stateText = hfe_admin_data.addon_active;
320
+ buttonText = hfe_admin_data.addon_deactivate;
321
+ buttonText = hfe_admin_data.addon_activated;
322
+ errorText = hfe_admin_data.addon_activate;
323
+
324
+ } else if ( $button.hasClass( 'status-download' ) ) {
325
+
326
+ // Install & Activate.
327
+ state = 'install';
328
+ cssClass = 'status-active';
329
+ cssClass += ' button disabled';
330
+ stateText = hfe_admin_data.addon_active;
331
+ buttonText = hfe_admin_data.addon_activated;
332
+ errorText = settings.iconInstall;
333
+
334
+ } else {
335
+ return;
336
+ }
337
+
338
+ HFEAdmin._set_addon_state( plugin, state, addonType, addonSlug, function( res ) {
339
+
340
+ if ( res.success ) {
341
+ if ( 'install' === state ) {
342
+ successText = res.msg;
343
+ $button.attr( 'data-plugin', addonFile );
344
+
345
+ stateText = hfe_admin_data.addon_inactive;
346
+ buttonText = ( addonType === 'theme' || addonType === 'plugin' ) ? hfe_admin_data.addon_activate : settings.iconActivate + hfe_admin_data.addon_activate;
347
+ cssClass = ( addonType === 'theme' || addonType === 'plugin' ) ? 'status-inactive button button-secondary' : 'status-inactive';
348
+ } else {
349
+ successText = res.data;
350
+ }
351
+ $addon.find( '.actions' ).append( '<div class="msg success">' + successText + '</div>' );
352
+ $addon.find( 'span.status-label' )
353
+ .removeClass( 'status-active status-inactive status-download' )
354
+ .addClass( cssClass )
355
+ .removeClass( 'button button-primary button-secondary disabled' )
356
+ .text( stateText );
357
+ $button
358
+ .removeClass( 'status-active status-inactive status-download' )
359
+ .removeClass( 'button button-primary button-secondary disabled' )
360
+ .addClass( cssClass ).html( buttonText );
361
+ } else {
362
+
363
+ if ( 'install' === state && ( addonType === 'theme' || addonType === 'plugin' ) ) {
364
+ $addon.find( '.actions' ).append( '<div class="msg error">' + res.msg + '</div>' );
365
+ $button.addClass( 'status-go-to-url' ).removeClass( 'status-download' );
366
+ } else {
367
+ var error_msg = ( 'object' === typeof res.data ) ? hfe_admin_data.plugin_error : res.data;
368
+ $addon.find( '.actions' ).append( '<div class="msg error">' + error_msg + '</div>' );
369
+ }
370
+
371
+ if( 'ultimate-elementor' === addonSlug ) {
372
+ $button.addClass( 'status-go-to-url' );
373
+ $button.html( hfe_admin_data.visit_site );
374
+ } else {
375
+ $button.html( hfe_admin_data.addon_download );
376
+ }
377
+ }
378
+
379
+ $button.prop( 'disabled', false ).removeClass( 'loading' );
380
+
381
+ // Automatically clear the messages after 3 seconds.
382
+ setTimeout( function() {
383
+ $( '.addon-item .msg' ).remove();
384
+ }, 3000 );
385
+
386
+ } );
387
+ },
388
+
389
+ /**
390
+ * Change plugin/addon state.
391
+ *
392
+ * @since 1.6.0
393
+ *
394
+ * @param {string} plugin Plugin/Theme URL for download.
395
+ * @param {string} state State status activate|deactivate|install.
396
+ * @param {string} addonType Plugin/Theme type addon or plugin.
397
+ * @param {string} addonSlug Plugin/Theme slug addon or plugin.
398
+ * @param {Function} callback Callback for get result from AJAX.
399
+ */
400
+ _set_addon_state: function( plugin, state, addonType, addonSlug, callback ) {
401
+
402
+ var actions = {
403
+ 'activate': 'hfe_activate_addon',
404
+ 'install': '',
405
+ },
406
+ action = actions[ state ];
407
+
408
+ if ( ! action && 'install' !== state ) {
409
+ return;
410
+ }
411
+
412
+ var data_result = {
413
+ success : false,
414
+ msg : hfe_admin_data.subscribe_error,
415
+ };
416
+
417
+ if( 'install' === state ) {
418
+
419
+ if ( wp.updates.shouldRequestFilesystemCredentials && ! wp.updates.ajaxLocked ) {
420
+ wp.updates.requestFilesystemCredentials();
421
+ }
422
+
423
+ if( 'theme' === addonType ) {
424
+
425
+ wp.updates.installTheme ( {
426
+ slug: addonSlug,
427
+ success: function() {
428
+ data_result.success = true;
429
+ data_result.msg = hfe_admin_data.theme_installed;
430
+
431
+ },
432
+ error: function( xhr ) {
433
+ console.log( xhr.errorCode );
434
+ if ( 'folder_exists' === xhr.errorCode ) {
435
+ data_result.success = true;
436
+ data_result.msg = hfe_admin_data.addon_exists;
437
+ } else {
438
+ data_result.success = false;
439
+ data_result.msg = hfe_admin_data.plugin_error;
440
+ }
441
+ },
442
+ }).always( function () {
443
+ callback( data_result );
444
+ });
445
+
446
+ } else if( 'plugin' === addonType ) {
447
+
448
+ wp.updates.installPlugin ( {
449
+ slug: addonSlug,
450
+ success: function() {
451
+ data_result.success = true;
452
+ data_result.msg = hfe_admin_data.plugin_installed;
453
+ },
454
+ error: function( xhr ) {
455
+ console.log( xhr.errorCode );
456
+ if ( 'folder_exists' === xhr.errorCode ) {
457
+ data_result.success = true;
458
+ data_result.msg = hfe_admin_data.addon_exists;
459
+ } else {
460
+ data_result.success = false;
461
+ data_result.msg = hfe_admin_data.plugin_error;
462
+ }
463
+ },
464
+ }).always( function () {
465
+ callback( data_result );
466
+ });
467
+ }
468
+
469
+ } else if( 'activate' === state ) {
470
+
471
+ var data = {
472
+ action: action,
473
+ nonce: hfe_admin_data.nonce,
474
+ plugin: plugin,
475
+ type: addonType,
476
+ slug: addonSlug
477
+ };
478
+
479
+ $.post( hfe_admin_data.ajax_url, data, function( res ) {
480
+ callback( res );
481
+ } ).fail( function( xhr ) {
482
+ console.log( xhr.responseText );
483
+ } );
484
+ }
485
+ }
486
+ };
487
+
488
+ $( document ).ready( function( e ) {
489
+ HFEAdmin._init();
490
  });
491
 
492
+ window.HFEAdmin = HFEAdmin;
493
+
494
+ } )( jQuery );
admin/class-hfe-addons-actions.php ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin AJAX functions.
4
+ *
5
+ * @package header-footer-elementor
6
+ */
7
+
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit;
10
+ }
11
+
12
+ if ( ! class_exists( 'HFE_Addons_Actions' ) ) {
13
+
14
+ /**
15
+ * Initialization
16
+ *
17
+ * @since 1.6.0
18
+ */
19
+ class HFE_Addons_Actions {
20
+
21
+ /**
22
+ * Member Variable
23
+ *
24
+ * @var instance
25
+ */
26
+ private static $instance;
27
+
28
+ /**
29
+ * Initiator
30
+ */
31
+ public static function get_instance() {
32
+ if ( ! isset( self::$instance ) ) {
33
+ self::$instance = new self();
34
+ }
35
+ return self::$instance;
36
+ }
37
+
38
+ /**
39
+ * Constructor
40
+ */
41
+ public function __construct() {
42
+ add_action( 'wp_ajax_hfe_admin_modal', [ $this, 'hfe_admin_modal' ] );
43
+ add_action( 'wp_ajax_hfe-update-subscription', [ $this, 'update_subscription' ] );
44
+ add_action( 'wp_ajax_hfe_activate_addon', [ $this, 'hfe_activate_addon' ] );
45
+ }
46
+
47
+ /**
48
+ * Open modal popup.
49
+ *
50
+ * @since 1.6.0
51
+ */
52
+ public function hfe_admin_modal() {
53
+
54
+ // Run a security check.
55
+ check_ajax_referer( 'hfe-admin-nonce', 'nonce' );
56
+
57
+ update_user_meta( get_current_user_id(), 'hfe-popup', 'dismissed' );
58
+ }
59
+
60
+ /**
61
+ * Update Subscription
62
+ *
63
+ * @since 1.6.0
64
+ */
65
+ public function update_subscription() {
66
+
67
+ check_ajax_referer( 'hfe-admin-nonce', 'nonce' );
68
+
69
+ if ( ! current_user_can( 'manage_options' ) ) {
70
+ wp_send_json_error( 'You can\'t perform this action.' );
71
+ }
72
+
73
+ $api_domain = trailingslashit( $this->get_api_domain() );
74
+
75
+ $arguments = isset( $_POST['data'] ) ? array_map( 'sanitize_text_field', json_decode( stripslashes( $_POST['data'] ), true ) ) : [];
76
+
77
+ $url = add_query_arg( $arguments, $api_domain . 'wp-json/starter-templates/v1/subscribe/' ); // add URL of your site or mail API.
78
+
79
+ $response = wp_remote_post( $url, [ 'timeout' => 60 ] );
80
+
81
+ if ( ! is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) === 200 ) {
82
+ $response = json_decode( wp_remote_retrieve_body( $response ), true );
83
+
84
+ // Successfully subscribed.
85
+ if ( isset( $response['success'] ) && $response['success'] ) {
86
+ update_user_meta( get_current_user_ID(), 'hfe-subscribed', 'yes' );
87
+ wp_send_json_success( $response );
88
+ }
89
+ } else {
90
+ wp_send_json_error( $response );
91
+ }
92
+
93
+ }
94
+
95
+ /**
96
+ * Get the API URL.
97
+ *
98
+ * @since 1.6.0
99
+ */
100
+ public function get_api_domain() {
101
+ return apply_filters( 'hfe_api_domain', 'https://websitedemos.net/' );
102
+ }
103
+
104
+ /**
105
+ * Activate addon.
106
+ *
107
+ * @since 1.6.0
108
+ */
109
+ public function hfe_activate_addon() {
110
+
111
+ // Run a security check.
112
+ check_ajax_referer( 'hfe-admin-nonce', 'nonce' );
113
+
114
+ if ( isset( $_POST['plugin'] ) ) {
115
+
116
+ $type = '';
117
+ if ( ! empty( $_POST['type'] ) ) {
118
+ $type = sanitize_key( wp_unslash( $_POST['type'] ) );
119
+ }
120
+
121
+ $plugin = sanitize_text_field( $_POST['plugin'] );
122
+
123
+ if ( 'plugin' === $type ) {
124
+
125
+ // Check for permissions.
126
+ if ( ! current_user_can( 'activate_plugins' ) ) {
127
+ wp_send_json_error( esc_html__( 'Plugin activation is disabled for you on this site.', 'header-footer-elementor' ) );
128
+ }
129
+
130
+ $activate = activate_plugins( $plugin );
131
+
132
+ if ( ! is_wp_error( $activate ) ) {
133
+
134
+ do_action( 'hfe_plugin_activated', $plugin );
135
+
136
+ wp_send_json_success( esc_html__( 'Plugin Activated.', 'header-footer-elementor' ) );
137
+ }
138
+ }
139
+
140
+ if ( 'theme' === $type ) {
141
+
142
+ $slug = sanitize_key( wp_unslash( $_POST['slug'] ) );
143
+
144
+ // Check for permissions.
145
+ if ( ! ( current_user_can( 'switch_themes' ) ) ) {
146
+ wp_send_json_error( esc_html__( 'Theme activation is disabled for you on this site.', 'header-footer-elementor' ) );
147
+ }
148
+
149
+ $activate = switch_theme( $slug );
150
+
151
+ if ( ! is_wp_error( $activate ) ) {
152
+
153
+ do_action( 'hfe_theme_activated', $plugin );
154
+
155
+ wp_send_json_success( esc_html__( 'Theme Activated.', 'header-footer-elementor' ) );
156
+ }
157
+ }
158
+ }
159
+
160
+ if ( 'plugin' === $type ) {
161
+ wp_send_json_error( esc_html__( 'Could not activate plugin. Please activate from the Plugins page.', 'header-footer-elementor' ) );
162
+ } elseif ( 'theme' === $type ) {
163
+ wp_send_json_error( esc_html__( 'Could not activate theme. Please activate from the Themes page.', 'header-footer-elementor' ) );
164
+ }
165
+ }
166
+
167
+ }
168
+
169
+ /**
170
+ * Kicking this off by calling 'get_instance()' method
171
+ */
172
+ HFE_Addons_Actions::get_instance();
173
+
174
+ }
175
+
admin/class-hfe-admin.php CHANGED
@@ -87,6 +87,7 @@ class HFE_Admin {
87
  if ( is_admin() ) {
88
  add_action( 'manage_elementor-hf_posts_custom_column', [ $this, 'column_content' ], 10, 2 );
89
  add_filter( 'manage_elementor-hf_posts_columns', [ $this, 'column_headings' ] );
 
90
  }
91
  }
92
  /**
@@ -212,24 +213,24 @@ class HFE_Admin {
212
 
213
 
214
  /**
215
- * Register Post type for header footer & blocks templates
216
  */
217
  public function header_footer_posttype() {
218
  $labels = [
219
- 'name' => __( 'Elementor - Header Footer & Blocks Template', 'header-footer-elementor' ),
220
- 'singular_name' => __( 'Elementor Header Footer & Blocks', 'header-footer-elementor' ),
221
- 'menu_name' => __( 'Elementor - Header Footer & Blocks Template', 'header-footer-elementor' ),
222
- 'name_admin_bar' => __( 'Elementor Header Footer & Blocks', 'header-footer-elementor' ),
223
  'add_new' => __( 'Add New', 'header-footer-elementor' ),
224
- 'add_new_item' => __( 'Add New Header, Footer or Block', 'header-footer-elementor' ),
225
- 'new_item' => __( 'New Header Footer & Blocks Template', 'header-footer-elementor' ),
226
- 'edit_item' => __( 'Edit Header Footer & Blocks Template', 'header-footer-elementor' ),
227
- 'view_item' => __( 'View Header Footer & Blocks Template', 'header-footer-elementor' ),
228
- 'all_items' => __( 'All Elementor Header Footer & Blocks', 'header-footer-elementor' ),
229
- 'search_items' => __( 'Search Header Footer & Blocks Templates', 'header-footer-elementor' ),
230
- 'parent_item_colon' => __( 'Parent Header Footer & Blocks Templates:', 'header-footer-elementor' ),
231
- 'not_found' => __( 'No Header Footer & Blocks Templates found.', 'header-footer-elementor' ),
232
- 'not_found_in_trash' => __( 'No Header Footer & Blocks Templates found in Trash.', 'header-footer-elementor' ),
233
  ];
234
 
235
  $args = [
@@ -249,17 +250,17 @@ class HFE_Admin {
249
  }
250
 
251
  /**
252
- * Register the admin menu for Header Footer & Blocks builder.
253
  *
254
  * @since 1.0.0
255
  * @since 1.0.1
256
- * Moved the menu under Appearance -> Header Footer & Blocks Builder
257
  */
258
  public function register_admin_menu() {
259
  add_submenu_page(
260
  'themes.php',
261
- __( 'Header Footer & Blocks', 'header-footer-elementor' ),
262
- __( 'Header Footer & Blocks', 'header-footer-elementor' ),
263
  'edit_pages',
264
  'edit.php?post_type=elementor-hf'
265
  );
@@ -271,7 +272,7 @@ class HFE_Admin {
271
  function ehf_register_metabox() {
272
  add_meta_box(
273
  'ehf-meta-box',
274
- __( 'Elementor - Header Footer & Block Options', 'header-footer-elementor' ),
275
  [
276
  $this,
277
  'efh_metabox_render',
@@ -516,7 +517,7 @@ class HFE_Admin {
516
  }
517
 
518
  /**
519
- * Don't display the elementor header footer & blocks templates on the frontend for non edit_posts capable users.
520
  *
521
  * @since 1.0.0
522
  */
87
  if ( is_admin() ) {
88
  add_action( 'manage_elementor-hf_posts_custom_column', [ $this, 'column_content' ], 10, 2 );
89
  add_filter( 'manage_elementor-hf_posts_columns', [ $this, 'column_headings' ] );
90
+ require_once HFE_DIR . 'admin/class-hfe-addons-actions.php';
91
  }
92
  }
93
  /**
213
 
214
 
215
  /**
216
+ * Register Post type for Elementor Header & Footer Builder templates
217
  */
218
  public function header_footer_posttype() {
219
  $labels = [
220
+ 'name' => __( 'Elementor Header & Footer Builder', 'header-footer-elementor' ),
221
+ 'singular_name' => __( 'Elementor Header & Footer Builder', 'header-footer-elementor' ),
222
+ 'menu_name' => __( 'Elementor Header & Footer Builder', 'header-footer-elementor' ),
223
+ 'name_admin_bar' => __( 'Elementor Header & Footer Builder', 'header-footer-elementor' ),
224
  'add_new' => __( 'Add New', 'header-footer-elementor' ),
225
+ 'add_new_item' => __( 'Add New Header or Footer', 'header-footer-elementor' ),
226
+ 'new_item' => __( 'New Template', 'header-footer-elementor' ),
227
+ 'edit_item' => __( 'Edit Template', 'header-footer-elementor' ),
228
+ 'view_item' => __( 'View Template', 'header-footer-elementor' ),
229
+ 'all_items' => __( 'All Templates', 'header-footer-elementor' ),
230
+ 'search_items' => __( 'Search Templates', 'header-footer-elementor' ),
231
+ 'parent_item_colon' => __( 'Parent Templates:', 'header-footer-elementor' ),
232
+ 'not_found' => __( 'No Templates found.', 'header-footer-elementor' ),
233
+ 'not_found_in_trash' => __( 'No Templates found in Trash.', 'header-footer-elementor' ),
234
  ];
235
 
236
  $args = [
250
  }
251
 
252
  /**
253
+ * Register the admin menu for Elementor Header & Footer Builder.
254
  *
255
  * @since 1.0.0
256
  * @since 1.0.1
257
+ * Moved the menu under Appearance -> Elementor Header & Footer Builder
258
  */
259
  public function register_admin_menu() {
260
  add_submenu_page(
261
  'themes.php',
262
+ __( 'Elementor Header & Footer Builder', 'header-footer-elementor' ),
263
+ __( 'Elementor Header & Footer Builder', 'header-footer-elementor' ),
264
  'edit_pages',
265
  'edit.php?post_type=elementor-hf'
266
  );
272
  function ehf_register_metabox() {
273
  add_meta_box(
274
  'ehf-meta-box',
275
+ __( 'Elementor Header & Footer Builder Options', 'header-footer-elementor' ),
276
  [
277
  $this,
278
  'efh_metabox_render',
517
  }
518
 
519
  /**
520
+ * Don't display the elementor Elementor Header & Footer Builder templates on the frontend for non edit_posts capable users.
521
  *
522
  * @since 1.0.0
523
  */
assets/images/settings/our-team.jpeg ADDED
Binary file
assets/images/settings/plugin-astra.png ADDED
Binary file
assets/images/settings/plugin-st.png ADDED
Binary file
assets/images/settings/plugin-uae.png ADDED
Binary file
header-footer-elementor.php CHANGED
@@ -1,20 +1,21 @@
1
  <?php
2
  /**
3
- * Plugin Name: Elementor - Header, Footer & Blocks
4
  * Plugin URI: https://github.com/Nikschavan/header-footer-elementor
5
  * Description: This powerful plugin allows creating a custom header, footer with Elementor and display them on selected locations. You can also create custom Elementor blocks and place them anywhere on the website with a shortcode.
6
  * Author: Brainstorm Force, Nikhil Chavan
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
- * Version: 1.5.9
11
- * Elementor tested up to: 3.2
12
- * Elementor Pro tested up to: 3.2
13
  *
14
  * @package header-footer-elementor
15
  */
16
 
17
- define( 'HFE_VER', '1.5.9' );
 
18
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
19
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
20
  define( 'HFE_PATH', plugin_basename( __FILE__ ) );
@@ -25,6 +26,15 @@ define( 'HFE_DOMAIN', trailingslashit( 'https://ultimateelementor.com' ) );
25
  */
26
  require_once HFE_DIR . '/inc/class-header-footer-elementor.php';
27
 
 
 
 
 
 
 
 
 
 
28
  /**
29
  * Load the Plugin Class.
30
  */
1
  <?php
2
  /**
3
+ * Plugin Name: Elementor Header & Footer Builder
4
  * Plugin URI: https://github.com/Nikschavan/header-footer-elementor
5
  * Description: This powerful plugin allows creating a custom header, footer with Elementor and display them on selected locations. You can also create custom Elementor blocks and place them anywhere on the website with a shortcode.
6
  * Author: Brainstorm Force, Nikhil Chavan
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
+ * Version: 1.6.0
11
+ * Elementor tested up to: 3.2.5
12
+ * Elementor Pro tested up to: 3.3.1
13
  *
14
  * @package header-footer-elementor
15
  */
16
 
17
+ define( 'HFE_VER', '1.6.0' );
18
+ define( 'HFE_FILE', __FILE__ );
19
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
20
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
21
  define( 'HFE_PATH', plugin_basename( __FILE__ ) );
26
  */
27
  require_once HFE_DIR . '/inc/class-header-footer-elementor.php';
28
 
29
+ /**
30
+ * Load the Plugin Class.
31
+ */
32
+ function hfe_plugin_activation() {
33
+ update_option( 'hfe_plugin_is_activated', 'yes' );
34
+ }
35
+
36
+ register_activation_hook( HFE_FILE, 'hfe_plugin_activation' );
37
+
38
  /**
39
  * Load the Plugin Class.
40
  */
inc/class-header-footer-elementor.php CHANGED
@@ -67,6 +67,8 @@ class Header_Footer_Elementor {
67
  $this->includes();
68
  $this->load_textdomain();
69
 
 
 
70
  if ( 'genesis' == $this->template ) {
71
  require HFE_DIR . 'themes/genesis/class-hfe-genesis-compat.php';
72
  } elseif ( 'astra' == $this->template ) {
@@ -83,7 +85,11 @@ class Header_Footer_Elementor {
83
  } elseif ( 'hello-elementor' == $this->template ) {
84
  require HFE_DIR . 'themes/hello-elementor/class-hfe-hello-elementor-compat.php';
85
  } else {
86
- add_action( 'init', [ $this, 'setup_unsupported_theme' ] );
 
 
 
 
87
  }
88
 
89
  // Scripts and styles.
@@ -109,7 +115,7 @@ class Header_Footer_Elementor {
109
  $bsf_analytics->set_entity(
110
  [
111
  'bsf' => [
112
- 'product_name' => 'Elementor - Header, Footer & Blocks',
113
  'path' => HFE_DIR . 'admin/bsf-analytics',
114
  'author' => 'Brainstorm Force',
115
  'time_to_display' => '+24 hours',
@@ -118,6 +124,7 @@ class Header_Footer_Elementor {
118
  );
119
 
120
  }
 
121
  }
122
 
123
  /**
@@ -167,8 +174,8 @@ class Header_Footer_Elementor {
167
  </div>
168
  </div>',
169
  $image_path,
170
- __( 'Hello! Seems like you have used Elementor - Header, Footer & Blocks to build this website — Thanks a ton!', 'header-footer-elementor' ),
171
- __( 'Could you please do us a BIG favor and give it a 5-star rating on WordPress? This would boost our motivation and help other users make a comfortable decision while choosing the Elementor - Header, Footer & Blocks.', 'header-footer-elementor' ),
172
  'https://wordpress.org/support/plugin/header-footer-elementor/reviews/?filter=5#new-post',
173
  __( 'Ok, you deserve it', 'header-footer-elementor' ),
174
  MONTH_IN_SECONDS,
@@ -222,32 +229,39 @@ class Header_Footer_Elementor {
222
  */
223
  public function elementor_not_installed_activated() {
224
 
225
- // Check user capability.
226
- if ( ! ( current_user_can( 'activate_plugins' ) && current_user_can( 'install_plugins' ) ) ) {
227
  return;
228
  }
229
 
230
- /* TO DO */
231
- $class = 'notice notice-error';
232
- /* translators: %s: html tags */
233
- $message = sprintf( __( 'The %1$sElementor - Header Footer and Blocks%2$s plugin requires %1$sElementor%2$s plugin installed & activated.', 'header-footer-elementor' ), '<strong>', '</strong>' );
 
234
 
235
- $plugin = 'elementor/elementor.php';
 
 
 
236
 
237
- if ( file_exists( WP_PLUGIN_DIR . '/elementor/elementor.php' ) ) {
238
 
239
- $action_url = wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . $plugin . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $plugin );
240
- $button_label = __( 'Activate Elementor', 'header-footer-elementor' );
241
 
242
- } else {
 
243
 
244
- $action_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' );
245
- $button_label = __( 'Install Elementor', 'header-footer-elementor' );
246
- }
247
 
248
- $button = '<p><a href="' . esc_url( $action_url ) . '" class="button-primary">' . esc_html( $button_label ) . '</a></p><p></p>';
 
 
249
 
250
- printf( '<div class="%1$s"><p>%2$s</p>%3$s</div>', esc_attr( $class ), wp_kses_post( $message ), wp_kses_post( $button ) );
 
 
 
251
  }
252
 
253
  /**
@@ -263,7 +277,7 @@ class Header_Footer_Elementor {
263
  /* TO DO */
264
  $class = 'notice notice-error';
265
  /* translators: %s: html tags */
266
- $message = sprintf( __( 'The %1$sElementor - Header Footer and Blocks%2$s plugin has stopped working because you are using an older version of %1$sElementor%2$s plugin.', 'header-footer-elementor' ), '<strong>', '</strong>' );
267
 
268
  $plugin = 'elementor/elementor.php';
269
 
@@ -283,6 +297,46 @@ class Header_Footer_Elementor {
283
  printf( '<div class="%1$s"><p>%2$s</p>%3$s</div>', esc_attr( $class ), wp_kses_post( $message ), wp_kses_post( $button ) );
284
  }
285
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286
  /**
287
  * Loads the globally required files for the plugin.
288
  */
@@ -372,8 +426,10 @@ class Header_Footer_Elementor {
372
  $screen = get_current_screen();
373
 
374
  if ( ( 'elementor-hf' == $screen->id && ( 'post.php' == $pagenow || 'post-new.php' == $pagenow ) ) || ( 'edit.php' == $pagenow && 'edit-elementor-hf' == $screen->id ) ) {
 
375
  wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER );
376
- wp_enqueue_script( 'hfe-admin-script', HFE_URL . 'admin/assets/js/ehf-admin.js', [], HFE_VER );
 
377
  }
378
  }
379
 
@@ -399,15 +455,30 @@ class Header_Footer_Elementor {
399
  return $classes;
400
  }
401
 
 
 
 
 
 
 
 
 
 
 
402
  /**
403
  * Display Unsupported theme notice if the current theme does add support for 'header-footer-elementor'
404
  *
405
- * @since 1.0.3
 
406
  */
407
- public function setup_unsupported_theme() {
408
  if ( ! current_theme_supports( 'header-footer-elementor' ) ) {
409
- require_once HFE_DIR . 'themes/default/class-hfe-fallback-theme-support.php';
 
 
 
410
  }
 
411
  }
412
 
413
  /**
@@ -512,3 +583,19 @@ class Header_Footer_Elementor {
512
  }
513
 
514
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  $this->includes();
68
  $this->load_textdomain();
69
 
70
+ add_action( 'init', [ $this, 'setup_settings_page' ] );
71
+
72
  if ( 'genesis' == $this->template ) {
73
  require HFE_DIR . 'themes/genesis/class-hfe-genesis-compat.php';
74
  } elseif ( 'astra' == $this->template ) {
85
  } elseif ( 'hello-elementor' == $this->template ) {
86
  require HFE_DIR . 'themes/hello-elementor/class-hfe-hello-elementor-compat.php';
87
  } else {
88
+ add_filter( 'hfe_settings_tabs', [ $this, 'setup_unsupported_theme' ] );
89
+ }
90
+
91
+ if ( 'yes' === get_option( 'hfe_plugin_is_activated' ) ) {
92
+ add_action( 'admin_notices', [ $this, 'show_setup_wizard' ] );
93
  }
94
 
95
  // Scripts and styles.
115
  $bsf_analytics->set_entity(
116
  [
117
  'bsf' => [
118
+ 'product_name' => 'Elementor Header & Footer builder',
119
  'path' => HFE_DIR . 'admin/bsf-analytics',
120
  'author' => 'Brainstorm Force',
121
  'time_to_display' => '+24 hours',
124
  );
125
 
126
  }
127
+
128
  }
129
 
130
  /**
174
  </div>
175
  </div>',
176
  $image_path,
177
+ __( 'Hello! Seems like you have used Elementor Header & Footer Builder to build this website — Thanks a ton!', 'header-footer-elementor' ),
178
+ __( 'Could you please do us a BIG favor and give it a 5-star rating on WordPress? This would boost our motivation and help other users make a comfortable decision while choosing the Elementor Header & Footer Builder.', 'header-footer-elementor' ),
179
  'https://wordpress.org/support/plugin/header-footer-elementor/reviews/?filter=5#new-post',
180
  __( 'Ok, you deserve it', 'header-footer-elementor' ),
181
  MONTH_IN_SECONDS,
229
  */
230
  public function elementor_not_installed_activated() {
231
 
232
+ $screen = get_current_screen();
233
+ if ( isset( $screen->parent_file ) && 'plugins.php' === $screen->parent_file && 'update' === $screen->id ) {
234
  return;
235
  }
236
 
237
+ if ( ! did_action( 'elementor/loaded' ) ) {
238
+ // Check user capability.
239
+ if ( ! ( current_user_can( 'activate_plugins' ) && current_user_can( 'install_plugins' ) ) ) {
240
+ return;
241
+ }
242
 
243
+ /* TO DO */
244
+ $class = 'notice notice-error';
245
+ /* translators: %s: html tags */
246
+ $message = sprintf( __( 'The %1$sElementor Header & Footer Builder%2$s plugin requires %1$sElementor%2$s plugin installed & activated.', 'header-footer-elementor' ), '<strong>', '</strong>' );
247
 
248
+ $plugin = 'elementor/elementor.php';
249
 
250
+ if ( _is_elementor_installed() ) {
 
251
 
252
+ $action_url = wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . $plugin . '&amp;plugin_status=all&amp;paged=1&amp;s', 'activate-plugin_' . $plugin );
253
+ $button_label = __( 'Activate Elementor', 'header-footer-elementor' );
254
 
255
+ } else {
 
 
256
 
257
+ $action_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=elementor' ), 'install-plugin_elementor' );
258
+ $button_label = __( 'Install Elementor', 'header-footer-elementor' );
259
+ }
260
 
261
+ $button = '<p><a href="' . esc_url( $action_url ) . '" class="button-primary">' . esc_html( $button_label ) . '</a></p><p></p>';
262
+
263
+ printf( '<div class="%1$s"><p>%2$s</p>%3$s</div>', esc_attr( $class ), wp_kses_post( $message ), wp_kses_post( $button ) );
264
+ }
265
  }
266
 
267
  /**
277
  /* TO DO */
278
  $class = 'notice notice-error';
279
  /* translators: %s: html tags */
280
+ $message = sprintf( __( 'The %1$sElementor Header & Footer Builder%2$s plugin has stopped working because you are using an older version of %1$sElementor%2$s plugin.', 'header-footer-elementor' ), '<strong>', '</strong>' );
281
 
282
  $plugin = 'elementor/elementor.php';
283
 
297
  printf( '<div class="%1$s"><p>%2$s</p>%3$s</div>', esc_attr( $class ), wp_kses_post( $message ), wp_kses_post( $button ) );
298
  }
299
 
300
+ /**
301
+ * Prints the admin notics when Elementor is not installed or activated.
302
+ */
303
+ public function show_setup_wizard() {
304
+
305
+ $screen = get_current_screen();
306
+ $screen_id = $screen ? $screen->id : '';
307
+
308
+ if ( 'plugins' !== $screen_id ) {
309
+ return;
310
+ }
311
+
312
+ /* TO DO */
313
+ $class = 'notice notice-info is-dismissible';
314
+ $setting_url = admin_url( 'edit.php?post_type=elementor-hf' );
315
+ $image_path = HFE_URL . 'assets/images/header-footer-elementor-icon.svg';
316
+
317
+ /* translators: %s: html tags */
318
+ $notice_message = sprintf( __( 'Thank you for installing %1$s Elementor Header & Footer Builder %2$s Plugin! Click here to %3$sget started. %4$s', 'header-footer-elementor' ), '<strong>', '</strong>', '<a href="' . $setting_url . '">', '</a>' );
319
+
320
+ Astra_Notices::add_notice(
321
+ [
322
+ 'id' => 'header-footer-install-notice',
323
+ 'type' => 'info',
324
+ /* translators: %s: html tags */
325
+ 'message' => sprintf(
326
+ '<img src="%1$s" class="custom-logo" alt="HFE" itemprop="logo">
327
+ <div class="notice-content">
328
+ <p>%2$s</p>
329
+ </div>',
330
+ $image_path,
331
+ $notice_message
332
+ ),
333
+ 'repeat-notice-after' => false,
334
+ 'priority' => 18,
335
+ 'display-with-other-notices' => false,
336
+ ]
337
+ );
338
+ }
339
+
340
  /**
341
  * Loads the globally required files for the plugin.
342
  */
426
  $screen = get_current_screen();
427
 
428
  if ( ( 'elementor-hf' == $screen->id && ( 'post.php' == $pagenow || 'post-new.php' == $pagenow ) ) || ( 'edit.php' == $pagenow && 'edit-elementor-hf' == $screen->id ) ) {
429
+
430
  wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER );
431
+ wp_enqueue_script( 'hfe-admin-script', HFE_URL . 'admin/assets/js/ehf-admin.js', [ 'jquery', 'updates' ], HFE_VER, true );
432
+
433
  }
434
  }
435
 
455
  return $classes;
456
  }
457
 
458
+ /**
459
+ * Display Settings Page options
460
+ *
461
+ * @since 1.6.0
462
+ */
463
+ public function setup_settings_page() {
464
+
465
+ require_once HFE_DIR . 'inc/class-hfe-settings-page.php';
466
+ }
467
+
468
  /**
469
  * Display Unsupported theme notice if the current theme does add support for 'header-footer-elementor'
470
  *
471
+ * @param array $hfe_settings_tabs settings array tabs.
472
+ * @since 1.0.3
473
  */
474
+ public function setup_unsupported_theme( $hfe_settings_tabs = [] ) {
475
  if ( ! current_theme_supports( 'header-footer-elementor' ) ) {
476
+ $hfe_settings_tabs['hfe_settings'] = [
477
+ 'name' => __( 'Theme Support', 'header-footer-elementor' ),
478
+ 'url' => admin_url( 'themes.php?page=hfe-settings' ),
479
+ ];
480
  }
481
+ return $hfe_settings_tabs;
482
  }
483
 
484
  /**
583
  }
584
 
585
  }
586
+ /**
587
+ * Is elementor plugin installed.
588
+ */
589
+ if ( ! function_exists( '_is_elementor_installed' ) ) {
590
+
591
+ /**
592
+ * Check if Elementor is installed
593
+ *
594
+ * @since 1.6.0
595
+ *
596
+ * @access public
597
+ */
598
+ function _is_elementor_installed() {
599
+ return ( file_exists( WP_PLUGIN_DIR . '/elementor/elementor.php' ) ) ? true : false;
600
+ }
601
+ }
inc/class-hfe-settings-page.php ADDED
@@ -0,0 +1,816 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * HFE Settings Page.
4
+ *
5
+ * Add plugin setting page.
6
+ *
7
+ * @since 1.6.0
8
+ * @package hfe
9
+ */
10
+
11
+ namespace HFE\Themes;
12
+
13
+ /**
14
+ * Class Settings Page.
15
+ *
16
+ * @since 1.6.0
17
+ */
18
+ class HFE_Settings_Page {
19
+
20
+ /**
21
+ * Constructor.
22
+ *
23
+ * @since 1.6.0
24
+ */
25
+ public function __construct() {
26
+ $this->setup_fallback_support();
27
+ add_action( 'admin_head', [ $this, 'hfe_global_css' ] );
28
+ add_action( 'admin_menu', [ $this, 'hfe_register_settings_page' ] );
29
+ add_action( 'admin_init', [ $this, 'hfe_admin_init' ] );
30
+ add_filter( 'views_edit-elementor-hf', [ $this, 'hfe_settings' ], 10, 1 );
31
+ add_filter( 'admin_footer_text', [ $this, 'admin_footer_text' ] );
32
+ add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_scripts' ] );
33
+ add_filter( 'plugin_action_links_' . HFE_PATH, [ $this, 'settings_link' ] );
34
+ }
35
+
36
+ /**
37
+ * Settings tab array
38
+ *
39
+ * @var settings tabs
40
+ */
41
+ public static $hfe_settings_tabs;
42
+
43
+ /**
44
+ * Adds CSS to Hide the extra submenu added for the settings tab.
45
+ *
46
+ * @since 1.6.0
47
+ * @return void
48
+ */
49
+ public function hfe_global_css() {
50
+ wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER );
51
+ }
52
+
53
+ /**
54
+ * Load admin styles on header footer elementor edit screen.
55
+ */
56
+ public function enqueue_admin_scripts() {
57
+ wp_enqueue_script( 'hfe-admin-script', HFE_URL . 'admin/assets/js/ehf-admin.js', [ 'jquery', 'updates' ], HFE_VER, true );
58
+
59
+ $is_dismissed = get_user_meta( get_current_user_id(), 'hfe-popup' );
60
+
61
+ $strings = [
62
+ 'addon_activate' => esc_html__( 'Activate', 'header-footer-elementor' ),
63
+ 'addon_activated' => esc_html__( 'Activated', 'header-footer-elementor' ),
64
+ 'addon_active' => esc_html__( 'Active', 'header-footer-elementor' ),
65
+ 'addon_deactivate' => esc_html__( 'Deactivate', 'header-footer-elementor' ),
66
+ 'addon_inactive' => esc_html__( 'Inactive', 'header-footer-elementor' ),
67
+ 'addon_install' => esc_html__( 'Install', 'header-footer-elementor' ),
68
+ 'theme_installed' => esc_html__( 'Theme Installed', 'header-footer-elementor' ),
69
+ 'plugin_installed' => esc_html__( 'Plugin Installed', 'header-footer-elementor' ),
70
+ 'addon_download' => esc_html__( 'Download', 'header-footer-elementor' ),
71
+ 'addon_exists' => esc_html__( 'Already Exists.', 'header-footer-elementor' ),
72
+ 'visit_site' => esc_html__( 'Visit Website', 'header-footer-elementor' ),
73
+ 'plugin_error' => esc_html__( 'Could not install. Please download from WordPress.org and install manually.', 'header-footer-elementor' ),
74
+ 'subscribe_success' => esc_html__( 'Your details are submitted successfully.', 'header-footer-elementor' ),
75
+ 'subscribe_error' => esc_html__( 'Encountered an error while performing your request.', 'header-footer-elementor' ),
76
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
77
+ 'nonce' => wp_create_nonce( 'hfe-admin-nonce' ),
78
+ 'popup_dismiss' => false,
79
+ 'data_source' => 'HFE',
80
+ ];
81
+
82
+ $strings = apply_filters( 'hfe_admin_strings', $strings );
83
+
84
+ wp_localize_script(
85
+ 'hfe-admin-script',
86
+ 'hfe_admin_data',
87
+ $strings
88
+ );
89
+
90
+ }
91
+
92
+ /**
93
+ * Adds a tab in plugin submenu page.
94
+ *
95
+ * @since 1.6.0
96
+ * @param string $views to add tab to current post type view.
97
+ *
98
+ * @return mixed
99
+ */
100
+ public function hfe_settings( $views ) {
101
+
102
+ $this->hfe_tabs();
103
+ $is_dismissed = [];
104
+ $is_dismissed = get_user_meta( get_current_user_id(), 'hfe-popup' );
105
+
106
+ $is_subscribed = get_user_meta( get_current_user_ID(), 'hfe-subscribed' );
107
+ $subscribe_valid = ( is_array( $is_subscribed ) && isset( $is_subscribed[0] ) && 'yes' === $is_subscribed[0] ) ? 'yes' : false;
108
+
109
+ if ( ( ! empty( $is_dismissed ) && 'dismissed' === $is_dismissed[0] ) || 'yes' === $subscribe_valid ) {
110
+ return false;
111
+ } else {
112
+ $this->get_guide_modal();
113
+ }
114
+ return $views;
115
+ }
116
+
117
+ /**
118
+ * Function for registering the settings api.
119
+ *
120
+ * @since 1.6.0
121
+ * @return void
122
+ */
123
+ public function hfe_admin_init() {
124
+ register_setting( 'hfe-plugin-options', 'hfe_compatibility_option' );
125
+ add_settings_section( 'hfe-options', __( 'Add Theme Support', 'header-footer-elementor' ), [ $this, 'hfe_compatibility_callback' ], 'Settings' );
126
+ add_settings_field( 'hfe-way', 'Methods to Add Theme Support', [ $this, 'hfe_compatibility_option_callback' ], 'Settings', 'hfe-options' );
127
+
128
+ register_setting( 'hfe-plugin-guide', 'hfe_guide_email' );
129
+ register_setting( 'hfe-plugin-guide', 'hfe_guide_fname' );
130
+
131
+ }
132
+
133
+ /**
134
+ * Call back function for the ssettings api function add_settings_section
135
+ *
136
+ * This function can be used to add description of the settings sections
137
+ *
138
+ * @since 1.6.0
139
+ * @return void
140
+ */
141
+ public function hfe_compatibility_callback() {
142
+ _e( 'The Elementor Header & Footer Builder plugin need compatibility with your current theme to work smoothly.</br></br>Following are two methods that enable theme support for the plugin.</br></br>Method 1 is selected by default and that works fine almost will all themes. In case, you face any issue with the header or footer template, try choosing Method 2.', 'header-footer-elementor' );
143
+ }
144
+
145
+ /**
146
+ * Call back function for the ssettings api function add_settings_field
147
+ *
148
+ * This function will contain the markup for the input feilds that we can add.
149
+ *
150
+ * @since 1.6.0
151
+ * @return void
152
+ */
153
+ public function hfe_compatibility_option_callback() {
154
+ $hfe_radio_button = get_option( 'hfe_compatibility_option', '1' );
155
+ wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER );
156
+ ?>
157
+
158
+ <label>
159
+ <input type="radio" name="hfe_compatibility_option" value= 1 <?php checked( $hfe_radio_button, 1 ); ?> > <div class="hfe_radio_options"><?php esc_html_e( ' Method 1 (Recommended)', 'header-footer-elementor' ); ?></div>
160
+ <p class="description"><?php esc_html_e( 'This method replaces your theme\'s header (header.php) & footer (footer.php) template with plugin\'s custom templates.', 'header-footer-elementor' ); ?></p><br>
161
+ </label>
162
+ <label>
163
+ <input type="radio" name="hfe_compatibility_option" value= 2 <?php checked( $hfe_radio_button, 2 ); ?> > <div class="hfe_radio_options"><?php esc_html_e( 'Method 2', 'header-footer-elementor' ); ?></div>
164
+ <p class="description">
165
+ <?php
166
+ echo sprintf(
167
+ esc_html( "This method hides your theme's header & footer template with CSS and displays custom templates from the plugin.", 'header-footer-elementor' ),
168
+ '<br>'
169
+ );
170
+ ?>
171
+ </p><br>
172
+ </label>
173
+ <p class="description">
174
+ <?php
175
+ echo sprintf(
176
+ _e( 'Sometimes above methods might not work well with your theme, in this case, contact your theme author and request them to add support for the <a href="https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-Header-Footer-Elementor-support-for-your-theme">plugin.</>', 'header-footer-elementor' ),
177
+ '<br>'
178
+ );
179
+ ?>
180
+ </p>
181
+
182
+ <?php
183
+ }
184
+
185
+ /**
186
+ * Show a settings page incase of unsupported theme.
187
+ *
188
+ * @since 1.6.0
189
+ *
190
+ * @return void
191
+ */
192
+ public function hfe_register_settings_page() {
193
+ add_submenu_page(
194
+ 'themes.php',
195
+ __( 'Settings', 'header-footer-elementor' ),
196
+ __( 'Settings', 'header-footer-elementor' ),
197
+ 'manage_options',
198
+ 'hfe-settings',
199
+ [ $this, 'hfe_settings_page' ]
200
+ );
201
+
202
+ add_submenu_page(
203
+ 'themes.php',
204
+ __( 'About Us', 'header-footer-elementor' ),
205
+ __( 'About Us', 'header-footer-elementor' ),
206
+ 'manage_options',
207
+ 'hfe-about',
208
+ [ $this, 'hfe_settings_page' ]
209
+ );
210
+ }
211
+
212
+ /**
213
+ * Setup Theme Support.
214
+ *
215
+ * @since 1.2.0
216
+ * @return void
217
+ */
218
+ public function setup_fallback_support() {
219
+ $hfe_compatibility_option = get_option( 'hfe_compatibility_option', '1' );
220
+
221
+ if ( '1' === $hfe_compatibility_option ) {
222
+ if ( ! class_exists( 'HFE_Default_Compat' ) ) {
223
+ require_once HFE_DIR . 'themes/default/class-hfe-default-compat.php';
224
+ }
225
+ } elseif ( '2' === $hfe_compatibility_option ) {
226
+ require HFE_DIR . 'themes/default/class-global-theme-compatibility.php';
227
+ }
228
+ }
229
+
230
+ /**
231
+ * Settings page.
232
+ *
233
+ * Call back function for add submenu page function.
234
+ *
235
+ * @since 1.6.0
236
+ */
237
+ public function hfe_settings_page() {
238
+ echo '<h1 class="hfe-heading-inline">';
239
+ esc_attr_e( 'Elementor Header & Footer Builder ', 'header-footer-elementor' );
240
+ echo '</h1>';
241
+ $this->hfe_tabs();
242
+ ?>
243
+ <?php
244
+ $hfe_radio_button = get_option( 'hfe_compatibility_option', '1' );
245
+ ?>
246
+ <?php
247
+ switch ( $_GET['page'] ) {
248
+ case 'hfe-settings':
249
+ $this->get_themes_support();
250
+ break;
251
+
252
+ case 'hfe-about':
253
+ $this->get_about_html();
254
+ break;
255
+
256
+ case 'default':
257
+ break;
258
+ }
259
+ }
260
+
261
+ /**
262
+ * Function for adding tabs
263
+ *
264
+ * @since 1.6.0
265
+ * @return void
266
+ */
267
+ public function hfe_tabs() {
268
+ ?>
269
+ <div class="nav-tab-wrapper">
270
+ <?php
271
+ if ( ! isset( self::$hfe_settings_tabs ) ) {
272
+ self::$hfe_settings_tabs['hfe_templates'] = [
273
+ 'name' => __( 'All Templates', 'header-footer-elementor' ),
274
+ 'url' => admin_url( 'edit.php?post_type=elementor-hf' ),
275
+ ];
276
+ }
277
+
278
+ self::$hfe_settings_tabs['hfe_about'] = [
279
+ 'name' => __( 'About Us', 'header-footer-elementor' ),
280
+ 'url' => admin_url( 'themes.php?page=hfe-about' ),
281
+ ];
282
+
283
+ $tabs = apply_filters( 'hfe_settings_tabs', self::$hfe_settings_tabs );
284
+
285
+ foreach ( $tabs as $tab_id => $tab ) {
286
+
287
+ $tab_slug = str_replace( '_', '-', $tab_id );
288
+
289
+ $active_tab = ( ( isset( $_GET['page'] ) && $tab_slug == $_GET['page'] ) || ( ! isset( $_GET['page'] ) && 'hfe_templates' == $tab_id ) ) ? $tab_id : '';
290
+
291
+ $active = ( $active_tab == $tab_id ) ? ' nav-tab-active' : '';
292
+
293
+ echo '<a href="' . esc_url( $tab['url'] ) . '" class="nav-tab' . esc_attr( $active ) . '">';
294
+ echo esc_html( $tab['name'] );
295
+ echo '</a>';
296
+ }
297
+
298
+ ?>
299
+ </div>
300
+ <?php
301
+ }
302
+
303
+ /**
304
+ * Admin footer text.
305
+ *
306
+ * Modifies the "Thank you" text displayed in the admin footer.
307
+ *
308
+ * Fired by `admin_footer_text` filter.
309
+ *
310
+ * @since 1.6.0
311
+ * @access public
312
+ *
313
+ * @param string $footer_text The content that will be printed.
314
+ *
315
+ * @return string The content that will be printed.
316
+ */
317
+ public function admin_footer_text( $footer_text ) {
318
+ $current_screen = get_current_screen();
319
+
320
+ $is_elementor_screen = ( $current_screen && ( 'elementor-hf' === $current_screen->post_type || 'appearance_page_hfe-guide' === $current_screen->id || 'appearance_page_hfe-about' === $current_screen->id || 'appearance_page_hfe-settings' === $current_screen->id ) );
321
+
322
+ if ( $is_elementor_screen ) {
323
+ $footer_text = sprintf(
324
+ /* translators: 1: Elementor, 2: Link to plugin review */
325
+ __( 'Help us spread the word about the plugin by leaving %2$s %1$s %3$s ratings on %2$s WordPress.org %3$s. Thank you from the Brainstorm Force team!', 'header-footer-elementor' ),
326
+ '&#9733;&#9733;&#9733;&#9733;&#9733;',
327
+ '<a href="https://wordpress.org/support/plugin/header-footer-elementor/reviews/#new-post" target="_blank">',
328
+ '</a>'
329
+ );
330
+ }
331
+
332
+ return $footer_text;
333
+ }
334
+
335
+ /**
336
+ * Function for theme support tab
337
+ *
338
+ * @since 1.6.0
339
+ * @return void
340
+ */
341
+ public function get_themes_support() {
342
+ ?>
343
+ <form action="options.php" method="post">
344
+ <?php settings_fields( 'hfe-plugin-options' ); ?>
345
+ <?php do_settings_sections( 'Settings' ); ?>
346
+ <?php submit_button(); ?>
347
+ </form>
348
+ <?php
349
+ }
350
+
351
+ /**
352
+ * Function for Step-By-Step guide
353
+ *
354
+ * @since 1.6.0
355
+ * @return void
356
+ */
357
+ public function get_guide_html() {
358
+
359
+ $is_subscribed = get_user_meta( get_current_user_ID(), 'hfe-subscribed' );
360
+ $subscribe_valid = ( is_array( $is_subscribed ) && isset( $is_subscribed[0] ) && 'yes' === $is_subscribed[0] ) ? 'yes' : false;
361
+ $subscribe_flag = ( 'yes' === $subscribe_valid ) ? ' hfe-user-subscribed' : ' hfe-user-unsubscribed';
362
+ ?>
363
+
364
+ <div class="hfe-admin-about-section hfe-admin-columns hfe-admin-guide-section<?php echo $subscribe_flag; ?>">
365
+
366
+ <div class="hfe-admin-column-50">
367
+ <div class="hfe-admin-about-section-column">
368
+ <h2><?php esc_html_e( 'Create Impressive Header and Footer Designs', 'header-footer-elementor' ); ?></h2>
369
+ <p><?php esc_html_e( 'Elementor Header & Footer Builder plugin lets you build impactful navigation for your website very easily. Before we begin, we would like to know more about you. This will help us to serve you better.', 'header-footer-elementor' ); ?></p>
370
+ </div>
371
+ </div>
372
+ <?php if ( 'yes' !== $subscribe_valid ) { ?>
373
+ <div class="hfe-admin-column-50 hfe-admin-column-last">
374
+ <div class="hfe-guide-content hfe-subscription-step-1-active">
375
+ <div class="hfe-guide-content-header hfe-admin-columns">
376
+ </div>
377
+ <form action="options.php" method="post">
378
+ <?php $this->get_form_html(); ?>
379
+ </form>
380
+ </div>
381
+ <div class="hfe-privacy-policy-container">
382
+ <?php /* translators: %1$s and %3$s are opening anchor tags, and %2$s and %4$s is closing anchor tags. */ ?>
383
+ <p class="hfe-subscription-policy"><?php printf( __( 'By submitting, you agree to our %1$sTerms%2$s and %3$sPrivacy Policy%4$s.', 'header-footer-elementor' ), '<a href="https://store.brainstormforce.com/terms-and-conditions/" target="_blank">', '</a>', '<a href="https://store.brainstormforce.com/privacy-policy/" target="_blank">', '</a>' ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>
384
+ </div>
385
+ </div>
386
+ <?php } ?>
387
+ </div>
388
+ <?php
389
+ }
390
+
391
+ /**
392
+ * Function for form HTML
393
+ *
394
+ * @since 1.6.0
395
+ * @return void
396
+ */
397
+ public function get_form_html() {
398
+ ?>
399
+ <?php $this->get_form_row_1(); ?>
400
+ <?php $this->get_form_row_2(); ?>
401
+ <a href="#" class="button-subscription-skip"><?php esc_html_e( 'Skip', 'header-footer-elementor' ); ?></a>
402
+ <?php
403
+ }
404
+
405
+ /**
406
+ * Function for form Row 1 HTML
407
+ *
408
+ * @since 1.6.0
409
+ * @return void
410
+ */
411
+ public function get_form_row_1() {
412
+ ?>
413
+
414
+ <div class="hfe-subscription-step-1">
415
+ <div class="hfe-subscription-row">
416
+ <div class="hfe-input-container">
417
+ <select class="hfe-subscribe-field subscription-input-wp-user-type" name="wp_user_type">
418
+ <option value=""></option>
419
+ <option value="1"><?php esc_html_e( 'Beginner', 'header-footer-elementor' ); ?></option>
420
+ <option value="2"><?php esc_html_e( 'Intermediate', 'header-footer-elementor' ); ?></option>
421
+ <option value="3"><?php esc_html_e( 'Expert', 'header-footer-elementor' ); ?></option>
422
+ </select>
423
+ <small class="subscription-desc"><?php esc_html_e( 'Field is required', 'header-footer-elementor' ); ?></small>
424
+ <label class="subscription-label"><?php esc_html_e( 'I\'m a WordPress:', 'header-footer-elementor' ); ?></label>
425
+ </div>
426
+ <div class="hfe-input-container">
427
+ <select class="hfe-subscribe-field subscription-input-build-website-for" name="build_website_for">
428
+ <option value=""></option>
429
+ <option value="1"><?php esc_html_e( 'Myself/My company', 'header-footer-elementor' ); ?></option>
430
+ <option value="2"><?php esc_html_e( 'My client', 'header-footer-elementor' ); ?></option>
431
+ </select>
432
+ <small class="subscription-desc"><?php esc_html_e( 'Field is required', 'header-footer-elementor' ); ?></small>
433
+ <label class="subscription-label"><?php esc_html_e( 'I\'m building website for:', 'header-footer-elementor' ); ?></label>
434
+ </div>
435
+ </div>
436
+
437
+ <p class="submit">
438
+ <input type="submit" name="submit-1" id="submit-1" class="button submit-1 button-primary" value="Next">
439
+ </p>
440
+ </div>
441
+ <?php
442
+ }
443
+
444
+ /**
445
+ * Function for form Row 2 HTML
446
+ *
447
+ * @since 1.6.0
448
+ * @return void
449
+ */
450
+ public function get_form_row_2() {
451
+ ?>
452
+ <div class="hfe-subscription-step-2">
453
+ <div class="hfe-subscription-row">
454
+ <div class="hfe-input-container">
455
+ <input id="hfe_subscribe_name" class="hfe-subscribe-field hfe-subscribe-name" type="text" name="hfe_subscribe_name" value="<?php echo get_option( 'hfe_guide_fname' ); ?>">
456
+ <small class="subscription-desc"><?php esc_html_e( 'First name is required', 'header-footer-elementor' ); ?></small>
457
+ <label class="subscription-label"><?php esc_html_e( 'Your First Name', 'header-footer-elementor' ); ?></label>
458
+ </div>
459
+ <div class="hfe-input-container">
460
+ <input id="hfe_subscribe_email" class="hfe-subscribe-field hfe-subscribe-email" type="text" name="hfe_subscribe_email" value="<?php echo get_option( 'hfe_guide_email' ); ?>">
461
+ <small class="subscription-desc"><?php esc_html_e( 'Email address is required', 'header-footer-elementor' ); ?></small>
462
+ <label class="subscription-label"><?php esc_html_e( 'Your Work Email', 'header-footer-elementor' ); ?></label>
463
+ </div>
464
+ </div>
465
+ <p class="submit">
466
+ <button type="submit" id="submit-2" class="button submit-2 button-primary">
467
+ <span class="hfe-submit-button-text"><?php echo __( 'Submit', 'header-footer-elementor' ); ?></span>
468
+ </button>
469
+ </p>
470
+ </div>
471
+ <?php
472
+ }
473
+
474
+
475
+ /**
476
+ * Function for Step-By-Step guide modal popup
477
+ *
478
+ * @since 1.6.0
479
+ * @return void
480
+ */
481
+ public function get_guide_modal() {
482
+ $new_page_url = admin_url( 'post-new.php?post_type=elementor-hf' );
483
+ ?>
484
+ <div class="hfe-guide-modal-popup" data-new-page="<?php echo esc_attr( $new_page_url ); ?>">
485
+ <div class="hfe-guide-modal-popup-wrapper">
486
+ <div class="hfe-guide-modal-content">
487
+ <div class="heading">
488
+ <img src="<?php echo HFE_URL . 'assets/images/header-footer-elementor-icon.svg'; ?>" class="hfe-logo">
489
+ <h3><?php esc_html_e( 'Elementor Header & Footer Builder', 'header-footer-elementor' ); ?></h3>
490
+ </div>
491
+ <?php $this->get_guide_html(); ?>
492
+ </div>
493
+ </div>
494
+ <div class="hfe-guide-modal-overlay"></div>
495
+ </div>
496
+ <?php
497
+ }
498
+
499
+ /**
500
+ * Function for About us HTML
501
+ *
502
+ * @since 1.6.0
503
+ * @return void
504
+ */
505
+ public function get_about_html() {
506
+ $this->output_about_info();
507
+ $this->output_about_addons();
508
+ }
509
+
510
+ /**
511
+ * Display the General Info section of About tab.
512
+ *
513
+ * @since 1.6.0
514
+ */
515
+ protected function output_about_info() {
516
+ ?>
517
+
518
+ <div class="hfe-admin-about-section hfe-admin-columns hfe-admin-about-us">
519
+
520
+ <div class="hfe-admin-column-60">
521
+ <h3><?php esc_html_e( 'Welcome to Elementor Header & Footer Builder!', 'header-footer-elementor' ); ?></h3>
522
+
523
+ <p><?php esc_html_e( 'With this awesome plugin, experience the easiest way to create a customized header and footer for your website with Elementor. That too 100% FREE!', 'header-footer-elementor' ); ?></p>
524
+
525
+ <p><?php esc_html_e( 'Design beautiful layouts with simple drag & drop and display them at desired location with powerful target controls. The plugin comes with inbuilt Elementor widgets that offer essential features to build header and footer. It\'s a lightweight plugin that works seamlessly with all themes and backed up by 24/7 support.', 'header-footer-elementor' ); ?></p>
526
+
527
+ <p><?php esc_html_e( 'Trusted by more than 1+ Million users, Elementor Header & Footer Builder is a modern way to build advanced navigation for your website.', 'header-footer-elementor' ); ?></p>
528
+
529
+ <p><?php esc_html_e( 'This plugin is brought to you by the same team behind the popular WordPress theme Astra and a series of Ultimate Addons plugins.', 'header-footer-elementor' ); ?></p>
530
+
531
+ </div>
532
+
533
+ <div class="hfe-admin-column-40 hfe-admin-column-last">
534
+ <figure>
535
+ <img src="<?php echo HFE_URL; ?>assets/images/settings/our-team.jpeg" alt="<?php esc_attr_e( 'Team photo', 'header-footer-elementor' ); ?>">
536
+ <figcaption>
537
+ <?php esc_html_e( 'Brainstorm Force Team', 'header-footer-elementor' ); ?><br>
538
+ </figcaption>
539
+ </figure>
540
+ </div>
541
+
542
+ </div>
543
+ <?php
544
+ }
545
+
546
+ /**
547
+ * Display the Addons section of About tab.
548
+ *
549
+ * @since 1.6.0
550
+ */
551
+ protected function output_about_addons() {
552
+
553
+ if ( ! current_user_can( 'manage_options' ) ) {
554
+ return;
555
+ }
556
+
557
+ $all_plugins = get_plugins();
558
+ $all_themes = wp_get_themes();
559
+ $bsf_plugins = $this->get_bsf_plugins();
560
+ $can_install_plugins = $this->hfe_can_install( 'plugin' );
561
+ $can_install_themes = $this->hfe_can_install( 'theme' );
562
+
563
+ ?>
564
+ <div class="hfe-admin-addons">
565
+ <div class="addons-container">
566
+ <?php
567
+ foreach ( $bsf_plugins as $plugin => $details ) :
568
+
569
+ $plugin_data = $this->get_plugin_data( $plugin, $details, $all_plugins, $all_themes );
570
+
571
+ ?>
572
+ <div class="addon-container">
573
+ <div class="addon-item">
574
+ <div class="details hfe-clear">
575
+ <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>">
576
+ <div class="addon-details">
577
+ <h5 class="addon-name">
578
+ <?php
579
+ printf(
580
+ /* translators: %s - addon status label. */
581
+ esc_html__( '%1$s %3$s %2$s', 'header-footer-elementor' ),
582
+ '<a href="' . esc_attr( $details['siteurl'] ) . '" target="_blank" class="website-link">',
583
+ '</a>',
584
+ esc_html( $plugin_data['details']['name'] )
585
+ );
586
+ ?>
587
+ </h5>
588
+
589
+ <p class="addon-desc"><?php echo wp_kses_post( $plugin_data['details']['desc'] ); ?></p>
590
+ </div>
591
+ </div>
592
+ <div class="actions hfe-clear">
593
+ <div class="status">
594
+ <strong>
595
+ <?php
596
+ printf(
597
+ /* translators: %s - addon status label. */
598
+ esc_html__( 'Status: %s', 'header-footer-elementor' ),
599
+ '<span class="status-label ' . esc_attr( $plugin_data['status_class'] ) . '">' . wp_kses_post( $plugin_data['status_text'] ) . '</span>'
600
+ );
601
+ ?>
602
+ </strong>
603
+ </div>
604
+ <div class="action-button">
605
+ <?php if ( 'Visit Website' === $plugin_data['action_text'] ) { ?>
606
+ <a href="<?php echo esc_url( $plugin_data['plugin_src'] ); ?>" target="_blank" rel="noopener noreferrer" class="pro-plugin button button-primary"><?php echo wp_kses_post( $plugin_data['action_text'] ); ?></a>
607
+ <?php } elseif ( 'theme' === $details['type'] && $can_install_themes ) { ?>
608
+ <button class="<?php echo esc_attr( $plugin_data['action_class'] ); ?>" data-plugin="<?php echo esc_attr( $plugin_data['plugin_src'] ); ?>" data-type="theme" data-slug="<?php echo esc_attr( $details['slug'] ); ?>" data-site="<?php echo esc_url( $details['url'] ); ?>">
609
+ <span><?php echo wp_kses_post( $plugin_data['action_text'] ); ?></span>
610
+ </button>
611
+ <?php } elseif ( 'plugin' === $details['type'] && $can_install_plugins ) { ?>
612
+ <button class="<?php echo esc_attr( $plugin_data['action_class'] ); ?>" data-plugin="<?php echo esc_attr( $plugin_data['plugin_src'] ); ?>" data-type="plugin" data-slug="<?php echo esc_attr( $details['slug'] ); ?>" data-site="<?php echo esc_url( $details['url'] ); ?>" data-file="<?php echo esc_attr( $plugin ); ?>">
613
+ <span><?php echo wp_kses_post( $plugin_data['action_text'] ); ?></span>
614
+ </button>
615
+ <?php } else { ?>
616
+ <a href="<?php echo esc_url( $details['wporg'] ); ?>" target="_blank" rel="noopener noreferrer">
617
+ <?php esc_html_e( 'WordPress.org', 'header-footer-elementor' ); ?>
618
+ <span aria-hidden="true" class="dashicons dashicons-external"></span>
619
+ </a>
620
+ <?php } ?>
621
+ </div>
622
+ </div>
623
+ </div>
624
+ </div>
625
+ <?php endforeach; ?>
626
+ </div>
627
+ </div>
628
+ <?php
629
+ }
630
+
631
+ /**
632
+ * Get plugin data to display in the Addons section of About tab.
633
+ *
634
+ * @since 1.6.0
635
+ *
636
+ * @param string $addon Plugin/Theme slug.
637
+ * @param array $details Plugin details.
638
+ * @param array $all_plugins List of all plugins.
639
+ * @param array $all_themes List of all themes.
640
+ *
641
+ * @return array
642
+ */
643
+ protected function get_plugin_data( $addon, $details, $all_plugins, $all_themes ) {
644
+
645
+ $have_pro = ( ! empty( $details['pro'] ) );
646
+ $show_pro = false;
647
+
648
+ $theme = wp_get_theme();
649
+
650
+ $plugin_data = [];
651
+
652
+ $is_plugin = ( 'plugin' === $details['type'] ) ? true : false;
653
+ $is_theme = ( 'theme' === $details['type'] ) ? true : false;
654
+
655
+ if ( ( $is_plugin && array_key_exists( $addon, $all_plugins ) ) || ( $is_theme && array_key_exists( $addon, $all_themes ) ) ) {
656
+
657
+ if ( ( $is_plugin && is_plugin_active( $addon ) ) || ( $is_theme && ( 'Astra' === $theme->name || 'Astra' === $theme->parent_theme ) ) ) {
658
+
659
+ // Status text/status.
660
+ $plugin_data['status_class'] = 'status-active';
661
+ $plugin_data['status_text'] = esc_html__( 'Active', 'header-footer-elementor' );
662
+ // Button text/status.
663
+ $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary disabled';
664
+ $plugin_data['action_text'] = esc_html__( 'Activated', 'header-footer-elementor' );
665
+ $plugin_data['plugin_src'] = esc_attr( $addon );
666
+ } else {
667
+ // Status text/status.
668
+ $plugin_data['status_class'] = 'status-inactive';
669
+ $plugin_data['status_text'] = esc_html__( 'Inactive', 'header-footer-elementor' );
670
+ // Button text/status.
671
+ $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary';
672
+ $plugin_data['action_text'] = esc_html__( 'Activate', 'header-footer-elementor' );
673
+ $plugin_data['plugin_src'] = esc_attr( $addon );
674
+ }
675
+ } else {
676
+ // install if already doesn't exists.
677
+ // Status text/status.
678
+ $plugin_data['status_class'] = 'status-download';
679
+ if ( isset( $details['act'] ) && 'go-to-url' === $details['act'] ) {
680
+ $plugin_data['status_class'] = 'status-go-to-url';
681
+ }
682
+ $plugin_data['status_text'] = esc_html__( 'Not Installed', 'header-footer-elementor' );
683
+ // Button text/status.
684
+ $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-primary';
685
+ $plugin_data['action_text'] = esc_html__( 'Install', 'header-footer-elementor' );
686
+ $plugin_data['plugin_src'] = esc_url( $details['url'] );
687
+
688
+ if ( $have_pro ) {
689
+ $plugin_data['status_class'] = '';
690
+ $plugin_data['action_text'] = esc_html__( 'Visit Website', 'header-footer-elementor' );
691
+ }
692
+ }
693
+
694
+ $plugin_data['details'] = $details;
695
+
696
+ return $plugin_data;
697
+ }
698
+
699
+ /**
700
+ * List of plugins that we propose to install.
701
+ *
702
+ * @since 1.6.0
703
+ *
704
+ * @return array
705
+ */
706
+ protected function get_bsf_plugins() {
707
+
708
+ $images_url = HFE_URL . 'assets/images/settings/';
709
+
710
+ return [
711
+
712
+ 'astra' => [
713
+ 'icon' => $images_url . 'plugin-astra.png',
714
+ 'type' => 'theme',
715
+ 'name' => esc_html__( 'Astra Theme', 'header-footer-elementor' ),
716
+ 'desc' => esc_html__( 'Powering over 1+ Million websites, Astra is loved for the fast performance and ease of use it offers. It is suitable for all kinds of websites like blogs, portfolios, business, and WooCommerce stores.', 'header-footer-elementor' ),
717
+ 'wporg' => 'https://wordpress.org/themes/astra/',
718
+ 'url' => 'https://downloads.wordpress.org/theme/astra.zip',
719
+ 'siteurl' => 'https://wpastra.com/',
720
+ 'pro' => false,
721
+ 'slug' => 'astra',
722
+ ],
723
+
724
+ 'astra-sites/astra-sites.php' => [
725
+ 'icon' => $images_url . 'plugin-st.png',
726
+ 'type' => 'plugin',
727
+ 'name' => esc_html__( 'Starter Templates', 'header-footer-elementor' ),
728
+ 'desc' => esc_html__( 'A popular templates plugin that provides an extensive library of professional and fully customizable 600+ ready website and templates. More than 1+ Million websites have built with this plugin.', 'header-footer-elementor' ),
729
+ 'wporg' => 'https://wordpress.org/plugins/astra-sites/',
730
+ 'url' => 'https://downloads.wordpress.org/plugin/astra-sites.zip',
731
+ 'siteurl' => 'https://startertemplates.com/',
732
+ 'pro' => false,
733
+ 'slug' => 'astra-sites',
734
+ ],
735
+
736
+ 'ultimate-elementor/ultimate-elementor.php' => [
737
+ 'icon' => $images_url . 'plugin-uae.png',
738
+ 'type' => 'plugin',
739
+ 'name' => esc_html__( 'Ultimate Addons for Elementor', 'header-footer-elementor' ),
740
+ 'desc' => esc_html__( 'It’s a collection of 40+ unique, creative, and optimized Elementor widgets with 100+ readymade templates. Trusted by more than 600+ K web professionals. It’s a #1 toolkit for Elementor Page Builder.', 'header-footer-elementor' ),
741
+ 'wporg' => '',
742
+ 'url' => 'https://ultimateelementor.com/',
743
+ 'siteurl' => 'https://ultimateelementor.com/',
744
+ 'pro' => true,
745
+ 'slug' => 'ultimate-elementor',
746
+ ],
747
+ ];
748
+ }
749
+
750
+ /**
751
+ * Determine if the plugin/addon installations are allowed.
752
+ *
753
+ * @since 1.6.0
754
+ * @param string $type defines addon type.
755
+ * @return bool
756
+ */
757
+ public function hfe_can_install( $type ) {
758
+
759
+ if ( ! in_array( $type, [ 'plugin', 'theme' ], true ) ) {
760
+ return false;
761
+ }
762
+
763
+ // Determine whether file modifications are allowed.
764
+ if ( ! wp_is_file_mod_allowed( 'hfe_can_install' ) ) {
765
+ return false;
766
+ }
767
+
768
+ if ( 'theme' === $type ) {
769
+ if ( ! current_user_can( 'install_themes' ) ) {
770
+ return false;
771
+ }
772
+
773
+ return true;
774
+
775
+ } elseif ( 'plugin' === $type ) {
776
+ if ( ! current_user_can( 'install_plugins' ) ) {
777
+ return false;
778
+ }
779
+
780
+ return true;
781
+ }
782
+
783
+ return false;
784
+ }
785
+
786
+ /**
787
+ * Add settings link to the Plugins page.
788
+ *
789
+ * @since 1.6.0
790
+ *
791
+ * @param array $links Plugin row links.
792
+ *
793
+ * @return array $links
794
+ */
795
+ public function settings_link( $links ) {
796
+
797
+ $custom['settings'] = sprintf(
798
+ '<a href="%s" aria-label="%s">%s</a>',
799
+ esc_url(
800
+ add_query_arg(
801
+ [
802
+ 'post_type' => 'elementor-hf',
803
+ ],
804
+ admin_url( 'edit.php' )
805
+ )
806
+ ),
807
+ esc_attr__( 'Go to HFE Settings page', 'header-footer-elementor' ),
808
+ esc_html__( 'Settings', 'header-footer-elementor' )
809
+ );
810
+
811
+ return array_merge( $custom, (array) $links );
812
+ }
813
+
814
+ }
815
+
816
+ new HFE_Settings_Page();
inc/js/frontend.js CHANGED
@@ -67,10 +67,22 @@
67
  var last_item = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'last-item' );
68
  var last_item_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'last-item' );
69
 
 
 
 
 
 
 
 
 
 
 
70
  $( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
71
 
72
  _toggleClick( id );
73
 
 
 
74
  if( 'horizontal' !== layout ){
75
 
76
  _eventClick( id );
@@ -233,6 +245,26 @@
233
  });
234
  };
235
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
236
  function _openMenu( id ) {
237
 
238
  var flyout_content = $( '#hfe-flyout-content-id-' + id );
@@ -363,18 +395,18 @@
363
  }
364
 
365
  $this.removeClass( 'sub-menu-active' );
366
- $this.next().removeClass( 'sub-menu-open' );
367
- $this.next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
368
- $this.next().css( { 'transition': 'none'} );
369
  } else{
370
 
371
  $this.find( 'a' ).attr( 'aria-expanded', 'false' );
372
 
373
  $this.removeClass( 'sub-menu-active' );
374
- $this.next().removeClass( 'sub-menu-open' );
375
- $this.next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
376
- $this.next().css( { 'transition': 'none'} );
377
-
378
  if ( 'horizontal' !== layout ){
379
 
380
  $this.next().css( 'position', 'relative' );
@@ -411,9 +443,9 @@
411
  }
412
 
413
  $this.addClass( 'sub-menu-active' );
414
- $this.next().addClass( 'sub-menu-open' );
415
- $this.next().css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
416
- $this.next().css( { 'transition': '0.3s ease'} );
417
  }
418
  }
419
  });
@@ -603,6 +635,42 @@
603
  } );
604
  }
605
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
606
  $( window ).on( 'elementor/frontend/init', function () {
607
 
608
  elementorFrontend.hooks.addAction( 'frontend/element_ready/navigation-menu.default', WidgethfeNavMenuHandler );
67
  var last_item = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'last-item' );
68
  var last_item_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'last-item' );
69
 
70
+ var menu_items_links = $( '.elementor-element-' + id + ' .hfe-nav-menu nav li a' );
71
+ var menu_items_links_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper li a' );
72
+ if (menu_items_links.length > 0) {
73
+ _handle_current_menu_item_class( menu_items_links );
74
+ }
75
+
76
+ if (menu_items_links_flyout.length > 0) {
77
+ _handle_current_menu_item_class( menu_items_links_flyout );
78
+ }
79
+
80
  $( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
81
 
82
  _toggleClick( id );
83
 
84
+ _handleSinglePageMenu( id, layout );
85
+
86
  if( 'horizontal' !== layout ){
87
 
88
  _eventClick( id );
245
  });
246
  };
247
 
248
+ function _handle_current_menu_item_class( layout_links ) {
249
+ layout_links.each(
250
+ function () {
251
+ var $this = $( this );
252
+ if ($this.is( '[href*="#"]' )) {
253
+ var menu_item_parent = $this.parent();
254
+ menu_item_parent.removeClass( 'current-menu-item current-menu-ancestor' );
255
+ $this.click(
256
+ function () {
257
+ var current_index = menu_item_parent.index(),
258
+ parent_element = $this.closest( 'ul' );
259
+ parent_element.find( 'li' ).not( ':eq(' + current_index + ')' ).removeClass( 'current-menu-item current-menu-ancestor' );
260
+ menu_item_parent.addClass( 'current-menu-item current-menu-ancestor' );
261
+ }
262
+ )
263
+ }
264
+ }
265
+ );
266
+ }
267
+
268
  function _openMenu( id ) {
269
 
270
  var flyout_content = $( '#hfe-flyout-content-id-' + id );
395
  }
396
 
397
  $this.removeClass( 'sub-menu-active' );
398
+ $this.nextAll('.sub-menu').removeClass( 'sub-menu-open' );
399
+ $this.nextAll('.sub-menu').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
400
+ $this.nextAll('.sub-menu').css( { 'transition': 'none'} );
401
  } else{
402
 
403
  $this.find( 'a' ).attr( 'aria-expanded', 'false' );
404
 
405
  $this.removeClass( 'sub-menu-active' );
406
+ $this.nextAll('.sub-menu').removeClass( 'sub-menu-open' );
407
+ $this.nextAll('.sub-menu').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
408
+ $this.nextAll('.sub-menu').css( { 'transition': 'none'} );
409
+
410
  if ( 'horizontal' !== layout ){
411
 
412
  $this.next().css( 'position', 'relative' );
443
  }
444
 
445
  $this.addClass( 'sub-menu-active' );
446
+ $this.nextAll('.sub-menu').addClass( 'sub-menu-open' );
447
+ $this.nextAll('.sub-menu').css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
448
+ $this.nextAll('.sub-menu').css( { 'transition': '0.3s ease'} );
449
  }
450
  }
451
  });
635
  } );
636
  }
637
 
638
+ function _handleSinglePageMenu( id, layout ) {
639
+ $( '.elementor-element-' + id + ' ul.hfe-nav-menu li a' ).on(
640
+ 'click',
641
+ function () {
642
+ var $this = $( this );
643
+ var link = $this.attr( 'href' );
644
+ var linkValue = '';
645
+ if ( link.includes( '#' ) ) {
646
+ var index = link.indexOf( '#' );
647
+ linkValue = link.slice( index + 1 );
648
+ }
649
+ if ( linkValue.length > 0 ) {
650
+ if ( 'expandible' == layout ) {
651
+ $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).trigger( "click" );
652
+ if ($this.hasClass( 'hfe-sub-menu-item' )) {
653
+ $( '.elementor-element-' + id + ' .hfe-menu-toggle' ).trigger( "click" );
654
+ }
655
+ } else {
656
+ if ( window.matchMedia( '(max-width: 1024px)' ).matches && ( 'horizontal' == layout || 'vertical' == layout ) ) {
657
+ $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).trigger( "click" );
658
+ if ($this.hasClass( 'hfe-sub-menu-item' )) {
659
+ $( '.elementor-element-' + id + ' .hfe-menu-toggle' ).trigger( "click" );
660
+ }
661
+ } else {
662
+ if ($this.hasClass( 'hfe-sub-menu-item' )) {
663
+ _closeMenu( id );
664
+ $( '.elementor-element-' + id + ' .hfe-menu-toggle' ).trigger( "click" );
665
+ }
666
+ _closeMenu( id );
667
+ }
668
+ }
669
+ }
670
+ }
671
+ );
672
+ }
673
+
674
  $( window ).on( 'elementor/frontend/init', function () {
675
 
676
  elementorFrontend.hooks.addAction( 'frontend/element_ready/navigation-menu.default', WidgethfeNavMenuHandler );
inc/widgets-css/frontend.css CHANGED
@@ -21,7 +21,9 @@ ul.hfe-nav-menu,
21
  position: relative;
22
  background: inherit;
23
  }
24
-
 
 
25
  div.hfe-nav-menu,
26
  .elementor-widget-hfe-nav-menu .elementor-widget-container {
27
  -js-display: flex;
21
  position: relative;
22
  background: inherit;
23
  }
24
+ .hfe-nav-menu__theme-icon-yes button.sub-menu-toggle {
25
+ display: none;
26
+ }
27
  div.hfe-nav-menu,
28
  .elementor-widget-hfe-nav-menu .elementor-widget-container {
29
  -js-display: flex;
inc/widgets-manager/class-widgets-loader.php CHANGED
@@ -166,7 +166,7 @@ class Widgets_Loader {
166
  * @param object $this_cat class.
167
  */
168
  public function register_widget_category( $this_cat ) {
169
- $category = __( 'Header, Footer & Blocks', 'header-footer-elementor' );
170
 
171
  $this_cat->add_category(
172
  'hfe-widgets',
166
  * @param object $this_cat class.
167
  */
168
  public function register_widget_category( $this_cat ) {
169
+ $category = __( 'Elementor Header & Footer Builder', 'header-footer-elementor' );
170
 
171
  $this_cat->add_category(
172
  'hfe-widgets',
inc/widgets-manager/widgets/class-menu-walker.php CHANGED
@@ -45,6 +45,7 @@ class Menu_Walker extends \Walker_Nav_Menu {
45
  }
46
  $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
47
  $class_names = ' class="' . esc_attr( $class_names ) . $submenu . ' hfe-creative-menu"';
 
48
 
49
  $output .= $indent . '<li id="menu-item-' . $item->ID . '"' . $value . $class_names . '>';
50
 
45
  }
46
  $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) );
47
  $class_names = ' class="' . esc_attr( $class_names ) . $submenu . ' hfe-creative-menu"';
48
+ $value = apply_filters( 'nav_menu_li_values', $value );
49
 
50
  $output .= $indent . '<li id="menu-item-' . $item->ID . '"' . $value . $class_names . '>';
51
 
inc/widgets-manager/widgets/class-navigation-menu.php CHANGED
@@ -210,7 +210,6 @@ class Navigation_Menu extends Widget_Base {
210
  'options' => $menus,
211
  'default' => array_keys( $menus )[0],
212
  'save_default' => true,
213
- 'separator' => 'after',
214
  /* translators: %s Nav menu URL */
215
  'description' => sprintf( __( 'Go to the <a href="%s" target="_blank">Menus screen</a> to manage your menus.', 'header-footer-elementor' ), admin_url( 'nav-menus.php' ) ),
216
  ]
@@ -222,7 +221,6 @@ class Navigation_Menu extends Widget_Base {
222
  'type' => Controls_Manager::RAW_HTML,
223
  /* translators: %s Nav menu URL */
224
  'raw' => sprintf( __( '<strong>There are no menus in your site.</strong><br>Go to the <a href="%s" target="_blank">Menus screen</a> to create one.', 'header-footer-elementor' ), admin_url( 'nav-menus.php?action=edit&menu=0' ) ),
225
- 'separator' => 'after',
226
  'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
227
  ]
228
  );
@@ -231,13 +229,16 @@ class Navigation_Menu extends Widget_Base {
231
  $this->add_control(
232
  'menu_last_item',
233
  [
234
- 'label' => __( 'Last Menu Item', 'header-footer-elementor' ),
235
- 'type' => Controls_Manager::SELECT,
236
- 'options' => [
237
  'none' => __( 'Default', 'header-footer-elementor' ),
238
  'cta' => __( 'Button', 'header-footer-elementor' ),
239
  ],
240
- 'default' => 'none',
 
 
 
241
  ]
242
  );
243
 
@@ -251,9 +252,27 @@ class Navigation_Menu extends Widget_Base {
251
  'return_value' => 'yes',
252
  'default' => 'no',
253
  'render_type' => 'template',
 
254
  ]
255
  );
256
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
  $this->end_controls_section();
258
 
259
  $this->start_controls_section(
@@ -1270,8 +1289,8 @@ class Navigation_Menu extends Widget_Base {
1270
  'name' => 'dropdown_border',
1271
  'selector' => '{{WRAPPER}} nav.hfe-nav-menu__layout-horizontal .sub-menu,
1272
  {{WRAPPER}} nav:not(.hfe-nav-menu__layout-horizontal) .sub-menu.sub-menu-open,
1273
- {{WRAPPER}} nav.hfe-dropdown,
1274
- {{WRAPPER}} nav.hfe-dropdown-expandible',
1275
  ]
1276
  );
1277
 
@@ -1392,7 +1411,7 @@ class Navigation_Menu extends Widget_Base {
1392
  ],
1393
  ],
1394
  'selectors' => [
1395
- '{{WRAPPER}} nav.hfe-nav-menu__layout-horizontal ul.sub-menu, {{WRAPPER}} nav.hfe-nav-menu__layout-expandible.menu-is-active' => 'margin-top: {{SIZE}}px;',
1396
  '{{WRAPPER}} .hfe-dropdown.menu-is-active' => 'margin-top: {{SIZE}}px;',
1397
  ],
1398
  'condition' => [
@@ -1808,7 +1827,7 @@ class Navigation_Menu extends Widget_Base {
1808
  *
1809
  * @since 1.5.2
1810
  * @param string $atts link attributes.
1811
- * @access protected
1812
  */
1813
  public function handle_link_attrs( $atts ) {
1814
 
@@ -1816,6 +1835,19 @@ class Navigation_Menu extends Widget_Base {
1816
  return $atts;
1817
  }
1818
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1819
  /**
1820
  * Get the menu and close icon HTML.
1821
  *
@@ -1889,6 +1921,7 @@ class Navigation_Menu extends Widget_Base {
1889
  $this->add_render_attribute( 'hfe-nav-menu', 'itemtype', 'http://schema.org/SiteNavigationElement' );
1890
 
1891
  add_filter( 'hfe_nav_menu_attrs', [ $this, 'handle_link_attrs' ] );
 
1892
  }
1893
 
1894
  $menu_html = wp_nav_menu( $args );
210
  'options' => $menus,
211
  'default' => array_keys( $menus )[0],
212
  'save_default' => true,
 
213
  /* translators: %s Nav menu URL */
214
  'description' => sprintf( __( 'Go to the <a href="%s" target="_blank">Menus screen</a> to manage your menus.', 'header-footer-elementor' ), admin_url( 'nav-menus.php' ) ),
215
  ]
221
  'type' => Controls_Manager::RAW_HTML,
222
  /* translators: %s Nav menu URL */
223
  'raw' => sprintf( __( '<strong>There are no menus in your site.</strong><br>Go to the <a href="%s" target="_blank">Menus screen</a> to create one.', 'header-footer-elementor' ), admin_url( 'nav-menus.php?action=edit&menu=0' ) ),
 
224
  'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
225
  ]
226
  );
229
  $this->add_control(
230
  'menu_last_item',
231
  [
232
+ 'label' => __( 'Last Menu Item', 'header-footer-elementor' ),
233
+ 'type' => Controls_Manager::SELECT,
234
+ 'options' => [
235
  'none' => __( 'Default', 'header-footer-elementor' ),
236
  'cta' => __( 'Button', 'header-footer-elementor' ),
237
  ],
238
+ 'default' => 'none',
239
+ 'condition' => [
240
+ 'layout!' => 'expandible',
241
+ ],
242
  ]
243
  );
244
 
252
  'return_value' => 'yes',
253
  'default' => 'no',
254
  'render_type' => 'template',
255
+ 'separator' => 'before',
256
  ]
257
  );
258
 
259
+ $current_theme = wp_get_theme();
260
+
261
+ if ( 'Twenty Twenty-One' === $current_theme->get( 'Name' ) ) {
262
+ $this->add_control(
263
+ 'hide_theme_icons',
264
+ [
265
+ 'label' => __( 'Hide + & - Sign', 'header-footer-elementor' ),
266
+ 'type' => Controls_Manager::SWITCHER,
267
+ 'label_on' => __( 'Yes', 'header-footer-elementor' ),
268
+ 'label_off' => __( 'No', 'header-footer-elementor' ),
269
+ 'return_value' => 'yes',
270
+ 'default' => 'no',
271
+ 'prefix_class' => 'hfe-nav-menu__theme-icon-',
272
+ ]
273
+ );
274
+ }
275
+
276
  $this->end_controls_section();
277
 
278
  $this->start_controls_section(
1289
  'name' => 'dropdown_border',
1290
  'selector' => '{{WRAPPER}} nav.hfe-nav-menu__layout-horizontal .sub-menu,
1291
  {{WRAPPER}} nav:not(.hfe-nav-menu__layout-horizontal) .sub-menu.sub-menu-open,
1292
+ {{WRAPPER}} nav.hfe-dropdown .hfe-nav-menu,
1293
+ {{WRAPPER}} nav.hfe-dropdown-expandible .hfe-nav-menu',
1294
  ]
1295
  );
1296
 
1411
  ],
1412
  ],
1413
  'selectors' => [
1414
+ '{{WRAPPER}} nav.hfe-nav-menu__layout-horizontal:not(.hfe-dropdown) ul.sub-menu, {{WRAPPER}} nav.hfe-nav-menu__layout-expandible.menu-is-active, {{WRAPPER}} nav.hfe-nav-menu__layout-vertical:not(.hfe-dropdown) ul.sub-menu' => 'margin-top: {{SIZE}}px;',
1415
  '{{WRAPPER}} .hfe-dropdown.menu-is-active' => 'margin-top: {{SIZE}}px;',
1416
  ],
1417
  'condition' => [
1827
  *
1828
  * @since 1.5.2
1829
  * @param string $atts link attributes.
1830
+ * @access public
1831
  */
1832
  public function handle_link_attrs( $atts ) {
1833
 
1835
  return $atts;
1836
  }
1837
 
1838
+ /**
1839
+ * Add itemprop to the li tag of Navigation Schema.
1840
+ *
1841
+ * @since 1.6.0
1842
+ * @param string $value link attributes.
1843
+ * @access public
1844
+ */
1845
+ public function handle_li_values( $value ) {
1846
+
1847
+ $value .= ' itemprop="name"';
1848
+ return $value;
1849
+ }
1850
+
1851
  /**
1852
  * Get the menu and close icon HTML.
1853
  *
1921
  $this->add_render_attribute( 'hfe-nav-menu', 'itemtype', 'http://schema.org/SiteNavigationElement' );
1922
 
1923
  add_filter( 'hfe_nav_menu_attrs', [ $this, 'handle_link_attrs' ] );
1924
+ add_filter( 'nav_menu_li_values', [ $this, 'handle_li_values' ] );
1925
  }
1926
 
1927
  $menu_html = wp_nav_menu( $args );
languages/header-footer-elementor.pot CHANGED
@@ -1,11 +1,11 @@
1
  # Copyright (C) 2021 Brainstorm Force, Nikhil Chavan
2
- # This file is distributed under the same license as the Elementor - Header, Footer & Blocks package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Elementor - Header, Footer & Blocks 1.5.9\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/header-footer-elementor\n"
8
- "POT-Creation-Date: 2021-04-19 09:30:20+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -66,204 +66,525 @@ msgstr ""
66
  msgid "Learn More."
67
  msgstr ""
68
 
69
- #: admin/class-hfe-admin.php:135 admin/class-hfe-admin.php:368
70
- msgid "Display Rules"
71
  msgstr ""
72
 
73
- #: admin/class-hfe-admin.php:136
74
- msgid "Date"
75
  msgstr ""
76
 
77
- #: admin/class-hfe-admin.php:219 admin/class-hfe-admin.php:221
78
- msgid "Elementor - Header Footer & Blocks Template"
79
  msgstr ""
80
 
81
- #: admin/class-hfe-admin.php:220 admin/class-hfe-admin.php:222
82
- msgid "Elementor Header Footer & Blocks"
83
  msgstr ""
84
 
85
- #: admin/class-hfe-admin.php:223
86
- msgid "Add New"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  msgstr ""
88
 
89
  #: admin/class-hfe-admin.php:224
90
- msgid "Add New Header, Footer or Block"
91
  msgstr ""
92
 
93
  #: admin/class-hfe-admin.php:225
94
- msgid "New Header Footer & Blocks Template"
95
  msgstr ""
96
 
97
  #: admin/class-hfe-admin.php:226
98
- msgid "Edit Header Footer & Blocks Template"
99
  msgstr ""
100
 
101
  #: admin/class-hfe-admin.php:227
102
- msgid "View Header Footer & Blocks Template"
103
  msgstr ""
104
 
105
  #: admin/class-hfe-admin.php:228
106
- msgid "All Elementor Header Footer & Blocks"
107
  msgstr ""
108
 
109
- #: admin/class-hfe-admin.php:229
110
- msgid "Search Header Footer & Blocks Templates"
111
  msgstr ""
112
 
113
  #: admin/class-hfe-admin.php:230
114
- msgid "Parent Header Footer & Blocks Templates:"
115
  msgstr ""
116
 
117
  #: admin/class-hfe-admin.php:231
118
- msgid "No Header Footer & Blocks Templates found."
119
  msgstr ""
120
 
121
  #: admin/class-hfe-admin.php:232
122
- msgid "No Header Footer & Blocks Templates found in Trash."
123
  msgstr ""
124
 
125
- #: admin/class-hfe-admin.php:261 admin/class-hfe-admin.php:262
126
- msgid "Header Footer & Blocks"
127
  msgstr ""
128
 
129
- #: admin/class-hfe-admin.php:274
130
- msgid "Elementor - Header Footer & Block Options"
131
  msgstr ""
132
 
133
- #: admin/class-hfe-admin.php:302
134
  msgid "Type of Template"
135
  msgstr ""
136
 
137
- #: admin/class-hfe-admin.php:306
138
  msgid "Select Option"
139
  msgstr ""
140
 
141
- #: admin/class-hfe-admin.php:307
142
  msgid "Header"
143
  msgstr ""
144
 
145
- #: admin/class-hfe-admin.php:308
146
  msgid "Before Footer"
147
  msgstr ""
148
 
149
- #: admin/class-hfe-admin.php:309
150
  msgid "Footer"
151
  msgstr ""
152
 
153
- #: admin/class-hfe-admin.php:310
154
  msgid "Custom Block"
155
  msgstr ""
156
 
157
- #: admin/class-hfe-admin.php:318 admin/class-hfe-admin.php:563
158
  msgid "Shortcode"
159
  msgstr ""
160
 
161
- #: admin/class-hfe-admin.php:319
162
  msgid ""
163
  "Copy this shortcode and paste it into your post, page, or text widget "
164
  "content."
165
  msgstr ""
166
 
167
- #: admin/class-hfe-admin.php:331
168
  msgid "Enable Layout for Elementor Canvas Template?"
169
  msgstr ""
170
 
171
- #: admin/class-hfe-admin.php:333
172
  msgid ""
173
  "Enabling this option will display this layout on pages using Elementor "
174
  "Canvas Template."
175
  msgstr ""
176
 
177
- #: admin/class-hfe-admin.php:359
178
  msgid "Display On"
179
  msgstr ""
180
 
181
- #: admin/class-hfe-admin.php:361
182
  msgid "Add locations for where this template should appear."
183
  msgstr ""
184
 
185
- #: admin/class-hfe-admin.php:372
186
  msgid "Add Display Rule"
187
  msgstr ""
188
 
189
- #: admin/class-hfe-admin.php:381
190
  msgid "Do Not Display On"
191
  msgstr ""
192
 
193
- #: admin/class-hfe-admin.php:383
194
  msgid "Add locations for where this template should not appear."
195
  msgstr ""
196
 
197
- #: admin/class-hfe-admin.php:390
198
  msgid "Exclude On"
199
  msgstr ""
200
 
201
- #: admin/class-hfe-admin.php:393
202
  #: inc/lib/target-rule/class-astra-target-rules-fields.php:846
203
  msgid "Add Exclusion Rule"
204
  msgstr ""
205
 
206
- #: admin/class-hfe-admin.php:403
207
  msgid "User Roles"
208
  msgstr ""
209
 
210
- #: admin/class-hfe-admin.php:404
211
  msgid "Display custom template based on user role."
212
  msgstr ""
213
 
214
- #: admin/class-hfe-admin.php:411
215
  msgid "Users"
216
  msgstr ""
217
 
218
- #: admin/class-hfe-admin.php:414
219
  msgid "Add User Rule"
220
  msgstr ""
221
 
222
- #: admin/class-hfe-admin.php:494
223
  #. Translators: Post title, Template Location
224
  msgid "Template %1$s is already assigned to the location %2$s"
225
  msgstr ""
226
 
227
- #: inc/class-header-footer-elementor.php:163
228
  msgid ""
229
- "Hello! Seems like you have used Elementor - Header, Footer & Blocks to "
230
- "build this website — Thanks a ton!"
231
  msgstr ""
232
 
233
- #: inc/class-header-footer-elementor.php:164
234
  msgid ""
235
  "Could you please do us a BIG favor and give it a 5-star rating on "
236
  "WordPress? This would boost our motivation and help other users make a "
237
- "comfortable decision while choosing the Elementor - Header, Footer & Blocks."
238
  msgstr ""
239
 
240
- #: inc/class-header-footer-elementor.php:166
241
  msgid "Ok, you deserve it"
242
  msgstr ""
243
 
244
- #: inc/class-header-footer-elementor.php:168
245
  msgid "Nope, maybe later"
246
  msgstr ""
247
 
248
- #: inc/class-header-footer-elementor.php:169
249
  msgid "I already did"
250
  msgstr ""
251
 
252
- #: inc/class-header-footer-elementor.php:204
253
  #. translators: %s: html tags
254
  msgid ""
255
- "The %1$sElementor - Header Footer and Blocks%2$s plugin requires "
256
  "%1$sElementor%2$s plugin installed & activated."
257
  msgstr ""
258
 
259
- #: inc/class-header-footer-elementor.php:211
260
  msgid "Activate Elementor"
261
  msgstr ""
262
 
263
- #: inc/class-header-footer-elementor.php:216
 
264
  msgid "Install Elementor"
265
  msgstr ""
266
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
267
  #: inc/lib/notices/class-astra-notices.php:120
268
  msgid "WordPress Nonce not validated."
269
  msgstr ""
@@ -419,10 +740,6 @@ msgstr ""
419
  msgid "The same display setting is already exist in %s post/s."
420
  msgstr ""
421
 
422
- #: inc/widgets-manager/class-widgets-loader.php:169
423
- msgid "Header, Footer & Blocks"
424
- msgstr ""
425
-
426
  #: inc/widgets-manager/class-widgets-loader.php:234
427
  #: inc/widgets-manager/widgets/class-cart.php:51
428
  #: inc/widgets-manager/widgets/class-cart.php:661
@@ -439,8 +756,8 @@ msgid "Type"
439
  msgstr ""
440
 
441
  #: inc/widgets-manager/widgets/class-cart.php:130
442
- #: inc/widgets-manager/widgets/class-navigation-menu.php:237
443
- #: inc/widgets-manager/widgets/class-navigation-menu.php:441
444
  #: inc/widgets-manager/widgets/class-page-title.php:192
445
  #: inc/widgets-manager/widgets/class-page-title.php:241
446
  #: inc/widgets-manager/widgets/class-site-logo.php:232
@@ -455,7 +772,7 @@ msgid "Custom"
455
  msgstr ""
456
 
457
  #: inc/widgets-manager/widgets/class-cart.php:139
458
- #: inc/widgets-manager/widgets/class-navigation-menu.php:571
459
  #: inc/widgets-manager/widgets/class-page-title.php:364
460
  #: inc/widgets-manager/widgets/class-search-button.php:145
461
  #: inc/widgets-manager/widgets/class-search-button.php:767
@@ -483,9 +800,9 @@ msgid "Items Count"
483
  msgstr ""
484
 
485
  #: inc/widgets-manager/widgets/class-cart.php:160
486
- #: inc/widgets-manager/widgets/class-navigation-menu.php:487
487
- #: inc/widgets-manager/widgets/class-navigation-menu.php:819
488
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1421
489
  #: inc/widgets-manager/widgets/class-page-title.php:193
490
  #: inc/widgets-manager/widgets/class-retina.php:196
491
  #: inc/widgets-manager/widgets/class-retina.php:227
@@ -507,8 +824,9 @@ msgstr ""
507
 
508
  #: inc/widgets-manager/widgets/class-cart.php:176
509
  #: inc/widgets-manager/widgets/class-cart.php:192
510
- #: inc/widgets-manager/widgets/class-navigation-menu.php:249
511
- #: inc/widgets-manager/widgets/class-navigation-menu.php:539
 
512
  #: inc/widgets-manager/widgets/class-site-logo.php:137
513
  #: inc/widgets-manager/widgets/class-site-logo.php:202
514
  #: inc/widgets-manager/widgets/class-site-logo.php:264
@@ -517,8 +835,9 @@ msgstr ""
517
 
518
  #: inc/widgets-manager/widgets/class-cart.php:177
519
  #: inc/widgets-manager/widgets/class-cart.php:193
520
- #: inc/widgets-manager/widgets/class-navigation-menu.php:250
521
- #: inc/widgets-manager/widgets/class-navigation-menu.php:540
 
522
  #: inc/widgets-manager/widgets/class-site-logo.php:138
523
  #: inc/widgets-manager/widgets/class-site-logo.php:201
524
  #: inc/widgets-manager/widgets/class-site-logo.php:265
@@ -535,8 +854,8 @@ msgstr ""
535
 
536
  #: inc/widgets-manager/widgets/class-cart.php:207
537
  #: inc/widgets-manager/widgets/class-copyright.php:142
538
- #: inc/widgets-manager/widgets/class-navigation-menu.php:284
539
- #: inc/widgets-manager/widgets/class-navigation-menu.php:500
540
  #: inc/widgets-manager/widgets/class-page-title.php:254
541
  #: inc/widgets-manager/widgets/class-retina.php:167
542
  #: inc/widgets-manager/widgets/class-site-logo.php:172
@@ -547,11 +866,11 @@ msgstr ""
547
 
548
  #: inc/widgets-manager/widgets/class-cart.php:211
549
  #: inc/widgets-manager/widgets/class-copyright.php:146
550
- #: inc/widgets-manager/widgets/class-navigation-menu.php:288
551
- #: inc/widgets-manager/widgets/class-navigation-menu.php:319
552
- #: inc/widgets-manager/widgets/class-navigation-menu.php:354
553
- #: inc/widgets-manager/widgets/class-navigation-menu.php:390
554
- #: inc/widgets-manager/widgets/class-navigation-menu.php:504
555
  #: inc/widgets-manager/widgets/class-page-title.php:258
556
  #: inc/widgets-manager/widgets/class-retina.php:171
557
  #: inc/widgets-manager/widgets/class-site-logo.php:176
@@ -562,10 +881,10 @@ msgstr ""
562
 
563
  #: inc/widgets-manager/widgets/class-cart.php:215
564
  #: inc/widgets-manager/widgets/class-copyright.php:150
565
- #: inc/widgets-manager/widgets/class-navigation-menu.php:292
566
- #: inc/widgets-manager/widgets/class-navigation-menu.php:358
567
- #: inc/widgets-manager/widgets/class-navigation-menu.php:394
568
- #: inc/widgets-manager/widgets/class-navigation-menu.php:508
569
  #: inc/widgets-manager/widgets/class-page-title.php:262
570
  #: inc/widgets-manager/widgets/class-retina.php:175
571
  #: inc/widgets-manager/widgets/class-site-logo.php:180
@@ -576,11 +895,11 @@ msgstr ""
576
 
577
  #: inc/widgets-manager/widgets/class-cart.php:219
578
  #: inc/widgets-manager/widgets/class-copyright.php:154
579
- #: inc/widgets-manager/widgets/class-navigation-menu.php:296
580
- #: inc/widgets-manager/widgets/class-navigation-menu.php:320
581
- #: inc/widgets-manager/widgets/class-navigation-menu.php:362
582
- #: inc/widgets-manager/widgets/class-navigation-menu.php:398
583
- #: inc/widgets-manager/widgets/class-navigation-menu.php:512
584
  #: inc/widgets-manager/widgets/class-page-title.php:266
585
  #: inc/widgets-manager/widgets/class-retina.php:179
586
  #: inc/widgets-manager/widgets/class-site-logo.php:184
@@ -598,8 +917,8 @@ msgid "Size"
598
  msgstr ""
599
 
600
  #: inc/widgets-manager/widgets/class-cart.php:282
601
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1454
602
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1576
603
  #: inc/widgets-manager/widgets/class-retina.php:359
604
  #: inc/widgets-manager/widgets/class-search-button.php:356
605
  #: inc/widgets-manager/widgets/class-search-button.php:589
@@ -608,9 +927,9 @@ msgid "Border Width"
608
  msgstr ""
609
 
610
  #: inc/widgets-manager/widgets/class-cart.php:301
611
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1281
612
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1592
613
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1724
614
  #: inc/widgets-manager/widgets/class-retina.php:399
615
  #: inc/widgets-manager/widgets/class-search-button.php:381
616
  #: inc/widgets-manager/widgets/class-search-button.php:612
@@ -619,7 +938,7 @@ msgid "Border Radius"
619
  msgstr ""
620
 
621
  #: inc/widgets-manager/widgets/class-cart.php:321
622
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1665
623
  #: inc/widgets-manager/widgets/class-retina.php:584
624
  #: inc/widgets-manager/widgets/class-site-logo.php:626
625
  msgid "Padding"
@@ -627,10 +946,10 @@ msgstr ""
627
 
628
  #: inc/widgets-manager/widgets/class-cart.php:338
629
  #: inc/widgets-manager/widgets/class-cart.php:536
630
- #: inc/widgets-manager/widgets/class-navigation-menu.php:920
631
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1123
632
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1491
633
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1679
634
  #: inc/widgets-manager/widgets/class-page-title.php:339
635
  #: inc/widgets-manager/widgets/class-retina.php:424
636
  #: inc/widgets-manager/widgets/class-search-button.php:241
@@ -647,14 +966,14 @@ msgstr ""
647
  #: inc/widgets-manager/widgets/class-cart.php:543
648
  #: inc/widgets-manager/widgets/class-cart.php:580
649
  #: inc/widgets-manager/widgets/class-copyright.php:167
650
- #: inc/widgets-manager/widgets/class-navigation-menu.php:927
651
- #: inc/widgets-manager/widgets/class-navigation-menu.php:966
652
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1034
653
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1130
654
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1173
655
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1216
656
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1686
657
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1753
658
  #: inc/widgets-manager/widgets/class-retina.php:539
659
  #: inc/widgets-manager/widgets/class-search-button.php:251
660
  #: inc/widgets-manager/widgets/class-search-button.php:418
@@ -677,17 +996,17 @@ msgstr ""
677
  #: inc/widgets-manager/widgets/class-cart.php:426
678
  #: inc/widgets-manager/widgets/class-cart.php:557
679
  #: inc/widgets-manager/widgets/class-cart.php:594
680
- #: inc/widgets-manager/widgets/class-navigation-menu.php:800
681
- #: inc/widgets-manager/widgets/class-navigation-menu.php:942
682
- #: inc/widgets-manager/widgets/class-navigation-menu.php:984
683
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1047
684
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1147
685
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1190
686
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1233
687
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1510
688
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1543
689
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1699
690
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1765
691
  #: inc/widgets-manager/widgets/class-retina.php:554
692
  #: inc/widgets-manager/widgets/class-search-button.php:286
693
  #: inc/widgets-manager/widgets/class-search-button.php:450
@@ -701,7 +1020,7 @@ msgstr ""
701
 
702
  #: inc/widgets-manager/widgets/class-cart.php:381
703
  #: inc/widgets-manager/widgets/class-cart.php:437
704
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1437
705
  #: inc/widgets-manager/widgets/class-retina.php:381
706
  #: inc/widgets-manager/widgets/class-search-button.php:335
707
  #: inc/widgets-manager/widgets/class-search-button.php:483
@@ -712,10 +1031,10 @@ msgstr ""
712
 
713
  #: inc/widgets-manager/widgets/class-cart.php:394
714
  #: inc/widgets-manager/widgets/class-cart.php:573
715
- #: inc/widgets-manager/widgets/class-navigation-menu.php:959
716
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1166
717
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1523
718
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1746
719
  #: inc/widgets-manager/widgets/class-retina.php:459
720
  #: inc/widgets-manager/widgets/class-search-button.php:684
721
  #: inc/widgets-manager/widgets/class-search-button.php:800
@@ -725,7 +1044,7 @@ msgid "Hover"
725
  msgstr ""
726
 
727
  #: inc/widgets-manager/widgets/class-cart.php:451
728
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1558
729
  #: inc/widgets-manager/widgets/class-search-button.php:717
730
  #: inc/widgets-manager/widgets/class-search-button.php:822
731
  msgid "Icon Size"
@@ -786,265 +1105,264 @@ msgstr ""
786
  msgid "Menu"
787
  msgstr ""
788
 
789
- #: inc/widgets-manager/widgets/class-navigation-menu.php:215
790
  #. translators: %s Nav menu URL
791
  msgid ""
792
  "Go to the <a href=\"%s\" target=\"_blank\">Menus screen</a> to manage your "
793
  "menus."
794
  msgstr ""
795
 
796
- #: inc/widgets-manager/widgets/class-navigation-menu.php:224
797
  #. translators: %s Nav menu URL
798
  msgid ""
799
  "<strong>There are no menus in your site.</strong><br>Go to the <a "
800
  "href=\"%s\" target=\"_blank\">Menus screen</a> to create one."
801
  msgstr ""
802
 
803
- #: inc/widgets-manager/widgets/class-navigation-menu.php:234
804
  msgid "Last Menu Item"
805
  msgstr ""
806
 
807
- #: inc/widgets-manager/widgets/class-navigation-menu.php:238
808
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1643
809
  #: inc/widgets-manager/widgets/class-search-button.php:638
810
  msgid "Button"
811
  msgstr ""
812
 
813
- #: inc/widgets-manager/widgets/class-navigation-menu.php:247
814
  msgid "Enable Schema Support"
815
  msgstr ""
816
 
817
- #: inc/widgets-manager/widgets/class-navigation-menu.php:262
818
- #: inc/widgets-manager/widgets/class-navigation-menu.php:269
 
 
 
 
819
  #: inc/widgets-manager/widgets/class-search-button.php:140
820
  msgid "Layout"
821
  msgstr ""
822
 
823
- #: inc/widgets-manager/widgets/class-navigation-menu.php:273
824
  msgid "Horizontal"
825
  msgstr ""
826
 
827
- #: inc/widgets-manager/widgets/class-navigation-menu.php:274
828
  msgid "Vertical"
829
  msgstr ""
830
 
831
- #: inc/widgets-manager/widgets/class-navigation-menu.php:275
832
  msgid "Expanded"
833
  msgstr ""
834
 
835
- #: inc/widgets-manager/widgets/class-navigation-menu.php:276
836
  msgid "Flyout"
837
  msgstr ""
838
 
839
- #: inc/widgets-manager/widgets/class-navigation-menu.php:300
840
- #: inc/widgets-manager/widgets/class-navigation-menu.php:402
841
  #: inc/widgets-manager/widgets/class-site-tagline.php:194
842
  #: inc/widgets-manager/widgets/class-site-title.php:261
843
  msgid "Justify"
844
  msgstr ""
845
 
846
- #: inc/widgets-manager/widgets/class-navigation-menu.php:315
847
  msgid "Flyout Orientation"
848
  msgstr ""
849
 
850
- #: inc/widgets-manager/widgets/class-navigation-menu.php:331
851
  msgid "Appear Effect"
852
  msgstr ""
853
 
854
- #: inc/widgets-manager/widgets/class-navigation-menu.php:336
855
  msgid "Slide"
856
  msgstr ""
857
 
858
- #: inc/widgets-manager/widgets/class-navigation-menu.php:337
859
  msgid "Push"
860
  msgstr ""
861
 
862
- #: inc/widgets-manager/widgets/class-navigation-menu.php:349
863
  msgid "Hamburger Align"
864
  msgstr ""
865
 
866
- #: inc/widgets-manager/widgets/class-navigation-menu.php:386
867
  msgid "Menu Items Align"
868
  msgstr ""
869
 
870
- #: inc/widgets-manager/widgets/class-navigation-menu.php:422
871
  msgid "Submenu Icon"
872
  msgstr ""
873
 
874
- #: inc/widgets-manager/widgets/class-navigation-menu.php:426
875
  msgid "Arrows"
876
  msgstr ""
877
 
878
- #: inc/widgets-manager/widgets/class-navigation-menu.php:427
879
  msgid "Plus Sign"
880
  msgstr ""
881
 
882
- #: inc/widgets-manager/widgets/class-navigation-menu.php:428
883
  msgid "Classic"
884
  msgstr ""
885
 
886
- #: inc/widgets-manager/widgets/class-navigation-menu.php:437
887
  msgid "Submenu Animation"
888
  msgstr ""
889
 
890
- #: inc/widgets-manager/widgets/class-navigation-menu.php:442
891
  msgid "Slide Up"
892
  msgstr ""
893
 
894
- #: inc/widgets-manager/widgets/class-navigation-menu.php:454
895
  msgid "Action On Menu Click"
896
  msgstr ""
897
 
898
- #: inc/widgets-manager/widgets/class-navigation-menu.php:457
899
  msgid "For Horizontal layout, this will affect on the selected breakpoint"
900
  msgstr ""
901
 
902
- #: inc/widgets-manager/widgets/class-navigation-menu.php:459
903
  msgid "Open Submenu"
904
  msgstr ""
905
 
906
- #: inc/widgets-manager/widgets/class-navigation-menu.php:460
907
  msgid "Redirect To Self Link"
908
  msgstr ""
909
 
910
- #: inc/widgets-manager/widgets/class-navigation-menu.php:470
911
  msgid "Responsive"
912
  msgstr ""
913
 
914
- #: inc/widgets-manager/widgets/class-navigation-menu.php:481
915
  msgid "Breakpoint"
916
  msgstr ""
917
 
918
- #: inc/widgets-manager/widgets/class-navigation-menu.php:485
919
  msgid "Mobile (768px >)"
920
  msgstr ""
921
 
922
- #: inc/widgets-manager/widgets/class-navigation-menu.php:486
923
  msgid "Tablet (1025px >)"
924
  msgstr ""
925
 
926
- #: inc/widgets-manager/widgets/class-navigation-menu.php:517
927
  msgid "This is the alignement of menu icon on selected responsive breakpoints."
928
  msgstr ""
929
 
930
- #: inc/widgets-manager/widgets/class-navigation-menu.php:536
931
  msgid "Full Width"
932
  msgstr ""
933
 
934
- #: inc/widgets-manager/widgets/class-navigation-menu.php:537
935
  msgid "Enable this option to stretch the Sub Menu to Full Width."
936
  msgstr ""
937
 
938
- #: inc/widgets-manager/widgets/class-navigation-menu.php:555
939
  msgid "Menu Icon"
940
  msgstr ""
941
 
942
- #: inc/widgets-manager/widgets/class-navigation-menu.php:586
943
- #: inc/widgets-manager/widgets/class-navigation-menu.php:602
944
  #: inc/widgets-manager/widgets/class-search-button.php:846
945
  msgid "Close Icon"
946
  msgstr ""
947
 
948
- #: inc/widgets-manager/widgets/class-navigation-menu.php:627
949
  msgid "Main Menu"
950
  msgstr ""
951
 
952
- #: inc/widgets-manager/widgets/class-navigation-menu.php:638
953
  msgid "Flyout Box Width"
954
  msgstr ""
955
 
956
- #: inc/widgets-manager/widgets/class-navigation-menu.php:665
957
  msgid "Flyout Box Padding"
958
  msgstr ""
959
 
960
- #: inc/widgets-manager/widgets/class-navigation-menu.php:688
961
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1339
962
  msgid "Horizontal Padding"
963
  msgstr ""
964
 
965
- #: inc/widgets-manager/widgets/class-navigation-menu.php:713
966
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1361
967
  msgid "Vertical Padding"
968
  msgstr ""
969
 
970
- #: inc/widgets-manager/widgets/class-navigation-menu.php:734
971
  msgid "Space Between"
972
  msgstr ""
973
 
974
- #: inc/widgets-manager/widgets/class-navigation-menu.php:760
975
  msgid "Row Spacing"
976
  msgstr ""
977
 
978
- #: inc/widgets-manager/widgets/class-navigation-menu.php:780
979
  msgid "Menu Item Top Spacing"
980
  msgstr ""
981
 
982
- #: inc/widgets-manager/widgets/class-navigation-menu.php:815
983
  msgid "Link Hover Effect"
984
  msgstr ""
985
 
986
- #: inc/widgets-manager/widgets/class-navigation-menu.php:820
987
  msgid "Underline"
988
  msgstr ""
989
 
990
- #: inc/widgets-manager/widgets/class-navigation-menu.php:821
991
  msgid "Overline"
992
  msgstr ""
993
 
994
- #: inc/widgets-manager/widgets/class-navigation-menu.php:822
995
  msgid "Double Line"
996
  msgstr ""
997
 
998
- #: inc/widgets-manager/widgets/class-navigation-menu.php:823
999
  msgid "Framed"
1000
  msgstr ""
1001
 
1002
- #: inc/widgets-manager/widgets/class-navigation-menu.php:824
1003
  msgid "Text"
1004
  msgstr ""
1005
 
1006
- #: inc/widgets-manager/widgets/class-navigation-menu.php:835
1007
- #: inc/widgets-manager/widgets/class-navigation-menu.php:877
1008
  msgid "Animation"
1009
  msgstr ""
1010
 
1011
- #: inc/widgets-manager/widgets/class-navigation-menu.php:856
1012
  msgid "Frame Animation"
1013
  msgstr ""
1014
 
1015
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1002
1016
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1063
1017
  msgid "Link Hover Effect Color"
1018
  msgstr ""
1019
 
1020
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1027
1021
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1209
1022
- msgid "Active"
1023
- msgstr ""
1024
-
1025
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1098
1026
  msgid "Dropdown"
1027
  msgstr ""
1028
 
1029
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1106
1030
  msgid ""
1031
  "<b>Note:</b> On desktop, below style options will apply to the submenu. On "
1032
  "mobile, this will apply to the entire menu."
1033
  msgstr ""
1034
 
1035
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1315
1036
  msgid "Dropdown Width (px)"
1037
  msgstr ""
1038
 
1039
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1386
1040
  msgid "Top Distance"
1041
  msgstr ""
1042
 
1043
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1407
1044
  msgid "Divider"
1045
  msgstr ""
1046
 
1047
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1416
1048
  #: inc/widgets-manager/widgets/class-retina.php:340
1049
  #: inc/widgets-manager/widgets/class-search-button.php:312
1050
  #: inc/widgets-manager/widgets/class-search-button.php:550
@@ -1052,7 +1370,7 @@ msgstr ""
1052
  msgid "Border Style"
1053
  msgstr ""
1054
 
1055
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1422
1056
  #: inc/widgets-manager/widgets/class-retina.php:346
1057
  #: inc/widgets-manager/widgets/class-search-button.php:318
1058
  #: inc/widgets-manager/widgets/class-search-button.php:556
@@ -1060,7 +1378,7 @@ msgstr ""
1060
  msgid "Solid"
1061
  msgstr ""
1062
 
1063
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1423
1064
  #: inc/widgets-manager/widgets/class-retina.php:347
1065
  #: inc/widgets-manager/widgets/class-search-button.php:319
1066
  #: inc/widgets-manager/widgets/class-search-button.php:557
@@ -1068,7 +1386,7 @@ msgstr ""
1068
  msgid "Double"
1069
  msgstr ""
1070
 
1071
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1424
1072
  #: inc/widgets-manager/widgets/class-retina.php:348
1073
  #: inc/widgets-manager/widgets/class-search-button.php:320
1074
  #: inc/widgets-manager/widgets/class-search-button.php:558
@@ -1076,7 +1394,7 @@ msgstr ""
1076
  msgid "Dotted"
1077
  msgstr ""
1078
 
1079
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1425
1080
  #: inc/widgets-manager/widgets/class-retina.php:349
1081
  #: inc/widgets-manager/widgets/class-search-button.php:321
1082
  #: inc/widgets-manager/widgets/class-search-button.php:559
@@ -1084,12 +1402,12 @@ msgstr ""
1084
  msgid "Dashed"
1085
  msgstr ""
1086
 
1087
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1481
1088
  msgid "Menu Trigger & Close Icon"
1089
  msgstr ""
1090
 
1091
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1498
1092
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1530
1093
  #: inc/widgets-manager/widgets/class-page-title.php:312
1094
  #: inc/widgets-manager/widgets/class-search-button.php:787
1095
  #: inc/widgets-manager/widgets/class-search-button.php:807
@@ -1100,23 +1418,23 @@ msgstr ""
1100
  msgid "Color"
1101
  msgstr ""
1102
 
1103
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1604
1104
  msgid "Close Icon Color"
1105
  msgstr ""
1106
 
1107
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1622
1108
  msgid "Close Icon Size"
1109
  msgstr ""
1110
 
1111
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1655
1112
  msgid "Typography"
1113
  msgstr ""
1114
 
1115
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1716
1116
  msgid "Border"
1117
  msgstr ""
1118
 
1119
- #: inc/widgets-manager/widgets/class-navigation-menu.php:1781
1120
  msgid "Border Hover Color"
1121
  msgstr ""
1122
 
@@ -1402,67 +1720,6 @@ msgstr ""
1402
  msgid "General"
1403
  msgstr ""
1404
 
1405
- #: themes/default/class-hfe-fallback-theme-support.php:65
1406
- msgid "Add Theme Support"
1407
- msgstr ""
1408
-
1409
- #: themes/default/class-hfe-fallback-theme-support.php:78
1410
- msgid ""
1411
- "The Elementor - Header, Footer & Blocks plugin need compatibility with your "
1412
- "current theme to work smoothly.</br></br>Following are two methods that "
1413
- "enable theme support for the plugin.</br></br>Method 1 is selected by "
1414
- "default and that works fine almost will all themes. In case, you face any "
1415
- "issue with the header or footer template, try choosing Method 2."
1416
- msgstr ""
1417
-
1418
- #: themes/default/class-hfe-fallback-theme-support.php:95
1419
- msgid " Method 1 (Recommended)"
1420
- msgstr ""
1421
-
1422
- #: themes/default/class-hfe-fallback-theme-support.php:96
1423
- msgid ""
1424
- "This method replaces your theme's header (header.php) & footer (footer.php) "
1425
- "template with plugin's custom templates."
1426
- msgstr ""
1427
-
1428
- #: themes/default/class-hfe-fallback-theme-support.php:99
1429
- msgid "Method 2"
1430
- msgstr ""
1431
-
1432
- #: themes/default/class-hfe-fallback-theme-support.php:112
1433
- msgid ""
1434
- "Sometimes above methods might not work well with your theme, in this case, "
1435
- "contact your theme author and request them to add support for the <a "
1436
- "href=\"https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-"
1437
- "Header-Footer-Elementor-support-for-your-theme\">plugin.</>"
1438
- msgstr ""
1439
-
1440
- #: themes/default/class-hfe-fallback-theme-support.php:147
1441
- #: themes/default/class-hfe-fallback-theme-support.php:148
1442
- msgid "Settings"
1443
- msgstr ""
1444
-
1445
- #: themes/default/class-hfe-fallback-theme-support.php:164
1446
- msgid "Elementor - Header, Footer & Blocks "
1447
- msgstr ""
1448
-
1449
- #: themes/default/class-hfe-fallback-theme-support.php:172
1450
- msgid "All Templates"
1451
- msgstr ""
1452
-
1453
- #: themes/default/class-hfe-fallback-theme-support.php:176
1454
- #: themes/default/class-hfe-fallback-theme-support.php:217
1455
- msgid "Theme Support"
1456
- msgstr ""
1457
-
1458
- #: themes/default/class-hfe-fallback-theme-support.php:213
1459
- msgid "All templates"
1460
- msgstr ""
1461
-
1462
- #. Plugin Name of the plugin/theme
1463
- msgid "Elementor - Header, Footer & Blocks"
1464
- msgstr ""
1465
-
1466
  #. Plugin URI of the plugin/theme
1467
  msgid "https://github.com/Nikschavan/header-footer-elementor"
1468
  msgstr ""
1
  # Copyright (C) 2021 Brainstorm Force, Nikhil Chavan
2
+ # This file is distributed under the same license as the Elementor Header & Footer Builder package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Elementor Header & Footer Builder 1.6.0\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/header-footer-elementor\n"
8
+ "POT-Creation-Date: 2021-06-21 16:23:04+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
66
  msgid "Learn More."
67
  msgstr ""
68
 
69
+ #: admin/class-hfe-addons-actions.php:127
70
+ msgid "Plugin activation is disabled for you on this site."
71
  msgstr ""
72
 
73
+ #: admin/class-hfe-addons-actions.php:136
74
+ msgid "Plugin Activated."
75
  msgstr ""
76
 
77
+ #: admin/class-hfe-addons-actions.php:146
78
+ msgid "Theme activation is disabled for you on this site."
79
  msgstr ""
80
 
81
+ #: admin/class-hfe-addons-actions.php:155
82
+ msgid "Theme Activated."
83
  msgstr ""
84
 
85
+ #: admin/class-hfe-addons-actions.php:161
86
+ msgid "Could not activate plugin. Please activate from the Plugins page."
87
+ msgstr ""
88
+
89
+ #: admin/class-hfe-addons-actions.php:163
90
+ msgid "Could not activate theme. Please activate from the Themes page."
91
+ msgstr ""
92
+
93
+ #: admin/class-hfe-admin.php:136 admin/class-hfe-admin.php:369
94
+ msgid "Display Rules"
95
+ msgstr ""
96
+
97
+ #: admin/class-hfe-admin.php:137
98
+ msgid "Date"
99
+ msgstr ""
100
+
101
+ #. Plugin Name of the plugin/theme
102
+ msgid "Elementor Header & Footer Builder"
103
  msgstr ""
104
 
105
  #: admin/class-hfe-admin.php:224
106
+ msgid "Add New"
107
  msgstr ""
108
 
109
  #: admin/class-hfe-admin.php:225
110
+ msgid "Add New Header or Footer"
111
  msgstr ""
112
 
113
  #: admin/class-hfe-admin.php:226
114
+ msgid "New Template"
115
  msgstr ""
116
 
117
  #: admin/class-hfe-admin.php:227
118
+ msgid "Edit Template"
119
  msgstr ""
120
 
121
  #: admin/class-hfe-admin.php:228
122
+ msgid "View Template"
123
  msgstr ""
124
 
125
+ #: admin/class-hfe-admin.php:229 inc/class-hfe-settings-page.php:273
126
+ msgid "All Templates"
127
  msgstr ""
128
 
129
  #: admin/class-hfe-admin.php:230
130
+ msgid "Search Templates"
131
  msgstr ""
132
 
133
  #: admin/class-hfe-admin.php:231
134
+ msgid "Parent Templates:"
135
  msgstr ""
136
 
137
  #: admin/class-hfe-admin.php:232
138
+ msgid "No Templates found."
139
  msgstr ""
140
 
141
+ #: admin/class-hfe-admin.php:233
142
+ msgid "No Templates found in Trash."
143
  msgstr ""
144
 
145
+ #: admin/class-hfe-admin.php:275
146
+ msgid "Elementor Header & Footer Builder Options"
147
  msgstr ""
148
 
149
+ #: admin/class-hfe-admin.php:303
150
  msgid "Type of Template"
151
  msgstr ""
152
 
153
+ #: admin/class-hfe-admin.php:307
154
  msgid "Select Option"
155
  msgstr ""
156
 
157
+ #: admin/class-hfe-admin.php:308
158
  msgid "Header"
159
  msgstr ""
160
 
161
+ #: admin/class-hfe-admin.php:309
162
  msgid "Before Footer"
163
  msgstr ""
164
 
165
+ #: admin/class-hfe-admin.php:310
166
  msgid "Footer"
167
  msgstr ""
168
 
169
+ #: admin/class-hfe-admin.php:311
170
  msgid "Custom Block"
171
  msgstr ""
172
 
173
+ #: admin/class-hfe-admin.php:319 admin/class-hfe-admin.php:564
174
  msgid "Shortcode"
175
  msgstr ""
176
 
177
+ #: admin/class-hfe-admin.php:320
178
  msgid ""
179
  "Copy this shortcode and paste it into your post, page, or text widget "
180
  "content."
181
  msgstr ""
182
 
183
+ #: admin/class-hfe-admin.php:332
184
  msgid "Enable Layout for Elementor Canvas Template?"
185
  msgstr ""
186
 
187
+ #: admin/class-hfe-admin.php:334
188
  msgid ""
189
  "Enabling this option will display this layout on pages using Elementor "
190
  "Canvas Template."
191
  msgstr ""
192
 
193
+ #: admin/class-hfe-admin.php:360
194
  msgid "Display On"
195
  msgstr ""
196
 
197
+ #: admin/class-hfe-admin.php:362
198
  msgid "Add locations for where this template should appear."
199
  msgstr ""
200
 
201
+ #: admin/class-hfe-admin.php:373
202
  msgid "Add Display Rule"
203
  msgstr ""
204
 
205
+ #: admin/class-hfe-admin.php:382
206
  msgid "Do Not Display On"
207
  msgstr ""
208
 
209
+ #: admin/class-hfe-admin.php:384
210
  msgid "Add locations for where this template should not appear."
211
  msgstr ""
212
 
213
+ #: admin/class-hfe-admin.php:391
214
  msgid "Exclude On"
215
  msgstr ""
216
 
217
+ #: admin/class-hfe-admin.php:394
218
  #: inc/lib/target-rule/class-astra-target-rules-fields.php:846
219
  msgid "Add Exclusion Rule"
220
  msgstr ""
221
 
222
+ #: admin/class-hfe-admin.php:404
223
  msgid "User Roles"
224
  msgstr ""
225
 
226
+ #: admin/class-hfe-admin.php:405
227
  msgid "Display custom template based on user role."
228
  msgstr ""
229
 
230
+ #: admin/class-hfe-admin.php:412
231
  msgid "Users"
232
  msgstr ""
233
 
234
+ #: admin/class-hfe-admin.php:415
235
  msgid "Add User Rule"
236
  msgstr ""
237
 
238
+ #: admin/class-hfe-admin.php:495
239
  #. Translators: Post title, Template Location
240
  msgid "Template %1$s is already assigned to the location %2$s"
241
  msgstr ""
242
 
243
+ #: inc/class-header-footer-elementor.php:177
244
  msgid ""
245
+ "Hello! Seems like you have used Elementor Header & Footer Builder to build "
246
+ "this website — Thanks a ton!"
247
  msgstr ""
248
 
249
+ #: inc/class-header-footer-elementor.php:178
250
  msgid ""
251
  "Could you please do us a BIG favor and give it a 5-star rating on "
252
  "WordPress? This would boost our motivation and help other users make a "
253
+ "comfortable decision while choosing the Elementor Header & Footer Builder."
254
  msgstr ""
255
 
256
+ #: inc/class-header-footer-elementor.php:180
257
  msgid "Ok, you deserve it"
258
  msgstr ""
259
 
260
+ #: inc/class-header-footer-elementor.php:182
261
  msgid "Nope, maybe later"
262
  msgstr ""
263
 
264
+ #: inc/class-header-footer-elementor.php:183
265
  msgid "I already did"
266
  msgstr ""
267
 
268
+ #: inc/class-header-footer-elementor.php:246
269
  #. translators: %s: html tags
270
  msgid ""
271
+ "The %1$sElementor Header & Footer Builder%2$s plugin requires "
272
  "%1$sElementor%2$s plugin installed & activated."
273
  msgstr ""
274
 
275
+ #: inc/class-header-footer-elementor.php:253
276
  msgid "Activate Elementor"
277
  msgstr ""
278
 
279
+ #: inc/class-header-footer-elementor.php:258
280
+ #: inc/class-header-footer-elementor.php:292
281
  msgid "Install Elementor"
282
  msgstr ""
283
 
284
+ #: inc/class-header-footer-elementor.php:280
285
+ #. translators: %s: html tags
286
+ msgid ""
287
+ "The %1$sElementor Header & Footer Builder%2$s plugin has stopped working "
288
+ "because you are using an older version of %1$sElementor%2$s plugin."
289
+ msgstr ""
290
+
291
+ #: inc/class-header-footer-elementor.php:287
292
+ msgid "Update Elementor"
293
+ msgstr ""
294
+
295
+ #: inc/class-header-footer-elementor.php:318
296
+ #. translators: %s: html tags
297
+ msgid ""
298
+ "Thank you for installing %1$s Elementor Header & Footer Builder %2$s "
299
+ "Plugin! Click here to %3$sget started. %4$s"
300
+ msgstr ""
301
+
302
+ #: inc/class-header-footer-elementor.php:477
303
+ #. translators: %s: html tags
304
+ msgid "Theme Support"
305
+ msgstr ""
306
+
307
+ #: inc/class-hfe-settings-page.php:62 inc/class-hfe-settings-page.php:672
308
+ msgid "Activate"
309
+ msgstr ""
310
+
311
+ #: inc/class-hfe-settings-page.php:63 inc/class-hfe-settings-page.php:664
312
+ msgid "Activated"
313
+ msgstr ""
314
+
315
+ #: inc/class-hfe-settings-page.php:64 inc/class-hfe-settings-page.php:661
316
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1046
317
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1228
318
+ msgid "Active"
319
+ msgstr ""
320
+
321
+ #: inc/class-hfe-settings-page.php:65
322
+ msgid "Deactivate"
323
+ msgstr ""
324
+
325
+ #: inc/class-hfe-settings-page.php:66 inc/class-hfe-settings-page.php:669
326
+ msgid "Inactive"
327
+ msgstr ""
328
+
329
+ #: inc/class-hfe-settings-page.php:67 inc/class-hfe-settings-page.php:685
330
+ msgid "Install"
331
+ msgstr ""
332
+
333
+ #: inc/class-hfe-settings-page.php:68
334
+ msgid "Theme Installed"
335
+ msgstr ""
336
+
337
+ #: inc/class-hfe-settings-page.php:69
338
+ msgid "Plugin Installed"
339
+ msgstr ""
340
+
341
+ #: inc/class-hfe-settings-page.php:70
342
+ msgid "Download"
343
+ msgstr ""
344
+
345
+ #: inc/class-hfe-settings-page.php:71
346
+ msgid "Already Exists."
347
+ msgstr ""
348
+
349
+ #: inc/class-hfe-settings-page.php:72 inc/class-hfe-settings-page.php:690
350
+ msgid "Visit Website"
351
+ msgstr ""
352
+
353
+ #: inc/class-hfe-settings-page.php:73
354
+ msgid "Could not install. Please download from WordPress.org and install manually."
355
+ msgstr ""
356
+
357
+ #: inc/class-hfe-settings-page.php:74
358
+ msgid "Your details are submitted successfully."
359
+ msgstr ""
360
+
361
+ #: inc/class-hfe-settings-page.php:75
362
+ msgid "Encountered an error while performing your request."
363
+ msgstr ""
364
+
365
+ #: inc/class-hfe-settings-page.php:125
366
+ msgid "Add Theme Support"
367
+ msgstr ""
368
+
369
+ #: inc/class-hfe-settings-page.php:142
370
+ msgid ""
371
+ "The Elementor Header & Footer Builder plugin need compatibility with your "
372
+ "current theme to work smoothly.</br></br>Following are two methods that "
373
+ "enable theme support for the plugin.</br></br>Method 1 is selected by "
374
+ "default and that works fine almost will all themes. In case, you face any "
375
+ "issue with the header or footer template, try choosing Method 2."
376
+ msgstr ""
377
+
378
+ #: inc/class-hfe-settings-page.php:159
379
+ msgid " Method 1 (Recommended)"
380
+ msgstr ""
381
+
382
+ #: inc/class-hfe-settings-page.php:160
383
+ msgid ""
384
+ "This method replaces your theme's header (header.php) & footer (footer.php) "
385
+ "template with plugin's custom templates."
386
+ msgstr ""
387
+
388
+ #: inc/class-hfe-settings-page.php:163
389
+ msgid "Method 2"
390
+ msgstr ""
391
+
392
+ #: inc/class-hfe-settings-page.php:176
393
+ msgid ""
394
+ "Sometimes above methods might not work well with your theme, in this case, "
395
+ "contact your theme author and request them to add support for the <a "
396
+ "href=\"https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-"
397
+ "Header-Footer-Elementor-support-for-your-theme\">plugin.</>"
398
+ msgstr ""
399
+
400
+ #: inc/class-hfe-settings-page.php:195 inc/class-hfe-settings-page.php:196
401
+ #: inc/class-hfe-settings-page.php:808
402
+ msgid "Settings"
403
+ msgstr ""
404
+
405
+ #: inc/class-hfe-settings-page.php:204 inc/class-hfe-settings-page.php:205
406
+ #: inc/class-hfe-settings-page.php:279
407
+ msgid "About Us"
408
+ msgstr ""
409
+
410
+ #: inc/class-hfe-settings-page.php:239
411
+ msgid "Elementor Header & Footer Builder "
412
+ msgstr ""
413
+
414
+ #: inc/class-hfe-settings-page.php:325
415
+ #. translators: 1: Elementor, 2: Link to plugin review
416
+ msgid ""
417
+ "Help us spread the word about the plugin by leaving %2$s %1$s %3$s ratings "
418
+ "on %2$s WordPress.org %3$s. Thank you from the Brainstorm Force team!"
419
+ msgstr ""
420
+
421
+ #: inc/class-hfe-settings-page.php:368
422
+ msgid "Create Impressive Header and Footer Designs"
423
+ msgstr ""
424
+
425
+ #: inc/class-hfe-settings-page.php:369
426
+ msgid ""
427
+ "Elementor Header & Footer Builder plugin lets you build impactful "
428
+ "navigation for your website very easily. Before we begin, we would like to "
429
+ "know more about you. This will help us to serve you better."
430
+ msgstr ""
431
+
432
+ #: inc/class-hfe-settings-page.php:383
433
+ #. translators: %1$s and %3$s are opening anchor tags, and %2$s and %4$s is
434
+ #. closing anchor tags.
435
+ msgid "By submitting, you agree to our %1$sTerms%2$s and %3$sPrivacy Policy%4$s."
436
+ msgstr ""
437
+
438
+ #: inc/class-hfe-settings-page.php:401
439
+ msgid "Skip"
440
+ msgstr ""
441
+
442
+ #: inc/class-hfe-settings-page.php:419
443
+ msgid "Beginner"
444
+ msgstr ""
445
+
446
+ #: inc/class-hfe-settings-page.php:420
447
+ msgid "Intermediate"
448
+ msgstr ""
449
+
450
+ #: inc/class-hfe-settings-page.php:421
451
+ msgid "Expert"
452
+ msgstr ""
453
+
454
+ #: inc/class-hfe-settings-page.php:423 inc/class-hfe-settings-page.php:432
455
+ msgid "Field is required"
456
+ msgstr ""
457
+
458
+ #: inc/class-hfe-settings-page.php:424
459
+ msgid "I'm a WordPress:"
460
+ msgstr ""
461
+
462
+ #: inc/class-hfe-settings-page.php:429
463
+ msgid "Myself/My company"
464
+ msgstr ""
465
+
466
+ #: inc/class-hfe-settings-page.php:430
467
+ msgid "My client"
468
+ msgstr ""
469
+
470
+ #: inc/class-hfe-settings-page.php:433
471
+ msgid "I'm building website for:"
472
+ msgstr ""
473
+
474
+ #: inc/class-hfe-settings-page.php:456
475
+ msgid "First name is required"
476
+ msgstr ""
477
+
478
+ #: inc/class-hfe-settings-page.php:457
479
+ msgid "Your First Name"
480
+ msgstr ""
481
+
482
+ #: inc/class-hfe-settings-page.php:461
483
+ msgid "Email address is required"
484
+ msgstr ""
485
+
486
+ #: inc/class-hfe-settings-page.php:462
487
+ msgid "Your Work Email"
488
+ msgstr ""
489
+
490
+ #: inc/class-hfe-settings-page.php:467
491
+ msgid "Submit"
492
+ msgstr ""
493
+
494
+ #: inc/class-hfe-settings-page.php:521
495
+ msgid "Welcome to Elementor Header & Footer Builder!"
496
+ msgstr ""
497
+
498
+ #: inc/class-hfe-settings-page.php:523
499
+ msgid ""
500
+ "With this awesome plugin, experience the easiest way to create a customized "
501
+ "header and footer for your website with Elementor. That too 100% FREE!"
502
+ msgstr ""
503
+
504
+ #: inc/class-hfe-settings-page.php:525
505
+ msgid ""
506
+ "Design beautiful layouts with simple drag & drop and display them at "
507
+ "desired location with powerful target controls. The plugin comes with "
508
+ "inbuilt Elementor widgets that offer essential features to build header and "
509
+ "footer. It's a lightweight plugin that works seamlessly with all themes and "
510
+ "backed up by 24/7 support."
511
+ msgstr ""
512
+
513
+ #: inc/class-hfe-settings-page.php:527
514
+ msgid ""
515
+ "Trusted by more than 1+ Million users, Elementor Header & Footer Builder is "
516
+ "a modern way to build advanced navigation for your website."
517
+ msgstr ""
518
+
519
+ #: inc/class-hfe-settings-page.php:529
520
+ msgid ""
521
+ "This plugin is brought to you by the same team behind the popular WordPress "
522
+ "theme Astra and a series of Ultimate Addons plugins."
523
+ msgstr ""
524
+
525
+ #: inc/class-hfe-settings-page.php:535
526
+ msgid "Team photo"
527
+ msgstr ""
528
+
529
+ #: inc/class-hfe-settings-page.php:537
530
+ msgid "Brainstorm Force Team"
531
+ msgstr ""
532
+
533
+ #: inc/class-hfe-settings-page.php:581
534
+ #. translators: %s - addon status label.
535
+ msgid "%1$s %3$s %2$s"
536
+ msgstr ""
537
+
538
+ #: inc/class-hfe-settings-page.php:598
539
+ #. translators: %s - addon status label.
540
+ msgid "Status: %s"
541
+ msgstr ""
542
+
543
+ #: inc/class-hfe-settings-page.php:617
544
+ msgid "WordPress.org"
545
+ msgstr ""
546
+
547
+ #: inc/class-hfe-settings-page.php:682
548
+ msgid "Not Installed"
549
+ msgstr ""
550
+
551
+ #: inc/class-hfe-settings-page.php:715
552
+ msgid "Astra Theme"
553
+ msgstr ""
554
+
555
+ #: inc/class-hfe-settings-page.php:716
556
+ msgid ""
557
+ "Powering over 1+ Million websites, Astra is loved for the fast performance "
558
+ "and ease of use it offers. It is suitable for all kinds of websites like "
559
+ "blogs, portfolios, business, and WooCommerce stores."
560
+ msgstr ""
561
+
562
+ #: inc/class-hfe-settings-page.php:727
563
+ msgid "Starter Templates"
564
+ msgstr ""
565
+
566
+ #: inc/class-hfe-settings-page.php:728
567
+ msgid ""
568
+ "A popular templates plugin that provides an extensive library of "
569
+ "professional and fully customizable 600+ ready website and templates. More "
570
+ "than 1+ Million websites have built with this plugin."
571
+ msgstr ""
572
+
573
+ #: inc/class-hfe-settings-page.php:739
574
+ msgid "Ultimate Addons for Elementor"
575
+ msgstr ""
576
+
577
+ #: inc/class-hfe-settings-page.php:740
578
+ msgid ""
579
+ "It’s a collection of 40+ unique, creative, and optimized Elementor widgets "
580
+ "with 100+ readymade templates. Trusted by more than 600+ K web "
581
+ "professionals. It’s a #1 toolkit for Elementor Page Builder."
582
+ msgstr ""
583
+
584
+ #: inc/class-hfe-settings-page.php:807
585
+ msgid "Go to HFE Settings page"
586
+ msgstr ""
587
+
588
  #: inc/lib/notices/class-astra-notices.php:120
589
  msgid "WordPress Nonce not validated."
590
  msgstr ""
740
  msgid "The same display setting is already exist in %s post/s."
741
  msgstr ""
742
 
 
 
 
 
743
  #: inc/widgets-manager/class-widgets-loader.php:234
744
  #: inc/widgets-manager/widgets/class-cart.php:51
745
  #: inc/widgets-manager/widgets/class-cart.php:661
756
  msgstr ""
757
 
758
  #: inc/widgets-manager/widgets/class-cart.php:130
759
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:235
760
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:460
761
  #: inc/widgets-manager/widgets/class-page-title.php:192
762
  #: inc/widgets-manager/widgets/class-page-title.php:241
763
  #: inc/widgets-manager/widgets/class-site-logo.php:232
772
  msgstr ""
773
 
774
  #: inc/widgets-manager/widgets/class-cart.php:139
775
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:590
776
  #: inc/widgets-manager/widgets/class-page-title.php:364
777
  #: inc/widgets-manager/widgets/class-search-button.php:145
778
  #: inc/widgets-manager/widgets/class-search-button.php:767
800
  msgstr ""
801
 
802
  #: inc/widgets-manager/widgets/class-cart.php:160
803
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:506
804
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:838
805
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1440
806
  #: inc/widgets-manager/widgets/class-page-title.php:193
807
  #: inc/widgets-manager/widgets/class-retina.php:196
808
  #: inc/widgets-manager/widgets/class-retina.php:227
824
 
825
  #: inc/widgets-manager/widgets/class-cart.php:176
826
  #: inc/widgets-manager/widgets/class-cart.php:192
827
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:250
828
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:267
829
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:558
830
  #: inc/widgets-manager/widgets/class-site-logo.php:137
831
  #: inc/widgets-manager/widgets/class-site-logo.php:202
832
  #: inc/widgets-manager/widgets/class-site-logo.php:264
835
 
836
  #: inc/widgets-manager/widgets/class-cart.php:177
837
  #: inc/widgets-manager/widgets/class-cart.php:193
838
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:251
839
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:268
840
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:559
841
  #: inc/widgets-manager/widgets/class-site-logo.php:138
842
  #: inc/widgets-manager/widgets/class-site-logo.php:201
843
  #: inc/widgets-manager/widgets/class-site-logo.php:265
854
 
855
  #: inc/widgets-manager/widgets/class-cart.php:207
856
  #: inc/widgets-manager/widgets/class-copyright.php:142
857
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:303
858
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:519
859
  #: inc/widgets-manager/widgets/class-page-title.php:254
860
  #: inc/widgets-manager/widgets/class-retina.php:167
861
  #: inc/widgets-manager/widgets/class-site-logo.php:172
866
 
867
  #: inc/widgets-manager/widgets/class-cart.php:211
868
  #: inc/widgets-manager/widgets/class-copyright.php:146
869
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:307
870
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:338
871
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:373
872
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:409
873
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:523
874
  #: inc/widgets-manager/widgets/class-page-title.php:258
875
  #: inc/widgets-manager/widgets/class-retina.php:171
876
  #: inc/widgets-manager/widgets/class-site-logo.php:176
881
 
882
  #: inc/widgets-manager/widgets/class-cart.php:215
883
  #: inc/widgets-manager/widgets/class-copyright.php:150
884
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:311
885
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:377
886
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:413
887
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:527
888
  #: inc/widgets-manager/widgets/class-page-title.php:262
889
  #: inc/widgets-manager/widgets/class-retina.php:175
890
  #: inc/widgets-manager/widgets/class-site-logo.php:180
895
 
896
  #: inc/widgets-manager/widgets/class-cart.php:219
897
  #: inc/widgets-manager/widgets/class-copyright.php:154
898
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:315
899
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:339
900
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:381
901
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:417
902
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:531
903
  #: inc/widgets-manager/widgets/class-page-title.php:266
904
  #: inc/widgets-manager/widgets/class-retina.php:179
905
  #: inc/widgets-manager/widgets/class-site-logo.php:184
917
  msgstr ""
918
 
919
  #: inc/widgets-manager/widgets/class-cart.php:282
920
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1473
921
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1595
922
  #: inc/widgets-manager/widgets/class-retina.php:359
923
  #: inc/widgets-manager/widgets/class-search-button.php:356
924
  #: inc/widgets-manager/widgets/class-search-button.php:589
927
  msgstr ""
928
 
929
  #: inc/widgets-manager/widgets/class-cart.php:301
930
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1300
931
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1611
932
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1743
933
  #: inc/widgets-manager/widgets/class-retina.php:399
934
  #: inc/widgets-manager/widgets/class-search-button.php:381
935
  #: inc/widgets-manager/widgets/class-search-button.php:612
938
  msgstr ""
939
 
940
  #: inc/widgets-manager/widgets/class-cart.php:321
941
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1684
942
  #: inc/widgets-manager/widgets/class-retina.php:584
943
  #: inc/widgets-manager/widgets/class-site-logo.php:626
944
  msgid "Padding"
946
 
947
  #: inc/widgets-manager/widgets/class-cart.php:338
948
  #: inc/widgets-manager/widgets/class-cart.php:536
949
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:939
950
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1142
951
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1510
952
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1698
953
  #: inc/widgets-manager/widgets/class-page-title.php:339
954
  #: inc/widgets-manager/widgets/class-retina.php:424
955
  #: inc/widgets-manager/widgets/class-search-button.php:241
966
  #: inc/widgets-manager/widgets/class-cart.php:543
967
  #: inc/widgets-manager/widgets/class-cart.php:580
968
  #: inc/widgets-manager/widgets/class-copyright.php:167
969
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:946
970
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:985
971
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1053
972
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1149
973
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1192
974
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1235
975
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1705
976
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1772
977
  #: inc/widgets-manager/widgets/class-retina.php:539
978
  #: inc/widgets-manager/widgets/class-search-button.php:251
979
  #: inc/widgets-manager/widgets/class-search-button.php:418
996
  #: inc/widgets-manager/widgets/class-cart.php:426
997
  #: inc/widgets-manager/widgets/class-cart.php:557
998
  #: inc/widgets-manager/widgets/class-cart.php:594
999
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:819
1000
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:961
1001
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1003
1002
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1066
1003
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1166
1004
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1209
1005
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1252
1006
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1529
1007
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1562
1008
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1718
1009
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1784
1010
  #: inc/widgets-manager/widgets/class-retina.php:554
1011
  #: inc/widgets-manager/widgets/class-search-button.php:286
1012
  #: inc/widgets-manager/widgets/class-search-button.php:450
1020
 
1021
  #: inc/widgets-manager/widgets/class-cart.php:381
1022
  #: inc/widgets-manager/widgets/class-cart.php:437
1023
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1456
1024
  #: inc/widgets-manager/widgets/class-retina.php:381
1025
  #: inc/widgets-manager/widgets/class-search-button.php:335
1026
  #: inc/widgets-manager/widgets/class-search-button.php:483
1031
 
1032
  #: inc/widgets-manager/widgets/class-cart.php:394
1033
  #: inc/widgets-manager/widgets/class-cart.php:573
1034
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:978
1035
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1185
1036
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1542
1037
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1765
1038
  #: inc/widgets-manager/widgets/class-retina.php:459
1039
  #: inc/widgets-manager/widgets/class-search-button.php:684
1040
  #: inc/widgets-manager/widgets/class-search-button.php:800
1044
  msgstr ""
1045
 
1046
  #: inc/widgets-manager/widgets/class-cart.php:451
1047
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1577
1048
  #: inc/widgets-manager/widgets/class-search-button.php:717
1049
  #: inc/widgets-manager/widgets/class-search-button.php:822
1050
  msgid "Icon Size"
1105
  msgid "Menu"
1106
  msgstr ""
1107
 
1108
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:214
1109
  #. translators: %s Nav menu URL
1110
  msgid ""
1111
  "Go to the <a href=\"%s\" target=\"_blank\">Menus screen</a> to manage your "
1112
  "menus."
1113
  msgstr ""
1114
 
1115
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:223
1116
  #. translators: %s Nav menu URL
1117
  msgid ""
1118
  "<strong>There are no menus in your site.</strong><br>Go to the <a "
1119
  "href=\"%s\" target=\"_blank\">Menus screen</a> to create one."
1120
  msgstr ""
1121
 
1122
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:232
1123
  msgid "Last Menu Item"
1124
  msgstr ""
1125
 
1126
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:236
1127
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1662
1128
  #: inc/widgets-manager/widgets/class-search-button.php:638
1129
  msgid "Button"
1130
  msgstr ""
1131
 
1132
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:248
1133
  msgid "Enable Schema Support"
1134
  msgstr ""
1135
 
1136
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:265
1137
+ msgid "Hide + & - Sign"
1138
+ msgstr ""
1139
+
1140
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:281
1141
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:288
1142
  #: inc/widgets-manager/widgets/class-search-button.php:140
1143
  msgid "Layout"
1144
  msgstr ""
1145
 
1146
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:292
1147
  msgid "Horizontal"
1148
  msgstr ""
1149
 
1150
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:293
1151
  msgid "Vertical"
1152
  msgstr ""
1153
 
1154
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:294
1155
  msgid "Expanded"
1156
  msgstr ""
1157
 
1158
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:295
1159
  msgid "Flyout"
1160
  msgstr ""
1161
 
1162
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:319
1163
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:421
1164
  #: inc/widgets-manager/widgets/class-site-tagline.php:194
1165
  #: inc/widgets-manager/widgets/class-site-title.php:261
1166
  msgid "Justify"
1167
  msgstr ""
1168
 
1169
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:334
1170
  msgid "Flyout Orientation"
1171
  msgstr ""
1172
 
1173
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:350
1174
  msgid "Appear Effect"
1175
  msgstr ""
1176
 
1177
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:355
1178
  msgid "Slide"
1179
  msgstr ""
1180
 
1181
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:356
1182
  msgid "Push"
1183
  msgstr ""
1184
 
1185
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:368
1186
  msgid "Hamburger Align"
1187
  msgstr ""
1188
 
1189
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:405
1190
  msgid "Menu Items Align"
1191
  msgstr ""
1192
 
1193
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:441
1194
  msgid "Submenu Icon"
1195
  msgstr ""
1196
 
1197
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:445
1198
  msgid "Arrows"
1199
  msgstr ""
1200
 
1201
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:446
1202
  msgid "Plus Sign"
1203
  msgstr ""
1204
 
1205
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:447
1206
  msgid "Classic"
1207
  msgstr ""
1208
 
1209
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:456
1210
  msgid "Submenu Animation"
1211
  msgstr ""
1212
 
1213
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:461
1214
  msgid "Slide Up"
1215
  msgstr ""
1216
 
1217
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:473
1218
  msgid "Action On Menu Click"
1219
  msgstr ""
1220
 
1221
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:476
1222
  msgid "For Horizontal layout, this will affect on the selected breakpoint"
1223
  msgstr ""
1224
 
1225
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:478
1226
  msgid "Open Submenu"
1227
  msgstr ""
1228
 
1229
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:479
1230
  msgid "Redirect To Self Link"
1231
  msgstr ""
1232
 
1233
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:489
1234
  msgid "Responsive"
1235
  msgstr ""
1236
 
1237
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:500
1238
  msgid "Breakpoint"
1239
  msgstr ""
1240
 
1241
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:504
1242
  msgid "Mobile (768px >)"
1243
  msgstr ""
1244
 
1245
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:505
1246
  msgid "Tablet (1025px >)"
1247
  msgstr ""
1248
 
1249
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:536
1250
  msgid "This is the alignement of menu icon on selected responsive breakpoints."
1251
  msgstr ""
1252
 
1253
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:555
1254
  msgid "Full Width"
1255
  msgstr ""
1256
 
1257
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:556
1258
  msgid "Enable this option to stretch the Sub Menu to Full Width."
1259
  msgstr ""
1260
 
1261
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:574
1262
  msgid "Menu Icon"
1263
  msgstr ""
1264
 
1265
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:605
1266
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:621
1267
  #: inc/widgets-manager/widgets/class-search-button.php:846
1268
  msgid "Close Icon"
1269
  msgstr ""
1270
 
1271
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:646
1272
  msgid "Main Menu"
1273
  msgstr ""
1274
 
1275
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:657
1276
  msgid "Flyout Box Width"
1277
  msgstr ""
1278
 
1279
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:684
1280
  msgid "Flyout Box Padding"
1281
  msgstr ""
1282
 
1283
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:707
1284
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1358
1285
  msgid "Horizontal Padding"
1286
  msgstr ""
1287
 
1288
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:732
1289
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1380
1290
  msgid "Vertical Padding"
1291
  msgstr ""
1292
 
1293
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:753
1294
  msgid "Space Between"
1295
  msgstr ""
1296
 
1297
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:779
1298
  msgid "Row Spacing"
1299
  msgstr ""
1300
 
1301
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:799
1302
  msgid "Menu Item Top Spacing"
1303
  msgstr ""
1304
 
1305
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:834
1306
  msgid "Link Hover Effect"
1307
  msgstr ""
1308
 
1309
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:839
1310
  msgid "Underline"
1311
  msgstr ""
1312
 
1313
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:840
1314
  msgid "Overline"
1315
  msgstr ""
1316
 
1317
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:841
1318
  msgid "Double Line"
1319
  msgstr ""
1320
 
1321
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:842
1322
  msgid "Framed"
1323
  msgstr ""
1324
 
1325
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:843
1326
  msgid "Text"
1327
  msgstr ""
1328
 
1329
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:854
1330
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:896
1331
  msgid "Animation"
1332
  msgstr ""
1333
 
1334
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:875
1335
  msgid "Frame Animation"
1336
  msgstr ""
1337
 
1338
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1021
1339
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1082
1340
  msgid "Link Hover Effect Color"
1341
  msgstr ""
1342
 
1343
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1117
 
 
 
 
 
1344
  msgid "Dropdown"
1345
  msgstr ""
1346
 
1347
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1125
1348
  msgid ""
1349
  "<b>Note:</b> On desktop, below style options will apply to the submenu. On "
1350
  "mobile, this will apply to the entire menu."
1351
  msgstr ""
1352
 
1353
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1334
1354
  msgid "Dropdown Width (px)"
1355
  msgstr ""
1356
 
1357
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1405
1358
  msgid "Top Distance"
1359
  msgstr ""
1360
 
1361
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1426
1362
  msgid "Divider"
1363
  msgstr ""
1364
 
1365
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1435
1366
  #: inc/widgets-manager/widgets/class-retina.php:340
1367
  #: inc/widgets-manager/widgets/class-search-button.php:312
1368
  #: inc/widgets-manager/widgets/class-search-button.php:550
1370
  msgid "Border Style"
1371
  msgstr ""
1372
 
1373
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1441
1374
  #: inc/widgets-manager/widgets/class-retina.php:346
1375
  #: inc/widgets-manager/widgets/class-search-button.php:318
1376
  #: inc/widgets-manager/widgets/class-search-button.php:556
1378
  msgid "Solid"
1379
  msgstr ""
1380
 
1381
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1442
1382
  #: inc/widgets-manager/widgets/class-retina.php:347
1383
  #: inc/widgets-manager/widgets/class-search-button.php:319
1384
  #: inc/widgets-manager/widgets/class-search-button.php:557
1386
  msgid "Double"
1387
  msgstr ""
1388
 
1389
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1443
1390
  #: inc/widgets-manager/widgets/class-retina.php:348
1391
  #: inc/widgets-manager/widgets/class-search-button.php:320
1392
  #: inc/widgets-manager/widgets/class-search-button.php:558
1394
  msgid "Dotted"
1395
  msgstr ""
1396
 
1397
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1444
1398
  #: inc/widgets-manager/widgets/class-retina.php:349
1399
  #: inc/widgets-manager/widgets/class-search-button.php:321
1400
  #: inc/widgets-manager/widgets/class-search-button.php:559
1402
  msgid "Dashed"
1403
  msgstr ""
1404
 
1405
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1500
1406
  msgid "Menu Trigger & Close Icon"
1407
  msgstr ""
1408
 
1409
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1517
1410
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1549
1411
  #: inc/widgets-manager/widgets/class-page-title.php:312
1412
  #: inc/widgets-manager/widgets/class-search-button.php:787
1413
  #: inc/widgets-manager/widgets/class-search-button.php:807
1418
  msgid "Color"
1419
  msgstr ""
1420
 
1421
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1623
1422
  msgid "Close Icon Color"
1423
  msgstr ""
1424
 
1425
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1641
1426
  msgid "Close Icon Size"
1427
  msgstr ""
1428
 
1429
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1674
1430
  msgid "Typography"
1431
  msgstr ""
1432
 
1433
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1735
1434
  msgid "Border"
1435
  msgstr ""
1436
 
1437
+ #: inc/widgets-manager/widgets/class-navigation-menu.php:1800
1438
  msgid "Border Hover Color"
1439
  msgstr ""
1440
 
1720
  msgid "General"
1721
  msgstr ""
1722
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1723
  #. Plugin URI of the plugin/theme
1724
  msgid "https://github.com/Nikschavan/header-footer-elementor"
1725
  msgstr ""
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
- === Elementor - Header, Footer & Blocks Template ===
2
  Contributors: brainstormforce, Nikschavan
3
  Tags: elementor, header footer builder, header template, footer template, elementor widget, WordPress header, WordPress footer, elementor menu, website header design, footer design, blocks
4
  Donate link: https://www.paypal.me/BrainstormForce
5
  Requires at least: 4.4
6
  Requires PHP: 5.4
7
  Tested up to: 5.7
8
- Stable tag: 1.5.9
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -15,7 +15,7 @@ Create Header, Footer and Blocks for your WordPress website using Elementor Page
15
 
16
  Have you ever imagined you could create your website header and footer with <a href="https://elementor.com/">Elementor</a> for FREE?
17
 
18
- Elementor - Header, Footer & Blocks Template is a simple yet powerful WordPress plugin that allows you to create a layout with Elementor and set it as
19
  - Header
20
  - Footer
21
  - Block (anywhere on the website)
@@ -58,13 +58,13 @@ The plugin offers inbuilt widgets that help to create header/footer layouts. The
58
 
59
  = WORKS WITH ALL THEMES =
60
 
61
- Elementor Header, Footer & Blocks plugin works with all WordPress themes. Few of the themes have direct support while for few you can choose a method to add theme support.
62
 
63
- In case you face any difficulty displaying header/footer, manually choose the theme support method. Visit Appearance > Header Footer & Blocks > Theme Support. Select a method to suit your current theme and you are good to go!
64
 
65
  = STEPS TO USE THE PLUGIN =
66
 
67
- Step 1 - Visit Appearance > Header Footer & Blocks and click on the ‘Add New’.
68
 
69
  Step 2 - Select ‘Type of Template’ (header/footer/block). Set its display location and user roles.
70
 
@@ -82,7 +82,7 @@ Check [Ultimate Addons for Elementor](https://ultimateelementor.com/?utm_source=
82
 
83
  = HAVE YOU TRIED ASTRA WITH ELEMENTOR? =
84
 
85
- Powering over 1M+ WordPress websites, Astra is loved for the performance and ease-of-use it offers.
86
 
87
  People love Astra for -
88
 
@@ -95,53 +95,62 @@ People love Astra for -
95
  = SUPPORTED & ACTIVELY DEVELOPED =
96
  Need help with something? Have an issue to report? Visit [Plugin’s Forum](https://wordpress.org/plugins/header-footer-elementor/ "Plugin’s Forum").
97
 
98
- [Get in touch](https://github.com/Nikschavan/header-footer-elementor "Elementor - Header Footer & Blocks on GitHub") with us on GitHub.
99
 
100
  Made with love at [Brainstorm Force](https://www.brainstormforce.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description "Brainstorm Force")!
101
 
102
  == Installation ==
103
 
104
- 1. Go to `Plugins -> Add New` and search for Elementor Header, Footer & Blocks Template.
105
  2. Activate the plugin through the 'Plugins' screen in WordPress.
106
- 3. Go to `Appearance -> Header Footer & Blocks` to build a header or footer layout using Elementor.
107
  4. After the layout is ready assign it as header or footer using the option `Select the type of template this is` (<a href="https://cloudup.com/clK2sPg9nXK+">screenshot</a>)
108
 
109
  == Frequently Asked Questions ==
110
 
111
  = How Does This Plugin Work? =
112
 
113
- 1. Go to Appearance -> Header Footer & Blocks to build a header or footer layout using Elementor.
114
  2. Click on “Add New” and design a template with Elementor.
115
  3. Once the template is ready, set is as a header/footer/block using options “Type of Template” (<a href="https://share.getcloudapp.com/geurz2JR">screenshot</a>).
116
  4.
117
-
118
  a) For Header/Footer - Select the target location with the option “Display On”. With this Header/Footer will be visible only on selected locations for selected “User Roles”.
119
-
120
- b) For Custom Block - Just copy the shortcode and add it anywhere on the website. Your designed template will display automatically. Display conditions or user roles will not be effective with shortcodes.
121
 
122
  = Can You Create a Mobile Responsive Header/Footer Using This Plugin? =
123
 
124
- Yes, You can create the mobile responsive layout of your header using the plugin.
125
 
126
- The Elementor Header, Footer & Blocks Template plugin just gives you a container where you can completely design the header using Elementor Page Builder, So the process of creating the mobile responsive layout is exactly the same as you would create a responsive layout of your other Elementor page.
127
 
128
  Here is a documentation by Elementor Page builder which explains how you can create mobile responsive layouts using Elementor - [https://elementor.com/introducing-mobile-editing/](https://elementor.com/introducing-mobile-editing/)
129
  This same applies when you are creating your Header/Footer using this plugin.
130
 
131
  == Screenshots ==
132
 
133
- 1. Go to Appearance -> Header Footer & Blocks to create a new template.
134
  2. Assign template to be a header/footer and select display rules.
135
- 3. 3. For blocks, select the type of template as Custom Blocks. You can copy the shortcode and use it anywhere.
136
  4. Methods to add Theme Support.
137
- 5. Default widgets available with Elementor Header, Footer & Blocks.
138
 
139
  == Changelog ==
140
- = 1.5.9 =
 
 
 
 
 
 
 
 
 
141
  - Improvement: Added notice to update Elementor to v3.0.0 or higher
142
- Elementor has deprecated few functions and namespaces with its v3.0.0. Following Elementor, our plugin too deprecates similar functions and namespaces. You will now require the Elementor v3.0.0 or higher.
143
  - Improvement: Elementor 3.2 Compatibility - Added Elementor Global Color and Typography scheme support.
144
- - Fix: Navigation Menu - Last menu item button disappearing while switching from mobile to desktop.
145
  - Fix: Navigation Menu - Last menu item button alignment not working in RTL view.
146
 
147
  = 1.5.8 =
@@ -243,7 +252,7 @@ Elementor has deprecated few functions and namespaces with its v3.0.0. Following
243
  - Fix: Flush permalinks on plugin update to Elementor error when trying to edit the Header/Footer.
244
 
245
  = 1.1.3 =
246
- - Improvement: Allow changing the permalinks for the hfe templates (<a href="https://github.com/Nikschavan/header-footer-elementor/pull/162/">#162</a>)
247
  - Fix: WPML Translations do not work when using the Elementor Template as a shortcode. (<a href="https://github.com/Nikschavan/header-footer-elementor/pull/159/">#159</a>)
248
  - Fix: Page content appears over the header. (<a href="https://github.com/Nikschavan/header-footer-elementor/pull/150/">#150</a>)
249
  - Fix: Remove the deprecated function warning for shortcode functions. (Props <a href="https://github.com/hogash">@hogash</a> <a href="https://github.com/Nikschavan/header-footer-elementor/pull/145/">#145</a>)
@@ -255,7 +264,7 @@ Elementor has deprecated few functions and namespaces with its v3.0.0. Following
255
  - Fix: Blank header being displayed when only footer is translated using WPML.
256
 
257
  = 1.1.0 =
258
- - New: Rename plugin to be Header Footer & Blocks builder as now thee blocks templates can be used as shortcodes.
259
  - New: Add templates before the footer for Astra Theme. Options for other themes will be coming soon.
260
  - New: Use templates (Blocks) anywhere in your content with the help of shortcodes.
261
  - Improvement: Improved the UI of the metabox for Header Footer post type.
@@ -273,24 +282,24 @@ Elementor has deprecated few functions and namespaces with its v3.0.0. Following
273
  = 1.0.13 =
274
  - Fix: PHP Notices and errors due to WP_Query being called early when some plugins use filters inside WP_Query.
275
 
276
- = 1.0.12 =
277
  - Fix: Compatibility with Elementor 2.0 changed canvas template path.
278
 
279
- = 1.0.11 =
280
  - Load the CSS footer early in the page to avoid slow rendering of CSS.
281
  - Change the schema.org links to be https.
282
  - Fix: Added correct schema markup for the footer.
283
 
284
- = 1.0.10 =
285
  - Load the header layout correctly in the <body> in Elementor canvas template.
286
  - Load the Elementor Pro CSS/JS files in <head>.
287
  - Provide more filters for the helper functions.
288
 
289
- = 1.0.9 =
290
  - Add Support for WPML.
291
  - Updated the missing strings from the translations template.
292
 
293
- = 1.0.8 =
294
  - Allow filters to override the WP_Query parameters when retreiving the Header / Footer template id.
295
 
296
  = 1.0.7 =
1
+ === Elementor Header & Footer Builder ===
2
  Contributors: brainstormforce, Nikschavan
3
  Tags: elementor, header footer builder, header template, footer template, elementor widget, WordPress header, WordPress footer, elementor menu, website header design, footer design, blocks
4
  Donate link: https://www.paypal.me/BrainstormForce
5
  Requires at least: 4.4
6
  Requires PHP: 5.4
7
  Tested up to: 5.7
8
+ Stable tag: 1.6.0
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
15
 
16
  Have you ever imagined you could create your website header and footer with <a href="https://elementor.com/">Elementor</a> for FREE?
17
 
18
+ Elementor Header & Footer Builder is a simple yet powerful WordPress plugin that allows you to create a layout with Elementor and set it as
19
  - Header
20
  - Footer
21
  - Block (anywhere on the website)
58
 
59
  = WORKS WITH ALL THEMES =
60
 
61
+ Elementor Header & Footer Builder plugin works with all WordPress themes. Few of the themes have direct support while for few you can choose a method to add theme support.
62
 
63
+ In case you face any difficulty displaying header/footer, manually choose the theme support method. Visit Appearance > Elementor Header & Footer Builder > Theme Support. Select a method to suit your current theme and you are good to go!
64
 
65
  = STEPS TO USE THE PLUGIN =
66
 
67
+ Step 1 - Visit Appearance > Elementor Header & Footer Builder and click on the ‘Add New’.
68
 
69
  Step 2 - Select ‘Type of Template’ (header/footer/block). Set its display location and user roles.
70
 
82
 
83
  = HAVE YOU TRIED ASTRA WITH ELEMENTOR? =
84
 
85
+ Powering over 1+ Million WordPress websites, Astra is loved for the performance and ease-of-use it offers.
86
 
87
  People love Astra for -
88
 
95
  = SUPPORTED & ACTIVELY DEVELOPED =
96
  Need help with something? Have an issue to report? Visit [Plugin’s Forum](https://wordpress.org/plugins/header-footer-elementor/ "Plugin’s Forum").
97
 
98
+ [Get in touch](https://github.com/Nikschavan/header-footer-elementor "Elementor Header & Footer Builder on GitHub") with us on GitHub.
99
 
100
  Made with love at [Brainstorm Force](https://www.brainstormforce.com/?utm_source=wp-repo&utm_campaign=header-footer-elementor&utm_medium=description "Brainstorm Force")!
101
 
102
  == Installation ==
103
 
104
+ 1. Go to `Plugins -> Add New` and search for Elementor Header & Footer Builder.
105
  2. Activate the plugin through the 'Plugins' screen in WordPress.
106
+ 3. Go to `Appearance -> Elementor Header & Footer Builder` to build a header or footer layout using Elementor.
107
  4. After the layout is ready assign it as header or footer using the option `Select the type of template this is` (<a href="https://cloudup.com/clK2sPg9nXK+">screenshot</a>)
108
 
109
  == Frequently Asked Questions ==
110
 
111
  = How Does This Plugin Work? =
112
 
113
+ 1. Go to Appearance -> Elementor Header & Footer Builder to build a header or footer layout using Elementor.
114
  2. Click on “Add New” and design a template with Elementor.
115
  3. Once the template is ready, set is as a header/footer/block using options “Type of Template” (<a href="https://share.getcloudapp.com/geurz2JR">screenshot</a>).
116
  4.
117
+
118
  a) For Header/Footer - Select the target location with the option “Display On”. With this Header/Footer will be visible only on selected locations for selected “User Roles”.
119
+
120
+ b) For Custom Block - Just copy the shortcode and add it anywhere on the website. Your designed template will display automatically. Display conditions or user roles will not be effective with shortcodes.
121
 
122
  = Can You Create a Mobile Responsive Header/Footer Using This Plugin? =
123
 
124
+ Yes, You can create the mobile responsive layout of your header using the plugin.
125
 
126
+ The Elementor Header & Footer Builder plugin just gives you a container where you can completely design the header using Elementor Page Builder, So the process of creating the mobile responsive layout is exactly the same as you would create a responsive layout of your other Elementor page.
127
 
128
  Here is a documentation by Elementor Page builder which explains how you can create mobile responsive layouts using Elementor - [https://elementor.com/introducing-mobile-editing/](https://elementor.com/introducing-mobile-editing/)
129
  This same applies when you are creating your Header/Footer using this plugin.
130
 
131
  == Screenshots ==
132
 
133
+ 1. Go to Appearance -> Elementor Header & Footer Builder to create a new template.
134
  2. Assign template to be a header/footer and select display rules.
135
+ 3. 3. For blocks, select the type of template as Custom Blocks. You can copy the shortcode and use it anywhere.
136
  4. Methods to add Theme Support.
137
+ 5. Default widgets available with Elementor Header & Footer Builder.
138
 
139
  == Changelog ==
140
+ = 1.6.0 =
141
+ - New: Added Email Subscription and About Us section on the settings page.
142
+ - New: Renamed the plugin to Elementor Header & Footer Builder.
143
+ - Improvement: Added an option to hide + & - sign added by Twenty Twenty-One Theme.
144
+ - Fix: Navigation Menu - Border for dropdown is also applying to the menu trigger icon.
145
+ - Fix: Navigation Menu - Fix top distance option for dropdown adding a top-margin to sub-menu.
146
+ - Fix: Navigation Menu - Fixed active color issues in case of full-page anchor links used in nav links.
147
+ - Fix: Navigation Menu - Navigation schema not working.
148
+
149
+ = 1.5.9 =
150
  - Improvement: Added notice to update Elementor to v3.0.0 or higher
151
+ Elementor has deprecated few functions and namespaces with its v3.0.0. Following Elementor, our plugin too deprecates similar functions and namespaces. You will now require the Elementor v3.0.0 or higher.
152
  - Improvement: Elementor 3.2 Compatibility - Added Elementor Global Color and Typography scheme support.
153
+ - Fix: Navigation Menu - Last menu item button disappearing while switching from mobile to desktop.
154
  - Fix: Navigation Menu - Last menu item button alignment not working in RTL view.
155
 
156
  = 1.5.8 =
252
  - Fix: Flush permalinks on plugin update to Elementor error when trying to edit the Header/Footer.
253
 
254
  = 1.1.3 =
255
+ - Improvement: Allow changing the permalinks for the hfe templates (<a href="https://github.com/Nikschavan/header-footer-elementor/pull/162/">#162</a>)
256
  - Fix: WPML Translations do not work when using the Elementor Template as a shortcode. (<a href="https://github.com/Nikschavan/header-footer-elementor/pull/159/">#159</a>)
257
  - Fix: Page content appears over the header. (<a href="https://github.com/Nikschavan/header-footer-elementor/pull/150/">#150</a>)
258
  - Fix: Remove the deprecated function warning for shortcode functions. (Props <a href="https://github.com/hogash">@hogash</a> <a href="https://github.com/Nikschavan/header-footer-elementor/pull/145/">#145</a>)
264
  - Fix: Blank header being displayed when only footer is translated using WPML.
265
 
266
  = 1.1.0 =
267
+ - New: Rename plugin to be Header Footer & Blocks builder as now the blocks templates can be used as shortcodes.
268
  - New: Add templates before the footer for Astra Theme. Options for other themes will be coming soon.
269
  - New: Use templates (Blocks) anywhere in your content with the help of shortcodes.
270
  - Improvement: Improved the UI of the metabox for Header Footer post type.
282
  = 1.0.13 =
283
  - Fix: PHP Notices and errors due to WP_Query being called early when some plugins use filters inside WP_Query.
284
 
285
+ = 1.0.12 =
286
  - Fix: Compatibility with Elementor 2.0 changed canvas template path.
287
 
288
+ = 1.0.11 =
289
  - Load the CSS footer early in the page to avoid slow rendering of CSS.
290
  - Change the schema.org links to be https.
291
  - Fix: Added correct schema markup for the footer.
292
 
293
+ = 1.0.10 =
294
  - Load the header layout correctly in the <body> in Elementor canvas template.
295
  - Load the Elementor Pro CSS/JS files in <head>.
296
  - Provide more filters for the helper functions.
297
 
298
+ = 1.0.9 =
299
  - Add Support for WPML.
300
  - Updated the missing strings from the translations template.
301
 
302
+ = 1.0.8 =
303
  - Allow filters to override the WP_Query parameters when retreiving the Header / Footer template id.
304
 
305
  = 1.0.7 =
themes/default/class-hfe-fallback-theme-support.php DELETED
@@ -1,238 +0,0 @@
1
- <?php
2
- /**
3
- * HFE Fallback Theme Support.
4
- *
5
- * Add theme compatibility for all the WordPress themes.
6
- *
7
- * @since 1.2.0
8
- * @package hfe
9
- */
10
-
11
- namespace HFE\Themes;
12
-
13
- /**
14
- * Class HFE Theme Fallback support.
15
- *
16
- * @since 1.2.0
17
- */
18
- class HFE_Fallback_Theme_Support {
19
-
20
- /**
21
- * Constructor.
22
- *
23
- * @since 1.2.0
24
- */
25
- public function __construct() {
26
- $this->setup_fallback_support();
27
- add_action( 'admin_menu', [ $this, 'hfe_register_settings_page' ] );
28
- add_action( 'admin_init', [ $this, 'hfe_admin_init' ] );
29
- add_action( 'admin_head', [ $this, 'hfe_global_css' ] );
30
- add_filter( 'views_edit-elementor-hf', [ $this, 'hfe_settings' ], 10, 1 );
31
- }
32
-
33
- /**
34
- * Adds CSS to Hide the extra submenu added for the settings tab.
35
- *
36
- * @since 1.2.0
37
- * @return void
38
- */
39
- public function hfe_global_css() {
40
- wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER );
41
- }
42
-
43
- /**
44
- * Adds a tab in plugin submenu page.
45
- *
46
- * @since 1.2.0
47
- * @param string $views to add tab to current post type view.
48
- *
49
- * @return mixed
50
- */
51
- public function hfe_settings( $views ) {
52
- $this->hfe_tabs();
53
- return $views;
54
- }
55
-
56
-
57
- /**
58
- * Function for registering the settings api.
59
- *
60
- * @since 1.2.0
61
- * @return void
62
- */
63
- public function hfe_admin_init() {
64
- register_setting( 'hfe-plugin-options', 'hfe_compatibility_option' );
65
- add_settings_section( 'hfe-options', __( 'Add Theme Support', 'header-footer-elementor' ), [ $this, 'hfe_compatibility_callback' ], 'Settings' );
66
- add_settings_field( 'hfe-way', 'Methods to Add Theme Support', [ $this, 'hfe_compatibility_option_callback' ], 'Settings', 'hfe-options' );
67
- }
68
-
69
- /**
70
- * Call back function for the ssettings api function add_settings_section
71
- *
72
- * This function can be used to add description of the settings sections
73
- *
74
- * @since 1.2.0
75
- * @return void
76
- */
77
- public function hfe_compatibility_callback() {
78
- _e( 'The Elementor - Header, Footer & Blocks plugin need compatibility with your current theme to work smoothly.</br></br>Following are two methods that enable theme support for the plugin.</br></br>Method 1 is selected by default and that works fine almost will all themes. In case, you face any issue with the header or footer template, try choosing Method 2.', 'header-footer-elementor' );
79
- }
80
-
81
- /**
82
- * Call back function for the ssettings api function add_settings_field
83
- *
84
- * This function will contain the markup for the input feilds that we can add.
85
- *
86
- * @since 1.2.0
87
- * @return void
88
- */
89
- public function hfe_compatibility_option_callback() {
90
- $hfe_radio_button = get_option( 'hfe_compatibility_option', '1' );
91
- wp_enqueue_style( 'hfe-admin-style', HFE_URL . 'admin/assets/css/ehf-admin.css', [], HFE_VER );
92
- ?>
93
-
94
- <label>
95
- <input type="radio" name="hfe_compatibility_option" value= 1 <?php checked( $hfe_radio_button, 1 ); ?> > <div class="hfe_radio_options"><?php esc_html_e( ' Method 1 (Recommended)', 'header-footer-elementor' ); ?></div>
96
- <p class="description"><?php esc_html_e( 'This method replaces your theme\'s header (header.php) & footer (footer.php) template with plugin\'s custom templates.', 'header-footer-elementor' ); ?></p><br>
97
- </label>
98
- <label>
99
- <input type="radio" name="hfe_compatibility_option" value= 2 <?php checked( $hfe_radio_button, 2 ); ?> > <div class="hfe_radio_options"><?php esc_html_e( 'Method 2', 'header-footer-elementor' ); ?></div>
100
- <p class="description">
101
- <?php
102
- echo sprintf(
103
- esc_html( "This method hides your theme's header & footer template with CSS and displays custom templates from the plugin.", 'header-footer-elementor' ),
104
- '<br>'
105
- );
106
- ?>
107
- </p><br>
108
- </label>
109
- <p class="description">
110
- <?php
111
- echo sprintf(
112
- _e( 'Sometimes above methods might not work well with your theme, in this case, contact your theme author and request them to add support for the <a href="https://github.com/Nikschavan/header-footer-elementor/wiki/Adding-Header-Footer-Elementor-support-for-your-theme">plugin.</>', 'header-footer-elementor' ),
113
- '<br>'
114
- );
115
- ?>
116
- </p>
117
-
118
- <?php
119
- }
120
-
121
- /**
122
- * Setup Theme Support.
123
- *
124
- * @since 1.2.0
125
- * @return void
126
- */
127
- public function setup_fallback_support() {
128
- $hfe_compatibility_option = get_option( 'hfe_compatibility_option', '1' );
129
-
130
- if ( '1' === $hfe_compatibility_option ) {
131
- require HFE_DIR . 'themes/default/class-hfe-default-compat.php';
132
- } elseif ( '2' === $hfe_compatibility_option ) {
133
- require HFE_DIR . 'themes/default/class-global-theme-compatibility.php';
134
- }
135
- }
136
-
137
- /**
138
- * Show a settings page incase of unsupported theme.
139
- *
140
- * @since 1.2.0
141
- *
142
- * @return void
143
- */
144
- public function hfe_register_settings_page() {
145
- add_submenu_page(
146
- 'themes.php',
147
- __( 'Settings', 'header-footer-elementor' ),
148
- __( 'Settings', 'header-footer-elementor' ),
149
- 'manage_options',
150
- 'hfe-settings',
151
- [ $this, 'hfe_settings_page' ]
152
- );
153
- }
154
-
155
- /**
156
- * Settings page.
157
- *
158
- * Call back function for add submenu page function.
159
- *
160
- * @since 1.2.0
161
- */
162
- public function hfe_settings_page() {
163
- echo '<h1 class="hfe-heading-inline">';
164
- esc_attr_e( 'Elementor - Header, Footer & Blocks ', 'header-footer-elementor' );
165
- echo '</h1>';
166
-
167
- ?>
168
- <h2 class="nav-tab-wrapper">
169
- <?php
170
- $tabs = [
171
- 'hfe_templates' => [
172
- 'name' => __( 'All Templates', 'header-footer-elementor' ),
173
- 'url' => admin_url( 'edit.php?post_type=elementor-hf' ),
174
- ],
175
- 'hfe_settings' => [
176
- 'name' => __( 'Theme Support', 'header-footer-elementor' ),
177
- 'url' => admin_url( 'themes.php?page=hfe-settings' ),
178
- ],
179
- ];
180
- $active_tab = 'hfe-settings' == isset( $_GET['page'] ) && $_GET['page'] ? 'hfe_settings' : 'hfe_templates';
181
- foreach ( $tabs as $tab_id => $tab ) {
182
- $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
183
- echo '<a href="' . esc_url( $tab['url'] ) . '" class="nav-tab' . $active . '">';
184
- echo esc_html( $tab['name'] );
185
- echo '</a>';
186
- }
187
- ?>
188
- </h2>
189
- <br />
190
- <?php
191
- $hfe_radio_button = get_option( 'hfe_compatibility_option', '1' );
192
- ?>
193
- <form action="options.php" method="post">
194
- <?php settings_fields( 'hfe-plugin-options' ); ?>
195
- <?php do_settings_sections( 'Settings' ); ?>
196
- <?php submit_button(); ?>
197
- </form></div>
198
- <?php
199
- }
200
-
201
- /**
202
- * Function for adding tabs
203
- *
204
- * @since 1.2.0
205
- * @return void
206
- */
207
- public function hfe_tabs() {
208
- ?>
209
- <h2 class="nav-tab-wrapper">
210
- <?php
211
- $tabs = [
212
- 'hfe_templates' => [
213
- 'name' => __( 'All templates', 'header-footer-elementor' ),
214
- 'url' => admin_url( 'edit.php?post_type=elementor-hf' ),
215
- ],
216
- 'hfe_settings' => [
217
- 'name' => __( 'Theme Support', 'header-footer-elementor' ),
218
- 'url' => admin_url( 'themes.php?page=hfe-settings' ),
219
- ],
220
- ];
221
- $active_tab = 'hfe-settings' == isset( $_GET['page'] ) && $_GET['page'] ? 'hfe_settings' : 'hfe_templates';
222
- foreach ( $tabs as $tab_id => $tab ) {
223
- $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
224
-
225
- echo '<a href="' . esc_url( $tab['url'] ) . '" class="nav-tab' . esc_attr( $active ) . '">';
226
- echo esc_html( $tab['name'] );
227
- echo '</a>';
228
- }
229
-
230
- ?>
231
- </h2>
232
- <br />
233
- <?php
234
- }
235
-
236
- }
237
-
238
- new HFE_Fallback_Theme_Support();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
themes/hello-elementor/class-hfe-hello-elementor-compat.php CHANGED
@@ -24,7 +24,9 @@ class HFE_Hello_Elementor_Compat {
24
  if ( ! isset( self::$instance ) ) {
25
  self::$instance = new HFE_Hello_Elementor_Compat();
26
 
27
- require_once HFE_DIR . 'themes/default/class-hfe-default-compat.php';
 
 
28
  }
29
 
30
  return self::$instance;
24
  if ( ! isset( self::$instance ) ) {
25
  self::$instance = new HFE_Hello_Elementor_Compat();
26
 
27
+ if ( ! class_exists( 'HFE_Default_Compat' ) ) {
28
+ require_once HFE_DIR . 'themes/default/class-hfe-default-compat.php';
29
+ }
30
  }
31
 
32
  return self::$instance;