WP Mobile Menu - Version 2.8.1.7

Version Description

  • New! - Visual tool to identify menus and other elements to hide
Download this release

Release Info

Developer takanakui
Plugin Icon 128x128 WP Mobile Menu
Version 2.8.1.7
Comparing to
See all releases

Code changes from version 2.8.1.6 to 2.8.1.7

includes/class-wp-mobile-menu-core.php CHANGED
@@ -334,8 +334,8 @@ class WP_Mobile_Menu_Core
334
  $right_menu_content = apply_filters( 'mm_right_menu_filter', $right_menu_content );
335
  }
336
 
337
- $header_elements_order = array( 'left-menu', 'logo', 'right-menu' );
338
  $language_selector = '';
 
339
  $header_output = '';
340
  if ( $titan->getOption( 'enable_left_menu' ) ) {
341
  $header_output = '<div class="mobmenul-container">';
@@ -666,6 +666,21 @@ class WP_Mobile_Menu_Core
666
  return $output;
667
  }
668
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
669
  /**
670
  * Register the Mobile Menus.
671
  */
334
  $right_menu_content = apply_filters( 'mm_right_menu_filter', $right_menu_content );
335
  }
336
 
 
337
  $language_selector = '';
338
+ $header_elements_order = array( 'left-menu', 'logo', 'right-menu' );
339
  $header_output = '';
340
  if ( $titan->getOption( 'enable_left_menu' ) ) {
341
  $header_output = '<div class="mobmenul-container">';
666
  return $output;
667
  }
668
 
669
+ /**
670
+ * Load the Find elements tool.
671
+ */
672
+ public function find_elements_mobmenu()
673
+ {
674
+
675
+ if ( isset( $_GET['mobmenu-action'] ) ) {
676
+ $mobmenu_action = $_GET['mobmenu-action'];
677
+ if ( $mobmenu_action == 'find-element' ) {
678
+ add_filter( 'show_admin_bar', '__return_false' );
679
+ }
680
+ }
681
+
682
+ }
683
+
684
  /**
685
  * Register the Mobile Menus.
686
  */
includes/class-wp-mobile-menu-options.php CHANGED
@@ -267,17 +267,17 @@ class WP_Mobile_Menu_Options
267
  'name' => __( 'Hide Original Theme Menu', 'mobile-menu' ),
268
  'type' => 'heading',
269
  ) );
270
- $general_tab->createOption( array(
271
- 'type' => 'note',
272
- 'desc' => __( 'If you need help identifying the correct elements just create a new ticket in our <a href="https://www.wpmobilemenu.com/support-contact/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=hide_original_menu_help" target="_blank">support page</a> with your site url and a screenshot of the element you want to hide. We reply fast.', 'mobile-menu' ),
273
- ) );
274
  // Hide Html Elements.
275
  $general_tab->createOption( array(
276
  'name' => __( 'Hide Elements', 'mobile-menu' ),
277
  'id' => 'hide_elements',
278
  'type' => 'text',
279
  'default' => '',
280
- 'desc' => __( '<p>This will hide the desired elements when the Mobile menu is trigerred at the chosen width.</p><p>You can use css class or IDs.</p><p> Example: .menu , #nav</p>', 'mobile-menu' ),
 
 
 
 
281
  ) );
282
  $general_tab->createOption( array(
283
  'name' => __( 'Hide elements by default', 'mobile-menu' ),
@@ -301,6 +301,7 @@ class WP_Mobile_Menu_Options
301
  '14' => '.fusion-header',
302
  '15' => '#site-header',
303
  '16' => '.elementor-widget-nav-menu',
 
304
  ),
305
  'default' => array(
306
  '1',
@@ -318,7 +319,8 @@ class WP_Mobile_Menu_Options
318
  '13',
319
  '14',
320
  '15',
321
- '16'
 
322
  ),
323
  ) );
324
  $general_tab->createOption( array(
267
  'name' => __( 'Hide Original Theme Menu', 'mobile-menu' ),
268
  'type' => 'heading',
269
  ) );
 
 
 
 
270
  // Hide Html Elements.
