
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
<?php
/* -----------------------------------------------------------------------------
 * Menu Editor
 * -------------------------------------------------------------------------- */

/*//////////////////////////////////////
// Menu Editor Walker
//////////////////////////////////////*/

add_filter( 'wp_edit_nav_menu_walker', 'presso_custom_nav_edit_walker', 10, 2 );
function presso_custom_nav_edit_walker( $walker, $menu_id ) {
	global $presso_mega_menu_type;
	$presso_mega_menu_type = array(
		'default' => esc_html__( 'Normal', 'presso' ),
		'latest' => esc_html__( 'Show latest posts', 'presso' ),
		'featured' => esc_html__( 'Show featured posts', 'presso' ),
		'latest_gallery' => esc_html__( 'Show latest gallery', 'presso' ),
		'latest_video' => esc_html__( 'Show latest video', 'presso' ),
		'latest_audio' => esc_html__( 'Show latest audio', 'presso' ),
		'latest_reviews' => esc_html__( 'Show latest reviews', 'presso' ),
		'latest_products' => esc_html__( 'Show latest products', 'presso' ),
		'columns_list' => esc_html__( 'Columns list', 'presso' ),
	);

	require_once get_template_directory().'/inc/menu/editor-walker.php';

	return 'Presso_Walker_Nav_Mega_Menu_Edit';
}





/*//////////////////////////////////////
// Mega Menu Fields
//////////////////////////////////////*/

add_filter( 'presso_filter_mega_menu_edit_custom_field', 'presso_mega_menu_edit_custom_field', 10, 2 );
if ( ! function_exists( 'presso_mega_menu_edit_custom_field' ) ) {
	function presso_mega_menu_edit_custom_field( $item, $depth ) {
		ob_start();
		?>
		<p class="description description-wide vw-mega-menu-option">
			<label for="edit-menu-item-vw-menu-type-<?php echo esc_attr( $item->ID ); ?>">
				<?php esc_html_e( 'Mega Menu Type', 'presso' ); ?><br />
				<select class="widefat edit-menu-item-vw-menu-type" id="edit-menu-item-vw-menu-type-<?php echo esc_attr( $item->ID ); ?>" name="menu-item-vw-menu-type[<?php echo esc_attr( $item->ID ); ?>]">
					<?php
					global $presso_mega_menu_type;
					foreach( $presso_mega_menu_type as $key => $label ) : ?>
						<option value="<?php echo esc_attr( $key ); ?>" <?php selected( $item->vw_menu_type, $key ); ?>><?php echo wp_strip_all_tags( $label ); ?></option>
					<?php endforeach; ?>
				</select>
			</label>
		</p>
		<?php
		return ob_get_clean();
	}
}



/*//////////////////////////////////////
// Adds value of new field to $item object
// that will be passed to Walker_Nav_Menu_Edit_Custom
//////////////////////////////////////*/

add_filter( 'wp_setup_nav_menu_item','presso_custom_nav_item' );
function presso_custom_nav_item( $menu_item ) {
	$menu_item->vw_menu_type = get_post_meta( $menu_item->ID, '_vw_menu_type', true );

	if ( empty( $menu_item->vw_menu_type ) ) {
		$menu_item->vw_menu_type = 'default';
	}

	return $menu_item;
}



/*//////////////////////////////////////
// Saves new field to postmeta for navigation
//////////////////////////////////////*/

add_action( 'wp_update_nav_menu_item', 'presso_custom_nav_update', 10, 3 );
function presso_custom_nav_update( $menu_id, $menu_item_db_id, $args ) {
	if ( isset( $_REQUEST['menu-item-vw-menu-type'][$menu_item_db_id] ) ) {
		$custom_value = $_REQUEST['menu-item-vw-menu-type'][$menu_item_db_id];
		update_post_meta( $menu_item_db_id, '_vw_menu_type', wp_strip_all_tags( $custom_value ) );
	}
}