front_end();
}
public function front_end() {
require_once ( AIEA_DIR . 'core/mega-menu/front-end.php' );
}
public function admin_scripts() {
wp_enqueue_style( 'bootstrap-icons', AIEA_URL . 'assets/css/front-end/bootstrap-icons.css', false, '1.8.1' );
wp_enqueue_style( 'bootstrapicons-iconpicker', AIEA_URL . 'core/mega-menu/assets/css/bootstrapicons-iconpicker.css', false, '1.0.0' );
wp_enqueue_script( 'bootstrapicon-iconpicker', AIEA_URL . 'core/mega-menu/assets/js/bootstrapicon-iconpicker.min.js', array( 'jquery' ), '1.0', true );
wp_enqueue_style( 'ai-mega-menu', AIEA_URL . 'core/mega-menu/assets/css/mega-menu.css', false, '1.0.0' );
wp_enqueue_script( 'ai-mega-menu', AIEA_URL . 'core/mega-menu/assets/js/mega-menu.js', array( 'jquery' ), '1.0', true );
wp_localize_script( 'ai-mega-menu', 'aiea_mm_obj',
array(
'rest_url' => esc_url(get_rest_url() . 'ai/v1/'),
'mega_menu_html' => '
'
)
);
}
public function mega_menu_cpt() {
require_once ( AIEA_DIR . 'core/mega-menu/cpt.php' );
}
public function api_init() {
register_rest_route(
'ai/v1', '/megamenu'. '/(?P\w+(|[-]\w+))/',
array(
'methods' => \WP_REST_Server::ALLMETHODS,
'callback' => [ $this, 'callback' ],
'permission_callback' => '__return_true',
// all permissions are implimented inside the callback action
)
);
}
public function callback( $request ) {
$this->request = $request;
$menu_item = $this->request['key'];
return $this->get_content_editor( $menu_item );
}
public function get_content_editor( $menu_item ) {
$builder_post_title = 'ai-megamenu-content-' . $menu_item;
$builder_post_id = aiea_modules()->get_post_by_title( $builder_post_title, OBJECT, 'aiea_content' );
if ( is_null( $builder_post_id ) ) {
$defaults = array(
'post_content' => '',
'post_title' => $builder_post_title,
'post_status' => 'publish',
'post_type' => 'aiea_content',
);
$builder_post_id = wp_insert_post( $defaults );
update_post_meta( $builder_post_id, '_wp_page_template', 'elementor_canvas' );
} else {
$builder_post_id = $builder_post_id->ID;
}
// if wpml is active and wpml not set for this post
if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
$builder_post_id = $this->set_wpml_data($builder_post_id);
}
$url = admin_url( 'post.php?post=' . $builder_post_id . '&action=elementor' );
wp_safe_redirect( $url );
exit;
}
public function set_wpml_data($builder_post_id) {
global $sitepress;
$default_language = $sitepress->get_default_language();
$wpml_element_type = apply_filters( 'wpml_element_type', 'elementskit_content' );
$trid = $sitepress->get_element_trid( $builder_post_id, $wpml_element_type );
if( ! $trid ) {
$sitepress->set_element_language_details( $builder_post_id, $wpml_element_type, false, $default_language, null, false );
}
// get wpml post by language code
$referer = wp_get_referer();
$referer = parse_url($referer);
$referer = !empty($referer['query']) ? $referer['query'] : '';
$referer = parse_str($referer, $referer_args);
if( !empty($referer_args['post']) ) {
$language_details = apply_filters( 'wpml_post_language_details', NULL, $referer_args['post'] );
if( !is_wp_error($language_details) ) {
$builder_post_id = apply_filters( 'wpml_object_id', $builder_post_id, 'elementskit_content', true, $language_details['language_code'] );
}
}
return $builder_post_id;
}
public function menu_custom_fields( $item_id, $item, $depth, $args, $id ) {
$aiea_mega_menu = $item->aiea_mega_menu ? $item->aiea_mega_menu : json_encode( array( 'menu_type' => 'default', 'mega_menu' => 'no', 'icon' => '' ) );
?>
aiea_mega_menu = get_post_meta( $menu_item->ID, '_menu_item_aiea_mega_menu', true );
return $menu_item;
}
public function mega_menu_footer() {
?>