Header Footer Elementor - Version 1.6.3

Version Description

  • Improvement: WordPress 5.8 compatibility.
  • Improvement: Elementor 3.3 compatibility.
Download this release

Release Info

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

Code changes from version 1.6.2 to 1.6.3

header-footer-elementor.php CHANGED
@@ -7,14 +7,14 @@
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
- * Version: 1.6.2
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.2' );
18
  define( 'HFE_FILE', __FILE__ );
19
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
20
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
7
  * Author URI: https://www.brainstormforce.com/
8
  * Text Domain: header-footer-elementor
9
  * Domain Path: /languages
10
+ * Version: 1.6.3
11
+ * Elementor tested up to: 3.3.0
12
+ * Elementor Pro tested up to: 3.3.2
13
  *
14
  * @package header-footer-elementor
15
  */
16
 
17
+ define( 'HFE_VER', '1.6.3' );
18
  define( 'HFE_FILE', __FILE__ );
19
  define( 'HFE_DIR', plugin_dir_path( __FILE__ ) );
20
  define( 'HFE_URL', plugins_url( '/', __FILE__ ) );
inc/class-header-footer-elementor.php CHANGED
@@ -355,7 +355,7 @@ class Header_Footer_Elementor {
355
  }
356
 
357
  // Load the Admin Notice Class.
358
- require_once HFE_DIR . 'inc/lib/notices/class-astra-notices.php';
359
 
360
  // Load Target rules.
361
  require_once HFE_DIR . 'inc/lib/target-rule/class-astra-target-rules-fields.php';
355
  }
356
 
357
  // Load the Admin Notice Class.
358
+ require_once HFE_DIR . 'inc/lib/astra-notices/class-astra-notices.php';
359
 
360
  // Load Target rules.
361
  require_once HFE_DIR . 'inc/lib/target-rule/class-astra-target-rules-fields.php';
inc/lib/{notices → astra-notices}/class-astra-notices.php RENAMED
@@ -1,18 +1,11 @@
1
  <?php
2
  /**
3
- * Astra Sites Notices
4
  *
5
- * Closing notice on click on `astra-notice-close` class.
6
  *
7
- * If notice has the data attribute `data-repeat-notice-after="%2$s"` then notice close for that SPECIFIC TIME.
8
- * If notice has NO data attribute `data-repeat-notice-after="%2$s"` then notice close for the CURRENT USER FOREVER.
9
- *
10
- * > Create custom close notice link in the notice markup. E.g.
11
- * `<a href="#" data-repeat-notice-after="<?php echo MONTH_IN_SECONDS; ?>" class="astra-notice-close">`
12
- * It close the notice for 30 days.
13
- *
14
- * @package Astra Sites
15
- * @since 1.4.0
16
  */
17
 
