megamenu-integration.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. function vamtam_get_mobile_header_breakpoint() {
  3. $breakpoint = '959px';
  4. if ( class_exists( 'Mega_Menu' ) ) {
  5. $settings = get_option( 'megamenu_settings' );
  6. $current_theme_location = 'menu-header';
  7. $locations = get_nav_menu_locations();
  8. if ( isset( $settings[ $current_theme_location ]['enabled'] ) && $settings[ $current_theme_location ]['enabled'] == true ) {
  9. if ( ! isset( $locations[ $current_theme_location ] ) ) {
  10. return $breakpoint;
  11. }
  12. $menu_id = $locations[ $current_theme_location ];
  13. if ( ! $menu_id ) {
  14. return $breakpoint;
  15. }
  16. $style_manager = new Mega_Menu_Style_Manager();
  17. $themes = $style_manager->get_themes();
  18. $menu_theme = isset( $themes[ $settings[ $current_theme_location ]['theme'] ] ) ? $themes[ $settings[ $current_theme_location ]['theme'] ] : $themes['default'];
  19. $breakpoint = absint( $menu_theme['responsive_breakpoint'] ) . 'px';
  20. }
  21. }
  22. return $breakpoint;
  23. }
  24. function vamtam_mobile_header_less_var( $variables ) {
  25. $variables['mobile-top-bar-resolution'] = vamtam_get_mobile_header_breakpoint();
  26. return $variables;
  27. }
  28. add_filter( 'vamtam_less_vars', 'vamtam_mobile_header_less_var' );
  29. /**
  30. * Mobile menu bar
  31. *
  32. * @param string $nav_menu
  33. * @param object $args
  34. * @return string
  35. */
  36. function vamtam_add_mobile_top_bar( $nav_menu, $args ) {
  37. if ( ! is_a( $args->walker, 'Mega_Menu_Walker' ) || $args->theme_location !== 'menu-header' ) {
  38. return $nav_menu;
  39. }
  40. $megamenu_settings = get_option( 'megamenu_settings' );
  41. $mobile_top_bar = isset( $megamenu_settings['vamtam-mobile-top-bar'] ) ? stripslashes( $megamenu_settings['vamtam-mobile-top-bar'] ) : '';
  42. $mobile_top_bar = do_shortcode( $mobile_top_bar );
  43. $replace = '<div class="mobile-top-bar">' . $mobile_top_bar . '</div>';
  44. return preg_replace( '!(?=</div>$)!', $replace, $nav_menu );
  45. }
  46. add_filter( 'wp_nav_menu', 'vamtam_add_mobile_top_bar', 10, 2 );
  47. function vamtam_megamenu_general_settings( $saved_settings ) {
  48. $mobile_search = isset( $saved_settings['vamtam-mobile-search'] ) ? $saved_settings['vamtam-mobile-search'] : '';
  49. $mobile_cart = isset( $saved_settings['vamtam-mobile-cart'] ) ? $saved_settings['vamtam-mobile-cart'] : '';
  50. $mobile_top_bar = isset( $saved_settings['vamtam-mobile-top-bar'] ) ? stripslashes( $saved_settings['vamtam-mobile-top-bar'] ) : '';
  51. ?>
  52. <h4 class="first"><?php esc_html_e( 'VamTam Additions', 'vamtam-consulting' ); ?></h4>
  53. <table>
  54. <tr>
  55. <td class='mega-name'>
  56. <?php esc_html_e( 'Enable Search in Mobile Header', 'vamtam-consulting' ); ?>
  57. <div class='mega-description'></div>
  58. </td>
  59. <td class='mega-value'>
  60. <label>
  61. <input type='radio' name='settings[vamtam-mobile-search]' value="on" <?php checked( $mobile_search, 'on' ); ?> />
  62. <?php esc_html_e( 'On', 'vamtam-consulting' ) ?>
  63. </label>
  64. <label>
  65. <input type='radio' name='settings[vamtam-mobile-search]' value="off" <?php checked( $mobile_search, 'off' ); ?> />
  66. <?php esc_html_e( 'Off', 'vamtam-consulting' ) ?>
  67. </label>
  68. </td>
  69. </tr>
  70. <tr>
  71. <td class='mega-name'>
  72. <?php esc_html_e( 'Enable WooCommerce Cart in Mobile Header', 'vamtam-consulting' ); ?>
  73. <div class='mega-description'></div>
  74. </td>
  75. <td class='mega-value'>
  76. <label>
  77. <input type='radio' name='settings[vamtam-mobile-cart]' value="on" <?php checked( $mobile_cart, 'on' ); ?> />
  78. <?php esc_html_e( 'On', 'vamtam-consulting' ) ?>
  79. </label>
  80. <label>
  81. <input type='radio' name='settings[vamtam-mobile-cart]' value="off" <?php checked( $mobile_cart, 'off' ); ?> />
  82. <?php esc_html_e( 'Off', 'vamtam-consulting' ) ?>
  83. </label>
  84. </td>
  85. </tr>
  86. <tr>
  87. <td class='mega-name'>
  88. <?php esc_html_e( 'Mobile Top Bar', 'vamtam-consulting' ); ?>
  89. <div class='mega-description'></div>
  90. </td>
  91. <td class='mega-value'>
  92. <textarea name='settings[vamtam-mobile-top-bar]'><?php echo esc_textarea( $mobile_top_bar ) ?></textarea>
  93. </td>
  94. </tr>
  95. </table>
  96. <?php
  97. }
  98. add_action( 'megamenu_general_settings', 'vamtam_megamenu_general_settings', 10, 1 );