271
  $general_tab->createOption( array(
272
  'name' => __( 'Hide Elements', 'mobile-menu' ),
273
  'id' => 'hide_elements',
274
  'type' => 'text',
275
  'default' => '',
276
+ 'desc' => __( '<p>Use the Find element button and click in the elements you want to hide. When you are done hit the Save Changes button.<p> Example: .menu , #nav</p>', 'mobile-menu' ),
277
+ ) );
278
+ $general_tab->createOption( array(
279
+ 'type' => 'note',
280
+ 'desc' => __( 'If you somehow couldn\'t find the necessary elements using the visual tool to pick elements just create a new ticket in our <a href="https://www.wpmobilemenu.com/support-contact/?utm_source=wprepo-dash&utm_medium=user%20website&utm_campaign=hide_original_menu_help" target="_blank">support page</a> with your site url and a screenshot of the element you want to hide. We reply fast.', 'mobile-menu' ),
281
  ) );
282
  $general_tab->createOption( array(
283
  'name' => __( 'Hide elements by default', 'mobile-menu' ),
301
  '14' => '.fusion-header',
302
  '15' => '#site-header',
303
  '16' => '.elementor-widget-nav-menu',
304
+ '17' => '.fl-nav',
305
  ),
306
  'default' => array(
307
  '1',
319
  '13',
320
  '14',
321
  '15',
322
+ '16',
323
+ '17'
324
  ),
325
  ) );
326
  $general_tab->createOption( array(
includes/css/mobmenu-admin.css CHANGED
@@ -619,4 +619,22 @@ td.second.tf-multicheck-pages fieldset {
619
  line-height: 30px;
620
  font-size: 30px;
621
  color: #ddd;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
622
  }
619
  line-height: 30px;
620
  font-size: 30px;
621
  color: #ddd;
622
+ }
623
+ .mobmenu-find-element {
624
+ border: 1px solid #2d7ab0;
625
+ padding: 5px;
626
+ margin-left: 10px;
627
+ color: #fff;
628
+ background: #168b1f;
629
+ text-decoration: none;
630
+ cursor: pointer;
631
+ }
632
+ .mobmenu-preview-iframe {
633
+ position: fixed;
634
+ top: 100px;
635
+ right: 30px;
636
+ display: none;
637
+ background: #fefdfd;
638
+ border: 15px solid #222020;
639
+ border-radius: 25px;
640
  }
includes/css/mobmenu.css CHANGED
@@ -288,3 +288,71 @@ h4.no-mobile-menu a {
288
  .mobmenu-content .widget_media_image {
289
  text-align: center;
290
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  .mobmenu-content .widget_media_image {
289
  text-align: center;
290
  }
291
+
292
+ #_pick_tips_content {
293
+ border: 0;
294
+ position: fixed;
295
+ right: 5px;
296
+ top: 5px;
297
+ z-index: 99999999;
298
+ width: 300px;
299
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2),
300
+ 0 2px 2px 0 rgba(0, 0, 0, .14),
301
+ 0 1px 5px 0 rgba(0, 0, 0, .12);
302
+ border-radius: 4px;
303
+ background-color: rgba(255, 255, 255, 0.8);
304
+ font-size: 0;
305
+ margin: 0;
306
+ padding: 0;
307
+ transition: all 0.3s;
308
+ min-height: 540px;
309
+ height: auto;
310
+ display: none;
311
+ }
312
+
313
+ #_pick_tips_content.on {
314
+ display: inline-block;
315
+ }
316
+
317
+ /* cover mode */
318
+ #_picker_cover_wrap_box svg {
319
+ position: fixed;
320
+ top: 0;
321
+ left: 0;
322
+ cursor: crosshair;
323
+ width: 100%;
324
+ height: 100%;
325
+ z-index: 99999998;
326
+ }
327
+
328
+ #_picker_cover_wrap_box svg>path:first-child {
329
+ fill: rgba(0, 0, 0, 0);
330
+ fill-rule: evenodd;
331
+ }
332
+
333
+ #_picker_cover_wrap_box svg>path+path {
334
+ stroke: #29c66d;
335
+ stroke-width: 3.5px;
336
+ fill: rgb(226 239 232 / 20%);
337
+ }
338
+
339
+ #_picker_cover_wrap_box {
340
+ transition: all 0.3s;
341
+ pointer-events: none;
342
+ }
343
+
344
+ @keyframes ellipsis {
345
+ from {
346
+ width: 2px;
347
+ }
348
+
349
+ to {
350
+ width: 15px;
351
+ }
352
+ }
353
+ /* target mode */
354
+ ._picker_target_elm {
355
+ background: transparent;
356
+ outline: #1dcd1d solid 3px;
357
+ color: #000;
358
+ }
includes/js/mobmenu-admin.js CHANGED
@@ -19,6 +19,11 @@
19
  jQuery( document ).ready( function(){
20
  var editorSettings = null;
21
 
 
 
 
 
 
22
  // Initilialize the CodeMirror on the custom CSS option.
23
  if ( $('#mobmenu_custom_css').length > 0 ) {
24
  editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
@@ -447,7 +452,23 @@
447
  security: $( this ).parent().attr( 'data-ajax-nonce' )
448
  }
449
  });
