HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/intranet.kauko.lt/wp-content/plugins/woffice-core/extensions/woffice-menus/class-menu.php
<?php

defined( 'ABSPATH' ) || exit;


class Woffice_Extension_Woffice_Menu{

	/**
	 * @internal
	 */

	 function __construct() {
		$this->init();
	 }

     public function init() {
        
        $enable_menu_icons = get_option('woffice_theme_options');

		if ( !isset($enable_menu_icons['enable_menu_icons']) || isset($enable_menu_icons['enable_menu_icons']) && !$enable_menu_icons['enable_menu_icons'] ) {
			return;
		}
        add_filter( 'body_class', array($this,'woffice_menu_icons_class') );
        add_action( 'wp_nav_menu_item_custom_fields', array($this,'woffice_menu_item_icon'), 10, 2 );
        add_action( 'wp_update_nav_menu_item', array($this,'save_menu_item_icons'), 10, 2 );
        add_filter( 'nav_menu_item_title', array($this,'woffice_show_menu_item_icon'), 10, 2 );
        add_action( 'admin_enqueue_scripts', array($this,'enqueue_font_awesome'));
     }

     public function enqueue_font_awesome() {
        global $pagenow;
        $current_page = $pagenow;

        if($current_page == 'nav-menus.php') {
            wp_enqueue_style( 'woffice-font-fonticonbase', woffice_get_extension_uri('menus', 'assets/css/jquery.fonticonpicker.min.css'), array(), '1.0.0', 'all' );
            wp_enqueue_style( 'woffice-font-fonticonpicker', woffice_get_extension_uri('menus', 'assets/css/jquery.fonticonpicker.grey.min.css'), array(), '1.0.0', 'all' );
            wp_enqueue_style( 'font-awesome-55', woffice_get_extension_uri('menus', 'assets/css/fontawesome-all.min.css'), array(), '5.9.0', 'all' );
            wp_enqueue_script('woffice-fonticonpicker',woffice_get_extension_uri('menus', 'assets/js/jquery.fonticonpicker.min.js'),array(),true); 
        }
    }

     public function woffice_menu_icons_class($classes) {

        $classes[] = ' woffice-menu-has-icons';

        return $classes;

     }
     
     public function woffice_menu_item_icon( $item_id, $item ) {
        $woffice_menu_item_icon = get_post_meta( $item_id, '_woffice_menu_item_icon', true );
        ?>
        <div style="clear: both;">
            <span class="_woffice_menu_item_icon"><?php _e( "(Woffice) Menu Icon", 'woffice' ); ?></span><br />
            <div class="logged-input-holder">
                <input type="text" id="woffice_menu_item_icon" class="woffice_menu_item_icon"  name="woffice_menu_item_icon[<?php echo $item_id ;?>]" data-fip-value="<?php echo sanitize_text_field( $woffice_menu_item_icon ); ?>" />
                <input type="hidden" id="woffice_menu_item_icon_selected" class="woffice_menu_item_icon_selected"  name="woffice_menu_item_icon_selected[<?php echo $item_id ;?>]" value="<?php echo sanitize_text_field($woffice_menu_item_icon ); ?>" />
            </div>
        </div>
        <?php
    }

    public function save_menu_item_icons( $menu_id, $menu_item_db_id ) {
        if ( isset( $_POST['woffice_menu_item_icon'][$menu_item_db_id]  ) ) {
            $sanitized_data = sanitize_text_field( $_POST['woffice_menu_item_icon'][$menu_item_db_id] );
            update_post_meta( $menu_item_db_id, '_woffice_menu_item_icon', $sanitized_data );
        } else {
            delete_post_meta( $menu_item_db_id, '_woffice_menu_item_icon' );
        }
    }

    public function woffice_show_menu_item_icon( $title, $item ) {
        if( is_object( $item ) && isset( $item->ID ) ) {
            $woffice_menu_item_icon = get_post_meta( $item->ID, '_woffice_menu_item_icon', true );
    
            if ( ! empty( $woffice_menu_item_icon ) ) {
                $menu_title = '<i class="woffice-menu-item-icon '.esc_attr($woffice_menu_item_icon).'"></i>' . $title;
            } else {
                $menu_title = $title;
            }
        }
        return $menu_title;
    }
}

$Woffice_Extension_Woffice_Menu = new Woffice_Extension_Woffice_Menu();