| 1 |
<?php |
| 2 |
|
| 3 |
class QuadmenuDiviModule extends DiviExtension { |
| 4 |
|
| 5 |
public $gettext_domain = 'quadmenu-quadmenu-divi-module'; |
| 6 |
public $name = 'quadmenu-divi-module'; |
| 7 |
public $version = '1.0.0'; |
| 8 |
|
| 9 |
function ajax_quadmenu_divi_module() { |
| 10 |
|
| 11 |
if (!empty($_REQUEST['menu_id']) && !empty($_REQUEST['menu_theme'])) { |
| 12 |
$menu = quadmenu(array( |
| 13 |
'echo' => false, |
| 14 |
'menu' => $_REQUEST['menu_id'], |
| 15 |
'theme' => $_REQUEST['menu_theme'], |
| 16 |
'layout_classes' => 'js' |
| 17 |
)); |
| 18 |
wp_send_json_success($menu); |
| 19 |
} else { |
| 20 |
wp_send_json_error('Unknow error', 'quadmenu'); |
| 21 |
} |
| 22 |
} |
| 23 |
|
| 24 |
function _dequeue_bundles() { |
| 25 |
wp_dequeue_style("{$this->name}-styles"); |
| 26 |
} |
| 27 |
|
| 28 |
function fullwidth_menu($args) { |
| 29 |
|
| 30 |
if (class_exists('ET_Builder_Module')) { |
| 31 |
if (isset($args['menu_class']) && strpos($args['menu_class'], 'fullwidth-menu') !== false) { |
| 32 |
$args['theme_location'] = false; |
| 33 |
} |
| 34 |
} |
| 35 |
|
| 36 |
return $args; |
| 37 |
} |
| 38 |
|
| 39 |
public function __construct($name = 'quadmenu-divi-module', $args = array()) { |
| 40 |
$this->plugin_dir = plugin_dir_path(__FILE__); |
| 41 |
$this->plugin_dir_url = plugin_dir_url($this->plugin_dir . 'divi/'); |
| 42 |
add_action('wp_ajax_ajax_quadmenu_divi_module', array($this, 'ajax_quadmenu_divi_module')); |
| 43 |
add_action('wp_ajax_nopriv_ajax_quadmenu_divi_module', array($this, 'ajax_quadmenu_divi_module')); |
| 44 |
add_action('wp_enqueue_scripts', array($this, '_dequeue_bundles'), 100); |
| 45 |
add_filter('wp_nav_menu_args', array($this, 'fullwidth_menu'), 100000, 1); |
| 46 |
parent::__construct($name, $args); |
| 47 |
} |
| 48 |
|
| 49 |
} |
| 50 |
|
| 51 |
new QuadmenuDiviModule; |
| 52 |
|