450
- });
 
 
 
 
 
 
 
451
  });
452
-
453
  }(jQuery));
 
 
 
 
 
 
 
 
 
19
  jQuery( document ).ready( function(){
20
  var editorSettings = null;
21
 
22
+ $( '#mobmenu_hide_elements' ).after( '<a href="#" class="mobmenu-find-element">Find element</a>' );
23
+ $('body').append('<iframe class="mobmenu-preview-iframe" scrolling="no" id="mobmenu-preview-iframe" width="380" height="650" >');
24
+ setTimeout(function(){ $( '#mobmenu-preview-iframe' ).attr( 'src', document.location.protocol + '//' + document.location.hostname + '/?mobmenu-action=find-element' ); }, 3000);
25
+
26
+
27
  // Initilialize the CodeMirror on the custom CSS option.
28
  if ( $('#mobmenu_custom_css').length > 0 ) {
29
  editorSettings = wp.codeEditor.defaultSettings ? _.clone( wp.codeEditor.defaultSettings ) : {};
452
  security: $( this ).parent().attr( 'data-ajax-nonce' )
453
  }
454
  });
455
+ });
456
+
457
+ $( document ).on( 'click', ' .mobmenu-find-element' , function( e ) {
458
+
459
+ e.preventDefault();
460
+ $( '#mobmenu-preview-iframe' ).show();
461
+ });
462
+
463
  });
464
+
465
  }(jQuery));
466
+ // In Parent
467
+ function receivePickedElement (el) {
468
+ var hideElements = jQuery( '#mobmenu_hide_elements').val().trim();
469
+ if ( hideElements == '' ) {
470
+ jQuery( '#mobmenu_hide_elements').val( el );
471
+ } else {
472
+ jQuery( '#mobmenu_hide_elements').val( hideElements + ' , ' + el );
473
+ }
474
+ }
includes/js/mobmenu.js CHANGED
@@ -9,9 +9,85 @@
9
  */
10
 
