HEX
Server: Apache
System: Linux webd001.cluster127.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: mciraet (192513)
PHP: 8.2.31
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/mciraet/www/wp-content/themes/movedo/includes/custom-menu/grve-custom-nav-menu.php
<?php

/*
*	Custom Nav Menu
*
* 	@version	1.0
* 	@author		Greatives Team
* 	@URI		http://greatives.eu
*/

/**
 * Function to overwrite default menu Walker
 */
function movedo_grve_edit_walker( $walker,$menu_id ) {
	return 'Movedo_Grve_Walker_Nav_Menu_Edit';
}
if ( version_compare( $wp_version, '5.4', '<' ) ) {
	add_filter( 'wp_edit_nav_menu_walker', 'movedo_grve_edit_walker', 10, 2 );
}

include_once get_template_directory() . '/includes/custom-menu/grve-walker-nav-menu-edit.php';
include_once get_template_directory() . '/includes/custom-menu/grve-main-navigation-walker.php';
include_once get_template_directory() . '/includes/custom-menu/grve-simple-navigation-walker.php';
include_once get_template_directory() . '/includes/custom-menu/grve-split-navigation-walker.php';

/**
 * Function to get custom menu items
 */
function movedo_grve_get_custom_nav_menu_items( $menu_item ) {
	$menu_item->grve_megamenu = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_megamenu', true );
	$menu_item->grve_link_mode = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_link_mode', true );
	$menu_item->grve_link_classes = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_link_classes', true );
	$menu_item->grve_label_text = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_label_text', true );
	$menu_item->grve_label_color = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_label_color', true );
	$menu_item->grve_icon_fontawesome = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_icon_fontawesome', true );
	$menu_item->grve_style = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_style', true );
	$menu_item->grve_color = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_color', true );
	$menu_item->grve_hover_color = get_post_meta( $menu_item->ID, '_movedo_grve_menu_item_hover_color', true );
	return $menu_item;
}
add_filter( 'wp_setup_nav_menu_item', 'movedo_grve_get_custom_nav_menu_items' );

/**
 * Function to update custom menu items
 */
function movedo_grve_update_custom_nav_menu_items( $menu_id, $menu_item_db_id, $args ) {

	$custom_nav_menu_fields = array( 'megamenu', 'link_mode', 'link_classes', 'label_text', 'label_color', 'icon_fontawesome', 'style', 'color', 'hover_color' );

	if( isset( $_POST['_movedo_grve_menu_options'] ) ) {
		parse_str( urldecode( $_POST['_movedo_grve_menu_options'] ), $parse_array );

		foreach ( $custom_nav_menu_fields as $key ){
			if( !isset( $parse_array['_movedo_grve_menu_item_' . $key . '_' . $menu_item_db_id] ) ) {
				$parse_array['_movedo_grve_menu_item_' . $key . '_' . $menu_item_db_id] = "";
			}
			$new_meta_value = wp_filter_post_kses( $parse_array['_movedo_grve_menu_item_' . $key . '_' . $menu_item_db_id] );
			$meta_key = '_movedo_grve_menu_item_' . $key;
			$meta_value = get_post_meta( $menu_item_db_id, $meta_key, true );

			if ( $new_meta_value && '' == $meta_value ) {
				if ( !add_post_meta( $menu_item_db_id, $meta_key, $new_meta_value, true ) ) {
					update_post_meta( $menu_item_db_id, $meta_key, $new_meta_value );
				}
			} elseif ( $new_meta_value && $new_meta_value != $meta_value ) {
				update_post_meta( $menu_item_db_id, $meta_key, $new_meta_value );
			} elseif ( '' == $new_meta_value && $meta_value ) {
				delete_post_meta( $menu_item_db_id, $meta_key, $meta_value );
			}
		}
	}

}
add_action( 'wp_update_nav_menu_item', 'movedo_grve_update_custom_nav_menu_items', 10, 3 );

/**
 * Function to add simple custom walker to widget navigation menu
 */
if ( !function_exists('movedo_grve_widget_menu_custom_walker') ) {
	function movedo_grve_widget_menu_custom_walker( $args ) {
		return array_merge( $args, array(
			'walker' => new Movedo_Grve_Simple_Navigation_Walker(),
		) );
	}
}
add_filter( 'widget_nav_menu_args', 'movedo_grve_widget_menu_custom_walker' );

//Omit closing PHP tag to avoid accidental whitespace output errors.