18
  if ( ! defined( 'ABSPATH' ) ) {
@@ -24,7 +17,7 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
24
  /**
25
  * Astra_Notices
26
  *
27
- * @since 1.4.0
28
  */
29
  class Astra_Notices {
30
 
@@ -33,16 +26,16 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
33
  *
34
  * @access private
35
  * @var array Notices.
36
- * @since 1.4.0
37
  */
38
- private static $version = '1.1.5';
39
 
40
  /**
41
  * Notices
42
  *
43
  * @access private
44
  * @var array Notices.
45
- * @since 1.4.0
46
  */
47
  private static $notices = array();
48
 
@@ -51,14 +44,14 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
51
  *
52
  * @access private
53
  * @var object Class object.
54
- * @since 1.4.0
55
  */
56
  private static $instance;
57
 
58
  /**
59
  * Initiator
60
  *
61
- * @since 1.4.0
62
  * @return object initialized object of class.
63
  */
64
  public static function get_instance() {
@@ -71,7 +64,7 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
71
  /**
72
  * Constructor
73
  *
74
- * @since 1.4.0
75
  */
76
  public function __construct() {
77
  add_action( 'admin_notices', array( $this, 'show_notices' ), 30 );
@@ -83,10 +76,10 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
83
  /**
84
  * Filters and Returns a list of allowed tags and attributes for a given context.
85
  *
86
- * @param Array $allowedposttags Array of allowed tags.
87
- * @param String $context Context type (explicit).
88
- * @since 1.4.0
89
- * @return Array
90
  */
91
  public function add_data_attributes( $allowedposttags, $context ) {
92
  $allowedposttags['a']['data-repeat-notice-after'] = true;
@@ -97,7 +90,7 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
97
  /**
98
  * Add Notice.
99
  *
100
- * @since 1.4.0
101
  * @param array $args Notice arguments.
102
  * @return void
103
  */
@@ -108,20 +101,27 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
108
  /**
109
  * Dismiss Notice.
110
  *
111
- * @since 1.4.0
112
  * @return void
113
  */
114
  public function dismiss_notice() {
115
  $notice_id = ( isset( $_POST['notice_id'] ) ) ? sanitize_key( $_POST['notice_id'] ) : '';
116
  $repeat_notice_after = ( isset( $_POST['repeat_notice_after'] ) ) ? absint( $_POST['repeat_notice_after'] ) : '';
117
  $nonce = ( isset( $_POST['nonce'] ) ) ? sanitize_key( $_POST['nonce'] ) : '';
 
 
 
 
 
 
118
 
119
  if ( false === wp_verify_nonce( $nonce, 'astra-notices' ) ) {
120
- wp_send_json_error( _e( 'WordPress Nonce not validated.', 'header-footer-elementor' ) );
121
  }
122
 
123
  // Valid inputs?
124
  if ( ! empty( $notice_id ) ) {
 
125
  if ( ! empty( $repeat_notice_after ) ) {
126
  set_transient( $notice_id, true, $repeat_notice_after );
127
  } else {
@@ -137,11 +137,11 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
137
  /**
138
  * Enqueue Scripts.
139
  *
140
- * @since 1.4.0
141
  * @return void
142
  */
143
  public function enqueue_scripts() {
144
- wp_register_script( 'astra-notices', self::_get_uri() . 'notices.js', array( 'jquery' ), self::$version, true );
145
  wp_localize_script(
146
  'astra-notices',
147
  'astraNotices',
@@ -152,28 +152,64 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
152
  }
153
 
154
  /**
155
- * Rating priority sort
 
156
  *
157
  * @since 1.5.2
158
- * @param array $array1 array one.
159
- * @param array $array2 array two.
160
  * @return array
161
  */
162
- public function sort_notices( $array1, $array2 ) {
163
- if ( ! isset( $array1['priority'] ) ) {
164
- $array1['priority'] = 10;
165
  }
166
- if ( ! isset( $array2['priority'] ) ) {
167
- $array2['priority'] = 10;
168
  }
169
 
170
- return $array1['priority'] - $array2['priority'];
 
 
 
 
 
 
 
 
 
 
 
 
171
  }
172
 
173
  /**
174
- * Notice Types
 
 
175
  *
176
- * @since 1.4.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  * @return void
178
  */
179
  public function show_notices() {
@@ -188,19 +224,22 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
188
  'priority' => 10, // Priority of the notice.
189
  'display-with-other-notices' => true, // Should the notice be displayed if other notices are being displayed from Astra_Notices.
190
  'is_dismissible' => true,
 
191
  );
192
 
193
  // Count for the notices that are rendered.
194
  $notices_displayed = 0;
 
195
 
196
- // sort the array with priority.
197
- usort( self::$notices, array( $this, 'sort_notices' ) );
198
-
199
- foreach ( self::$notices as $key => $notice ) {
200
  $notice = wp_parse_args( $notice, $defaults );
201
 
202
- $notice['id'] = self::get_notice_id( $notice, $key );
 
 
 
203
 
 
204
  $notice['classes'] = self::get_wrap_classes( $notice );
205
 
206
  // Notices visible after transient expire.
@@ -212,17 +251,19 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
212
  }
213
 
214
  if ( self::is_expired( $notice ) ) {
 
215
  self::markup( $notice );
216
  ++$notices_displayed;
217
  }
218
  }
219
  }
 
220
  }
221
 
222
  /**
223
- * Markup Notice.
224
  *
225
- * @since 1.4.0
226
  * @param array $notice Notice markup.
227
  * @return void
228
  */
@@ -248,9 +289,9 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
248
  }
249
 
250
  /**
251
- * Notice classes.
252
  *
253
- * @since 1.4.0
254
  *
255
  * @param array $notice Notice arguments.
256
  * @return array Notice wrapper classes.
@@ -271,13 +312,13 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
271
  }
272
 
273
  /**
274
- * Get Notice ID.
275
  *
276
- * @since 1.4.0
277
  *
278
  * @param array $notice Notice arguments.
279
- * @param int $key Notice array index.
280
- * @return string Notice id.
281
  */
282
  private static function get_notice_id( $notice, $key ) {
283
  if ( isset( $notice['id'] ) && ! empty( $notice['id'] ) ) {
@@ -288,9 +329,9 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
288
  }
289
 
290
  /**
291
- * Is notice expired?
292
  *
293
- * @since 1.4.0
294
  *
295
  * @param array $notice Notice arguments.
296
  * @return boolean
@@ -299,7 +340,9 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
299
  $transient_status = get_transient( $notice['id'] );
300
 
301
  if ( false === $transient_status ) {
 
302
  if ( isset( $notice['display-notice-after'] ) && false !== $notice['display-notice-after'] ) {
 
303
  if ( 'delayed-notice' !== get_user_meta( get_current_user_id(), $notice['id'], true ) &&
304
  'notice-dismissed' !== get_user_meta( get_current_user_id(), $notice['id'], true ) ) {
305
  set_transient( $notice['id'], 'delayed-notice', $notice['display-notice-after'] );
@@ -321,24 +364,19 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
321
  }
322
 
323
  /**
324
- * Get URI
325
  *
326
  * @return mixed URL.
327
  */
328
- public static function _get_uri() {
329
- $path = wp_normalize_path( dirname( __FILE__ ) );
330
- $theme_dir = wp_normalize_path( get_template_directory() );
331
- $plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
332
 
333
  if ( strpos( $path, $theme_dir ) !== false ) {
334
  return trailingslashit( get_template_directory_uri() . str_replace( $theme_dir, '', $path ) );
335
- } elseif ( strpos( $path, $plugin_dir ) !== false ) {
336
- return plugin_dir_url( __FILE__ );
337
- } elseif ( strpos( $path, dirname( plugin_basename( __FILE__ ) ) ) !== false ) {
338
  return plugin_dir_url( __FILE__ );
339
  }
340
-
341
- return;
342
  }
343
 
344
  }
@@ -347,4 +385,5 @@ if ( ! class_exists( 'Astra_Notices' ) ) :
347
  * Kicking this off by calling 'get_instance()' method
348
  */
349
  Astra_Notices::get_instance();
 
350
  endif;
1
  <?php
2
  /**
3
+ * Astra Notices
4
  *
5
+ * An easy to use PHP Library to add dismissible admin notices in the WordPress admin.
6
  *
7
+ * @package Astra Notices
8
+ * @since 1.0.0
 
 
 
 
 
 
 
9
  */
10
 
11
  if ( ! defined( 'ABSPATH' ) ) {
17
  /**
18
  * Astra_Notices
19
  *
20
+ * @since 1.0.0
21
  */
22
  class Astra_Notices {
23
 
26
  *
27
  * @access private
28
  * @var array Notices.
29
+ * @since 1.0.0
30
  */
31
+ private static $version = '1.1.8';
32
 
33
  /**
34
  * Notices
35
  *
36
  * @access private
37
  * @var array Notices.
38
+ * @since 1.0.0
39
  */
40
  private static $notices = array();
41
 
44
  *
45
  * @access private
46
  * @var object Class object.
47
+ * @since 1.0.0
48
  */
49
  private static $instance;
50
 
51
  /**
52
  * Initiator
53
  *
54
+ * @since 1.0.0
55
  * @return object initialized object of class.
56
  */
57
  public static function get_instance() {
64
  /**
65
  * Constructor
66
  *
67
+ * @since 1.0.0
68
  */
69
  public function __construct() {
70
  add_action( 'admin_notices', array( $this, 'show_notices' ), 30 );
76
  /**
77
  * Filters and Returns a list of allowed tags and attributes for a given context.
78
  *
79
+ * @param array $allowedposttags array of allowed tags.
80
+ * @param string $context Context type (explicit).
81
+ * @since 1.0.0
82
+ * @return array
83
  */
84
  public function add_data_attributes( $allowedposttags, $context ) {
85
  $allowedposttags['a']['data-repeat-notice-after'] = true;
90
  /**
91
  * Add Notice.
92
  *
93
+ * @since 1.0.0
94
  * @param array $args Notice arguments.
95
  * @return void
96
  */
101
  /**
102
  * Dismiss Notice.
103
  *
104
+ * @since 1.0.0
105
  * @return void
106
  */
107
  public function dismiss_notice() {
108
  $notice_id = ( isset( $_POST['notice_id'] ) ) ? sanitize_key( $_POST['notice_id'] ) : '';
109
  $repeat_notice_after = ( isset( $_POST['repeat_notice_after'] ) ) ? absint( $_POST['repeat_notice_after'] ) : '';
110
  $nonce = ( isset( $_POST['nonce'] ) ) ? sanitize_key( $_POST['nonce'] ) : '';
111
+ $notice = $this->get_notice_by_id( $notice_id );
112
+ $capability = isset( $notice['capability'] ) ? $notice['capability'] : 'manage_options';
113
+
114
+ if ( ! apply_filters( 'astra_notices_user_cap_check', current_user_can( $capability ) ) ) {
115
+ return;
116
+ }
117
 
118
  if ( false === wp_verify_nonce( $nonce, 'astra-notices' ) ) {
119
+ wp_send_json_error( esc_html_e( 'WordPress Nonce not validated.', 'header-footer-elementor' ) );
120
  }
121
 
122
  // Valid inputs?
123
  if ( ! empty( $notice_id ) ) {
124
+
125
  if ( ! empty( $repeat_notice_after ) ) {
126
  set_transient( $notice_id, true, $repeat_notice_after );
127
  } else {
137
  /**
138
  * Enqueue Scripts.
139
  *
140
+ * @since 1.0.0
141
  * @return void
142
  */
143
  public function enqueue_scripts() {
144
+ wp_register_script( 'astra-notices', self::get_url() . 'notices.js', array( 'jquery' ), self::$version, true );
145
  wp_localize_script(
146
  'astra-notices',
147
  'astraNotices',
152
  }
153
 
154
  /**
155
+ * Sort the notices based on the given priority of the notice.
156
+ * This function is called from usort()
157
  *
158
  * @since 1.5.2
159
+ * @param array $notice_1 First notice.
160
+ * @param array $notice_2 Second Notice.
161
  * @return array
162
  */
163
+ public function sort_notices( $notice_1, $notice_2 ) {
164
+ if ( ! isset( $notice_1['priority'] ) ) {
165
+ $notice_1['priority'] = 10;
166
  }
167
+ if ( ! isset( $notice_2['priority'] ) ) {
168
+ $notice_2['priority'] = 10;
169
  }
170
 
171
+ return $notice_1['priority'] - $notice_2['priority'];
172
+ }
173
+
174
+ /**
175
+ * Get all registered notices.
176
+ * Since v1.1.8 it is recommended to register the notices on
177
+ *
178
+ * @return array|null
179
+ */
180
+ private function get_notices() {
181
+ usort( self::$notices, array( $this, 'sort_notices' ) );
182
+
183
+ return self::$notices;
184
  }
185
 
186
  /**
187
+ * Get notice by notice_id
188
+ *
189
+ * @param string $notice_id Notice id.
190
  *
191
+ * @return array notice based on the notice id.
192
+ */
193
+ private function get_notice_by_id( $notice_id ) {
194
+ if ( empty( $notice_id ) ) {
195
+ return array();
196
+ }
197
+
198
+ $notices = $this->get_notices();
199
+ $notice = wp_list_filter(
200
+ $notices,
201
+ array(
202
+ 'id' => $notice_id,
203
+ )
204
+ );
205
+
206
+ return ! empty( $notice ) ? $notice[0] : array();
207
+ }
208
+
209
+ /**
210
+ * Display the notices in the WordPress admin.
211
+ *
212
+ * @since 1.0.0
213
  * @return void
214
  */
215
  public function show_notices() {
224
  'priority' => 10, // Priority of the notice.
225
  'display-with-other-notices' => true, // Should the notice be displayed if other notices are being displayed from Astra_Notices.
226
  'is_dismissible' => true,
227
+ 'capability' => 'manage_options', // User capability - This capability is required for the current user to see this notice.
228
  );
229
 
230
  // Count for the notices that are rendered.
231
  $notices_displayed = 0;
232
+ $notices = $this->get_notices();
233
 
234
+ foreach ( $notices as $key => $notice ) {
 
 
 
235
  $notice = wp_parse_args( $notice, $defaults );
236
 
237
+ // Show notices only for users with `manage_options` cap.
238
+ if ( ! current_user_can( $notice['capability'] ) ) {
239
+ continue;
240
+ }
241
 
242
+ $notice['id'] = self::get_notice_id( $notice, $key );
243
  $notice['classes'] = self::get_wrap_classes( $notice );
244
 
245
  // Notices visible after transient expire.
251
  }
252
 
253
  if ( self::is_expired( $notice ) ) {
254
+
255
  self::markup( $notice );
256
  ++$notices_displayed;
257
  }
258
  }
259
  }
260
+
261
  }
262
 
263
  /**
264
+ * Render a notice.
265
  *
266
+ * @since 1.0.0
267
  * @param array $notice Notice markup.
268
  * @return void
269
  */
289
  }
290
 
291
  /**
292
+ * Get wrapper classes for a notice.
293
  *
294
+ * @since 1.0.0
295
  *
296
  * @param array $notice Notice arguments.
297
  * @return array Notice wrapper classes.
312
  }
313
 
314
  /**
315
+ * Get HTML ID for a given notice.
316
  *
317
+ * @since 1.0.0
318
  *
319
  * @param array $notice Notice arguments.
320
+ * @param int $key Notice array index.
321
+ * @return string HTML if for the notice.
322
  */
323
  private static function get_notice_id( $notice, $key ) {
324
  if ( isset( $notice['id'] ) && ! empty( $notice['id'] ) ) {
329
  }
330
 
331
  /**
332
+ * Check if the notice is expires.
333
  *
334
+ * @since 1.0.0
335
  *
336
  * @param array $notice Notice arguments.
337
  * @return boolean
340
  $transient_status = get_transient( $notice['id'] );
341
 
342
  if ( false === $transient_status ) {
343
+
344
  if ( isset( $notice['display-notice-after'] ) && false !== $notice['display-notice-after'] ) {
345
+
346
  if ( 'delayed-notice' !== get_user_meta( get_current_user_id(), $notice['id'], true ) &&
347
  'notice-dismissed' !== get_user_meta( get_current_user_id(), $notice['id'], true ) ) {
348
  set_transient( $notice['id'], 'delayed-notice', $notice['display-notice-after'] );
364
  }
365
 
366
  /**
367
+ * Get base URL for the astra-notices.
368
  *
369
  * @return mixed URL.
370
  */
371
+ public static function get_url() {
372
+ $path = wp_normalize_path( dirname( __FILE__ ) );
373
+ $theme_dir = wp_normalize_path( get_template_directory() );
 
374
 
375
  if ( strpos( $path, $theme_dir ) !== false ) {
376
  return trailingslashit( get_template_directory_uri() . str_replace( $theme_dir, '', $path ) );
377
+ } else {
 
 
378
  return plugin_dir_url( __FILE__ );
379
  }
 
 
380
  }
381
 
382
  }
385
  * Kicking this off by calling 'get_instance()' method
386
  */
387
  Astra_Notices::get_instance();
388
+
389
  endif;
inc/lib/{notices → astra-notices}/notices.js RENAMED
@@ -80,9 +80,9 @@
80
  type: 'POST',
81
  data: {
82
  action : 'astra-notice-dismiss',
 
83
  notice_id : notice_id,
84
  repeat_notice_after : parseInt( repeat_notice_after ),
85
- nonce : astraNotices._notice_nonce
86
  },
87
  });
88
 
@@ -92,4 +92,4 @@
92
  $( function() {
93
  AstraNotices.init();
94
  } );
95
- } )( jQuery );
80
  type: 'POST',
81
  data: {
82
  action : 'astra-notice-dismiss',
83
+ nonce : astraNotices._notice_nonce,
84
  notice_id : notice_id,
85
  repeat_notice_after : parseInt( repeat_notice_after ),
 
86
  },
87
  });
88
 
92
  $( function() {
93
  AstraNotices.init();
94
  } );
95
+ } )( jQuery );
languages/header-footer-elementor.pot CHANGED
@@ -2,10 +2,10 @@
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.2\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/header-footer-elementor\n"
8
- "POT-Creation-Date: 2021-06-30 09:50:46+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -585,7 +585,7 @@ msgstr ""
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 ""
591
 
@@ -978,7 +978,6 @@ msgstr ""
978
  #: inc/widgets-manager/widgets/class-search-button.php:251
979
  #: inc/widgets-manager/widgets/class-search-button.php:418
980
  #: inc/widgets-manager/widgets/class-search-button.php:502
981
- #: inc/widgets-manager/widgets/class-search-button.php:698
982
  #: inc/widgets-manager/widgets/class-site-logo.php:581
983
  msgid "Text Color"
984
  msgstr ""
@@ -987,6 +986,7 @@ msgstr ""
987
  #: inc/widgets-manager/widgets/class-cart.php:412
988
  #: inc/widgets-manager/widgets/class-page-title.php:375
989
  #: inc/widgets-manager/widgets/class-search-button.php:658
 
990
  #: inc/widgets-manager/widgets/class-site-tagline.php:233
991
  #: inc/widgets-manager/widgets/class-site-title.php:364
992
  msgid "Icon Color"
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.3\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/header-footer-elementor\n"
8
+ "POT-Creation-Date: 2021-07-14 06:01:07+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
585
  msgid "Go to HFE Settings page"
586
  msgstr ""
587
 
588
+ #: inc/lib/astra-notices/class-astra-notices.php:119
589
  msgid "WordPress Nonce not validated."
590
  msgstr ""
591
 
978
  #: inc/widgets-manager/widgets/class-search-button.php:251
979
  #: inc/widgets-manager/widgets/class-search-button.php:418
980
  #: inc/widgets-manager/widgets/class-search-button.php:502
 
981
  #: inc/widgets-manager/widgets/class-site-logo.php:581
982
  msgid "Text Color"
983
  msgstr ""
986
  #: inc/widgets-manager/widgets/class-cart.php:412
987
  #: inc/widgets-manager/widgets/class-page-title.php:375
988
  #: inc/widgets-manager/widgets/class-search-button.php:658
989
+ #: inc/widgets-manager/widgets/class-search-button.php:698
990
  #: inc/widgets-manager/widgets/class-site-tagline.php:233
991
  #: inc/widgets-manager/widgets/class-site-title.php:364
992
  msgid "Icon Color"
readme.txt CHANGED
@@ -4,8 +4,8 @@ Tags: elementor, header footer builder, header template, footer template, elemen
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.2
8
- Stable tag: 1.6.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -137,6 +137,10 @@ This same applies when you are creating your Header/Footer using this plugin.
137
  5. Default widgets available with Elementor Header & Footer Builder.
138
 
139
  == Changelog ==
 
 
 
 
140
  = 1.6.2 =
141
  - Improvement: Copyright - Added custom link attributes support.
142
  - Improvement: Page Title - Added custom link attributes support.
4
  Donate link: https://www.paypal.me/BrainstormForce
5
  Requires at least: 4.4
6
  Requires PHP: 5.4
7
+ Tested up to: 5.8
8
+ Stable tag: 1.6.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
137
  5. Default widgets available with Elementor Header & Footer Builder.
138
 
139
  == Changelog ==
140
+ = 1.6.3 =
141
+ - Improvement: WordPress 5.8 compatibility.
142
+ - Improvement: Elementor 3.3 compatibility.
143
+
144
  = 1.6.2 =
145
  - Improvement: Copyright - Added custom link attributes support.
146
  - Improvement: Page Title - Added custom link attributes support.