11
  "use strict";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  jQuery( document ).ready( function($) {
14
 
 
 
 
 
 
 
15
  function mobmenuOpenSubmenus( menu ) {
16
  var submenu = $(menu).parent().next();
17
  if ( $(menu).parent().next().hasClass( 'show-sub-menu' ) ) {
@@ -213,7 +289,7 @@
213
  $( 'body' ).removeClass( 'show-nav-left' );
214
  $( 'html' ).removeClass( 'mob-menu-no-scroll' );
215
 
216
- setTimeout( () => {
217
  $('.mob-menu-sliding-menus [data-menu-level]').scrollTop( '0' );
218
  $('.mobmenu-content .show-sub-menu').removeClass( 'show-sub-menu' );
219
  }, 400);
@@ -235,5 +311,141 @@
235
 
236
  }
237
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
238
 
239
 
9
  */
10
 
11
  "use strict";
12
+ function getSelector(el){
13
+ var $el = jQuery(el);
14
+
15
+ var id = $el.attr("id");
16
+ if (id) { //"should" only be one of these if theres an ID
17
+ return "#"+ id;
18
+ }
19
+
20
+ var selector = $el.parents()
21
+ .map(function() { return this.tagName; })
22
+ .get().reverse().join(" ");
23
+
24
+ if (selector) {
25
+ selector += " "+ $el[0].nodeName;
26
+ }
27
+
28
+ var classNames = $el.attr("class");
29
+ if (classNames) {
30
+ selector += "." + jQuery.trim(classNames).replace(/\s/gi, ".");
31
+ }
32
+
33
+ var name = $el.attr('name');
34
+ if (name) {
35
+ selector += "[name='" + name + "']";
36
+ }
37
+ if (!name){
38
+ var index = $el.index();
39
+ if (index) {
40
+ index = index + 1;
41
+ selector += ":nth-child(" + index + ")";
42
+ }
43
+ }
44
+ return selector;
45
+ }
46
 
47
+ function enableMobileMenuElementPicker(){
48
+ const p = new Picker({
49
+ elm: document.getElementById('elm1'),
50
+ mode: 'cover',
51
+ excludeElmName: ['body'],
52
+ events: [{
53
+ key: 'contextmenu',
54
+ fn(event) {
55
+ event.preventDefault();
56
+ },
57
+ }],
58
+ onInit() {
59
+
60
+ },
61
+ onClick(event) {
62
+ var selector = getSelector(event.target).toLowerCase();
63
+ window.parent.receivePickedElement(selector);
64
+ jQuery(selector).hide();
65
+ },
66
+ onHover(event) {
67
+
68
+ },
69
+ });
70
+ document.getElementById('m_on').addEventListener('click', () => {
71
+ p.on();
72
+ });
73
+ document.getElementById('m_off').addEventListener('click', () => {
74
+ p.off();
75
+ });
76
+ document.getElementById('m_cover').addEventListener('click', () => {
77
+ p.changeMode('cover');
78
+ });
79
+ document.getElementById('m_target').addEventListener('click', () => {
80
+ p.changeMode('target');
81
+ });
82
+ }
83
  jQuery( document ).ready( function($) {
84
 
85
+ const urlParams = new URLSearchParams( window.location.search );
86
+
87
+ if ( urlParams.get( 'mobmenu-action' ) == 'find-element' ) {
88
+ enableMobileMenuElementPicker();
89
+ }
90
+
91
  function mobmenuOpenSubmenus( menu ) {
92
  var submenu = $(menu).parent().next();
93
  if ( $(menu).parent().next().hasClass( 'show-sub-menu' ) ) {
289
  $( 'body' ).removeClass( 'show-nav-left' );
290
  $( 'html' ).removeClass( 'mob-menu-no-scroll' );
291
 
292
+ setTimeout(function(){
293
  $('.mob-menu-sliding-menus [data-menu-level]').scrollTop( '0' );
294
  $('.mobmenu-content .show-sub-menu').removeClass( 'show-sub-menu' );
295
  }, 400);
311
 
312
  }
313
  });
314
+
315
+ window.Picker = class Picker {
316
+ constructor(options = {}) {
317
+ this.elm = options.elm || document.querySelector('body');
318
+ this.mode = options.mode || 'target';
319
+ this.excludeElmName = options.excludeElmName || [];
320
+ this.switch = typeof options.switch === 'boolean' ? options.switch : true;
321
+
322
+ this.events = options.events || [];
323
+ this.onInit = options.onInit;
324
+ this.onClick = options.onClick ? options.onClick.bind(this) : null;
325
+ this.onHover = options.onHover ? options.onHover.bind(this) : null;
326
+
327
+
328
+ // Internal handler
329
+ this.fn_bind_clickHandle = null;
330
+ this.fn_bind_hoverHandle = null;
331
+ this.fn_bind_contextmenuHandle = null;
332
+ this._init();
333
+ }
334
+ on() {
335
+ this.switch = true;
336
+ }
337
+ off() {
338
+ this.switch = false;
339
+ this._removeTargetShowPos();
340
+ this._removeCoverShowPos();
341
+ }
342
+ changeMode(mode) {
343
+ let modeArr = ['cover', 'target'];
344
+ if (modeArr.includes(mode)) {
345
+ this.mode = mode;
346
+ this._removeTargetShowPos();
347
+ this._removeCoverShowPos();
348
+ } else {
349
+ console.error(`Mode error, only includes [ ${modeArr.join(" | ")} ]`);
350
+ }
351
+ }
352
+ destroy() {
353
+ this.events.forEach((eo) => {
354
+ eo.fn_bind = eo.fn.bind(this);
355
+ this.elm.removeEventListener(eo.key, this[`_${eo.key}_Handle`], false);
356
+ });
357
+
358
+ this.elm.removeEventListener('mouseover', this.fn_bind_hoverHandle, false);
359
+ this.elm.removeEventListener('click', this.fn_bind_clickHandle, false);
360
+
361
+ this._removeTargetShowPos();
362
+ document.querySelector("#_picker_cover_wrap_box").remove();
363
+ }
364
+ _init() {
365
+ let wrapDom = document.createElement('div');
366
+ wrapDom.setAttribute("id", "_picker_cover_wrap_box");
367
+ wrapDom.innerHTML = '<svg></svg>';
368
+ document.body.appendChild(wrapDom);
369
+ this._initEvent();
370
+ this.onInit && this.onInit();
371
+ }
372
+ _initEvent() {
373
+ this.events.forEach((eo) => {
374
+ this[`_${eo.key}_Handle`] = (event) => {
375
+ if (this._triggerEvent(event) === false) return;
376
+ eo.fn && eo.fn(event);
377
+ };
378
+ eo.fn_bind = this[`_${eo.key}_Handle`].bind(this);
379
+ this.elm.addEventListener(eo.key, this[`_${eo.key}_Handle`], false);
380
+ });
381
+
382
+ this.fn_bind_hoverHandle = this._hoverHandle.bind(this);
383
+ this.fn_bind_clickHandle = this._clickHandle.bind(this);
384
+
385
+ this.elm.addEventListener('mouseover', this.fn_bind_hoverHandle, false);
386
+ this.elm.addEventListener('click', this.fn_bind_clickHandle, false);
387
+
388
+ }
389
+ _triggerEvent(event) {
390
+ let tipsDom = document.querySelector("#_pick_tips_content");
391
+ if (
392
+ this.switch &&
393
+ !this.excludeElmName.includes(event.target.localName.toLocaleLowerCase()) &&
394
+ !(tipsDom ? tipsDom.contains(event.target) : 0)
395
+ ) {
396
+ event.stopPropagation();
397
+ event.preventDefault();
398
+ return true;
399
+ } else {
400
+ return false;
401
+ }
402
+ }
403
+ _hoverHandle(event) {
404
+ if (this._triggerEvent(event) === false) return;
405
+ switch (this.mode) {
406
+ case 'cover':
407
+ this._coverShowPos(event);
408
+ break;
409
+ case 'target':
410
+ this._targetShowPos(event);
411
+ break;
412
+ }
413
+ this.onHover && this.onHover(event);
414
+ }
415
+ _clickHandle(event) {
416
+ if (this._triggerEvent(event) === false) return;
417
+ this.onClick && this.onClick(event);
418
+ }
419
+ _targetShowPos(event) {
420
+ this._removeTargetShowPos();
421
+ if (event.target.localName === 'body') return;
422
+ event.target.classList.add("_picker_target_elm");
423
+ }
424
+ _removeTargetShowPos() {
425
+ document.querySelectorAll("._picker_target_elm").forEach((elm) => {
426
+ elm.classList.remove("_picker_target_elm");
427
+ });
428
+ }
429
+ _coverShowPos(event) {
430
+ let elm = event.target;
431
+ let W_W = window.screen.availWidth;
432
+ let W_H = window.screen.availHeight;
433
+ let pos = elm.getBoundingClientRect();
434
+ let p = {
435
+ tX: pos.left > 0 ? pos.left : 0,
436
+ tY: pos.top > 0 ? pos.top : 0,
437
+ w: pos.right - pos.left,
438
+ h: pos.bottom - pos.top,
439
+ };
440
+ let path_W = `M 0 0 h ${W_W} v ${W_H} h -${W_W} Z`;
441
+ let path_box = `M ${p.tX} ${p.tY} h ${p.w} v ${p.h} h -${p.w} Z`;
442
+ let elm_path1 = `<path d="${path_W} ${path_box}"></path>`;
443
+ let elm_path2 = `<path d="${path_box}"></path>`;
444
+ document.querySelector("#_picker_cover_wrap_box svg").innerHTML = elm_path1 + elm_path2;
445
+ }
446
+ _removeCoverShowPos() {
447
+ document.querySelector("#_picker_cover_wrap_box svg").innerHTML = '';
448
+ }
449
+ };
450
 
451
 
mobmenu.php CHANGED
@@ -3,7 +3,7 @@
3
  /**
4
  * Plugin Name: Mobile Menu
5
  * Description: An easy to use WordPress responsive mobile menu. Keep your mobile visitors engaged.
6
- * Version: 2.8.1.6
7
  * Plugin URI: https://www.wpmobilemenu.com/
8
  * Author: Rui Guerreiro
9
  * Author URI: https://www.jedipress.com/
@@ -16,7 +16,7 @@
16
  if ( !defined( 'ABSPATH' ) ) {
17
  die;
18
  }
19
- define( 'WP_MOBILE_MENU_VERSION', '2.8.1.6' );
20
  define( 'WP_MOBILE_MENU_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
21
  define( 'WP_MOBILE_MENU_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
22
  if ( !class_exists( 'WP_Mobile_Menu' ) ) {
@@ -82,6 +82,8 @@ if ( !class_exists( 'WP_Mobile_Menu' ) ) {
82
  add_action( 'wp_loaded', array( $this->mobmenu_core, 'register_sidebar' ) );
83
  // Register Menus.
84
  add_action( 'init', array( $this->mobmenu_core, 'register_menus' ) );
 
 
85
  // Load frontend assets.
86
  if ( !is_admin() ) {
87
  add_action( 'init', array( $this, 'load_frontend_assets' ) );
@@ -223,9 +225,6 @@ if ( !class_exists( 'WP_Mobile_Menu' ) ) {
223
  wp_enqueue_style( 'cssmobmenu-admin', plugins_url( 'includes/css/mobmenu-admin.css', __FILE__ ) );
224
  }
225
 
226
- if ( !get_option( 'wp_mobile_menu_upgrade_banner_dismissed' ) ) {
227
- add_action( 'admin_notices', array( $this, 'wp_mobile_menu_upgrade_admin_notice' ) );
228
- }
229
 
230
  if ( 'nav-menus.php' === $hook || 'toplevel_page_mobile-menu-options' === $hook ) {
231
  wp_enqueue_style( 'cssmobmenu-icons', plugins_url( 'includes/css/mobmenu-icons.css', __FILE__ ) );
3
  /**
4
  * Plugin Name: Mobile Menu
5
  * Description: An easy to use WordPress responsive mobile menu. Keep your mobile visitors engaged.
6
+ * Version: 2.8.1.7
7
  * Plugin URI: https://www.wpmobilemenu.com/
8
  * Author: Rui Guerreiro
9
  * Author URI: https://www.jedipress.com/
16
  if ( !defined( 'ABSPATH' ) ) {
17
  die;
18
  }
19
+ define( 'WP_MOBILE_MENU_VERSION', '2.8.1.7' );
20
  define( 'WP_MOBILE_MENU_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
21
  define( 'WP_MOBILE_MENU_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
22
  if ( !class_exists( 'WP_Mobile_Menu' ) ) {
82
  add_action( 'wp_loaded', array( $this->mobmenu_core, 'register_sidebar' ) );
83
  // Register Menus.
84
  add_action( 'init', array( $this->mobmenu_core, 'register_menus' ) );
85
+ // Find Elements to Hide.
86
+ add_action( 'init', array( $this->mobmenu_core, 'find_elements_mobmenu' ) );
87
  // Load frontend assets.
88
  if ( !is_admin() ) {
89
  add_action( 'init', array( $this, 'load_frontend_assets' ) );
225
  wp_enqueue_style( 'cssmobmenu-admin', plugins_url( 'includes/css/mobmenu-admin.css', __FILE__ ) );
226
  }
227
 
 
 
 
228
 
229
  if ( 'nav-menus.php' === $hook || 'toplevel_page_mobile-menu-options' === $hook ) {
230
  wp_enqueue_style( 'cssmobmenu-icons', plugins_url( 'includes/css/mobmenu-icons.css', __FILE__ ) );
readme.txt CHANGED
@@ -4,7 +4,7 @@ link: http://profiles.wordpress.org/takanakui
4
  Tags: mobile, navigation, responsive, menu, responsive menu, mobile menu, tablet menu, hamburger menu, hamburger, wordpress responsive menu, wordpress mobile menu, canvas menu
5
  Requires at least: 4.4
6
  Tested up to: 5.6
7
- Stable tag: 2.8.1.6
8
  Requires PHP: 5.6
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -132,8 +132,19 @@ Not available at the moment
132
 
133
  == Changelog ==
134
 
 
 
135
 
136
 
 
 
 
 
 
 
 
 
 
137
  = 2.8.1.5 =
138
  * Improvment! - Update Freemius SDK
139
  * Improvment! - Center images inside the menu panels
4
  Tags: mobile, navigation, responsive, menu, responsive menu, mobile menu, tablet menu, hamburger menu, hamburger, wordpress responsive menu, wordpress mobile menu, canvas menu
5
  Requires at least: 4.4
6
  Tested up to: 5.6
7
+ Stable tag: 2.8.1.7
8
  Requires PHP: 5.6
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
132
 
133
  == Changelog ==
134
 
135
+ = 2.8.1.7 =
136
+ * New! - Visual tool to identify menus and other elements to hide
137
 
138
 
139
+ = 2.8.1.6.1 =
140
+ * Fix! - Fix error on function that doesn't exist
141
+
142
+ = 2.8.1.6 =
143
+ * Improvment! - Update Freemius SDK
144
+ * Improvment! - Add CSS to prevent issues with PageOptimize
145
+ * Improvment! - Fix z-index of menu panel
146
+ * Improvment! - Fix Parent link issue
147
+
148
  = 2.8.1.5 =
149
  * Improvment! - Update Freemius SDK
150
  * Improvment! - Center images inside the menu panels