Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/walla3t.corals.io/wp-content/themes/apper/inc/walker/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/walla3t.corals.io/wp-content/themes/apper/inc/walker/init.php
<?php
/**
 * Initial functions.
 *
 * @package Apper WordPress theme
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class to manipulate menus.
 *
 * @since 1.0.0
 */
class ACMTHEMES_Nav_Walker {

	/**
	 * Constructor.
	 *
	 * @access public
	 */
	public function __construct() {

		// Add custom fields to menu
		add_filter( 'wp_setup_nav_menu_item', array( $this, 'add_custom_fields_meta' ) );
		add_action( 'wp_nav_menu_item_custom_fields', array( $this, 'add_custom_fields' ), 10, 4 );

		// get link attributes
		//add_filter( 'nav_menu_link_attributes', array( $this, 'custom_nav_menu_attribs' ), 10, 3 );
		add_filter( 'nav_menu_css_class', array( $this, 'custom_nav_menu_attribs' ), 10, 3 );

		// Save menu custom fields
		add_action( 'wp_update_nav_menu_item', array( $this, 'update_custom_nav_fields' ), 10, 3 );

		// Edit menu walker
		add_filter( 'wp_edit_nav_menu_walker', array( $this, 'edit_walker' ), 10, 2 );

	}


	/**
	 * Add custom menu style fields data to the menu.
	 *
	 * @access public
	 * @param object $menu_item A single menu item.
	 * @return object The menu item.
	 */
	public function add_custom_fields_meta( $menu_item ) {
		$menu_item->template 				= get_post_meta( $menu_item->ID, '_menu_item_template', true );
		$menu_item->mega_template 			= get_post_meta( $menu_item->ID, '_menu_item_mega_template', true );
		$menu_item->nolink 					= get_post_meta( $menu_item->ID, '_menu_item_nolink', true );
		$menu_item->category_post 			= get_post_meta( $menu_item->ID, '_menu_item_category_post', true );
		$menu_item->megamenu 				= get_post_meta( $menu_item->ID, '_menu_item_megamenu', true );
		$menu_item->megamenu_auto_width 	= get_post_meta( $menu_item->ID, '_menu_item_megamenu_auto_width', true );
		$menu_item->megamenu_col 			= get_post_meta( $menu_item->ID, '_menu_item_megamenu_col', true );
		$menu_item->megamenu_heading 		= get_post_meta( $menu_item->ID, '_menu_item_megamenu_heading', true );
		$menu_item->megamenu_widgetarea 	= get_post_meta( $menu_item->ID, '_menu_item_megamenu_widgetarea', true );
		$menu_item->icon 					= get_post_meta( $menu_item->ID, '_menu_item_icon', true );
		$menu_item->megamenu_submenuheading = get_post_meta( $menu_item->ID, '_menu_item_megamenu_submenuheading', true );
		$menu_item->megamenu_menulabel = get_post_meta( $menu_item->ID, '_menu_item_megamenu_menulabel', true );

		return $menu_item;
	}

	/**
	 * Add custom megamenu fields data to the menu.
	 *
	 * @access public
	 * @param object $menu_item A single menu item.
	 * @return object The menu item.
	 */
	public function add_custom_fields( $id, $item, $depth, $args ) {?>

		<?php if($depth == 0): ?>
		<p class="field-megamenu-menu-label description description-wide">
	        <label for="edit-menu-item-megamenu_menulabel-<?php echo esc_attr( $item->ID ); ?>">
	            <?php esc_html_e( 'Label', 'apper' ); ?><br />
	            <input type="text" id="edit-menu-item-megamenu_menulabel-<?php echo esc_attr( $item->ID ); ?>" class="widefat code edit-menu-item-custom" name="menu-item-megamenu_menulabel[<?php echo esc_attr( $item->ID ); ?>]" value="<?php echo esc_attr( $item->megamenu_menulabel ); ?>" />
	        </label>
	    </p>
		<?php endif;?>

		<p class="field-mega_template description description-wide">
			<label for="edit-menu-item-mega_template-<?php echo esc_attr( $item->ID ); ?>">
				<?php esc_html_e( 'Template', 'apper' ); ?> | <small><?php esc_html_e( 'Theme Panel > My Library', 'apper' ); ?></small>
				<select id="edit-menu-item-mega_template-<?php echo esc_attr( $item->ID ); ?>" class="widefat code edit-menu-item-custom" name="menu-item-mega_template[<?php echo esc_attr( $item->ID ); ?>]">
					<option value="0"><?php esc_html_e( 'Select A Template', 'apper' ); ?></option>
					<?php $templates_list 	= get_posts( array( 'post_type' => 'acmthemes_library', 'numberposts' => -1, 'post_status' => 'publish' ) );
				    if ( ! empty ( $templates_list ) ) {
				    	foreach ( $templates_list as $template ) {
							$templates[ $template->ID ] = $template->post_title; ?>
							<option value="<?php echo esc_attr( $template->ID ); ?>" <?php selected( $item->mega_template, $template->ID ); ?>><?php echo esc_html( $template->post_title ); ?>
							</option>
					    <?php }
					} ?>
				</select>
			</label>
		</p>

		<?php if($depth == 1): ?>
		<p class="field-megamenu-submenu-heading description description-wide">
			<label for="edit-menu-item-megamenu_submenuheading-<?php echo esc_attr( $item->ID ); ?>">
		        <input type="checkbox" id="edit-menu-item-megamenu_submenuheading-<?php echo esc_attr( $item->ID ); ?>" value="megamenu_submenuheading" name="menu-item-megamenu_submenuheading[<?php echo esc_attr( $item->ID ); ?>]"<?php checked( $item->megamenu_submenuheading, 'megamenu_submenuheading' ); ?> />
		        <?php esc_html_e( 'Hide heading?', 'apper' ); ?>
	        </label>
		</p>
		<?php endif;?>
	  <p class="field-nolink description description-wide">
	    	<label for="edit-menu-item-nolink-<?php echo esc_attr( $item->ID ); ?>">
	    	<input type="checkbox" id="edit-menu-item-nolink-<?php echo esc_attr( $item->ID ); ?>" class="code edit-menu-item-nolink" value="nolink" name="menu-item-nolink[<?php echo esc_attr( $item->ID ); ?>]"<?php checked( $item->nolink, 'nolink' ); ?> />
	    		<?php esc_html_e( 'Disable link', 'apper' ); ?>
	    	</label>
		</p>
		<?php if( $item->object == 'category' ){ ?>
	        <p class="field-category_post description description-wide">
	        	<label for="edit-menu-item-category_post-<?php echo esc_attr( $item->ID ); ?>">
	        		<input type="checkbox" id="edit-menu-item-category_post-<?php echo esc_attr( $item->ID ); ?>" class="code edit-menu-item-category_post" value="category_post" name="menu-item-category_post[<?php echo esc_attr( $item->ID ); ?>]"<?php checked( $item->category_post, 'category_post' ); ?> />
	        		<?php esc_html_e( 'Display Latest Posts', 'apper' ); ?>
	        	</label>
			</p>
		<?php } ?>
		<p class="field-megamenu description description-wide">
	        <label for="edit-menu-item-megamenu-<?php echo esc_attr( $item->ID ); ?>">
		        <input type="checkbox" id="edit-menu-item-megamenu-<?php echo esc_attr( $item->ID ); ?>" class="code edit-menu-item-megamenu" value="megamenu" name="menu-item-megamenu[<?php echo esc_attr( $item->ID ); ?>]"<?php checked( $item->megamenu, 'megamenu' ); ?> />
		        <?php esc_html_e( 'Enable megamenu', 'apper' );    ?>
	        </label>
	    </p>
		<p class="field-megamenu-auto-width description description-wide">
	        <label for="edit-menu-item-megamenu_auto_width-<?php echo esc_attr( $item->ID ); ?>">
		        <input type="checkbox" id="edit-menu-item-megamenu_auto_width-<?php echo esc_attr( $item->ID ); ?>" class="code edit-menu-item-megamenu_auto_width" value="megamenu_auto_width" name="menu-item-megamenu_auto_width[<?php echo esc_attr( $item->ID ); ?>]"<?php checked( $item->megamenu_auto_width, 'megamenu_auto_width' ); ?> />
		        <?php esc_html_e( 'Megamenu auto width?', 'apper' );    ?>
	        </label>
	    </p>
	    <p class="field-megamenu-columns description description-wide">
	        <label for="edit-menu-item-megamenu_col-<?php echo esc_attr( $item->ID ); ?>">
	            <?php esc_html_e( 'Megamenu columns (from 1 to 6)', 'apper' ); ?><br />
	            <input type="number" id="edit-menu-item-megamenu_col-<?php echo esc_attr( $item->ID ); ?>" class="widefat code edit-menu-item-custom" name="menu-item-megamenu_col[<?php echo esc_attr( $item->ID ); ?>]" min="1" max="6" value="<?php echo esc_attr( $item->megamenu_col ); ?>" />
	        </label>
	    </p>
	    <p class="field-megamenu-heading description description-wide">
	        <label for="edit-menu-item-megamenu_heading-<?php echo esc_attr( $item->ID ); ?>">
		        <input type="checkbox" id="edit-menu-item-megamenu_heading-<?php echo esc_attr( $item->ID ); ?>" value="megamenu_heading" name="menu-item-megamenu_heading[<?php echo esc_attr( $item->ID ); ?>]"<?php checked( $item->megamenu_heading, 'megamenu_heading' ); ?> />
		        <?php esc_html_e( 'Hide Mega menu heading?', 'apper' ); ?>
	        </label>
	    </p>
	    <p class="field-megamenu-widgetarea description description-wide">
			<label for="edit-menu-item-megamenu_widgetarea-<?php echo esc_attr( $item->ID ); ?>">
				<?php esc_html_e( 'Mega Menu Widget Area', 'apper' ); ?>
				<select id="edit-menu-item-megamenu_widgetarea-<?php echo esc_attr( $item->ID ); ?>" class="widefat code edit-menu-item-custom" name="menu-item-megamenu_widgetarea[<?php echo esc_attr( $item->ID ); ?>]">
					<option value="0"><?php esc_html_e( 'Select Widget Area', 'apper' ); ?></option>
					<?php global $wp_registered_sidebars;
					if ( ! empty( $wp_registered_sidebars ) && is_array( $wp_registered_sidebars ) ) :
						foreach ( $wp_registered_sidebars as $sidebar ) : ?>
							<option value="<?php echo esc_attr( $sidebar['id'] ); ?>" <?php selected( $item->megamenu_widgetarea, $sidebar['id'] ); ?>><?php echo esc_html( $sidebar['name'] ); ?>
							</option>
					<?php endforeach; endif; ?>
				</select>
			</label>
		</p>

		<div class="field-megamenu-icon description description-wide">
	        <label for="edit-menu-item-icon-<?php echo esc_attr( $item->ID ); ?>">
	            <?php esc_html_e( 'Choose icon', 'apper' ); ?><br />
	        </label>
					<?php
					$icon_classes = ( isset( $item->icon ) ) ? $item->icon : '';
					if ( !empty( $icon_classes ) ) {
			       $icon_classes = explode( '|', $icon_classes );
			       $icon_classes = $icon_classes[0] . ' ' . $icon_classes[1];
			     }
					 ?>
					<div id="" data-target="#edit-menu-item-icon-<?php echo esc_attr( $item->ID ); ?>" class="icon-picker <?php echo esc_attr( $icon_classes ); ?>"></div>
					<input type="hidden" id="edit-menu-item-icon-<?php echo esc_attr( $item->ID ); ?>" name="menu-item-icon[<?php echo esc_attr( $item->ID ); ?>]" value="<?php echo esc_attr( $item->icon ); ?>" />
	    </div>

	<?php
	}

	/**
	 * Add the custom menu style fields menu item data to fields in database.
	 *
	 * @access public
	 * @param string|int $menu_id         The menu ID.
	 * @param string|int $menu_item_db_id The menu ID from the db.
	 * @param array      $args            The arguments array.
	 * @return void
	 */
	public function update_custom_nav_fields( $menu_id, $menu_item_db_id, $args ) {

		$check = array( 'megamenu_menulabel', 'template', 'mega_template', 'nolink', 'megamenu_submenuheading', 'category_post', 'megamenu', 'megamenu_auto_width', 'megamenu_col', 'megamenu_heading', 'megamenu_widgetarea', 'icon' );

		foreach ( $check as $key ) {
			if(!isset($_POST['menu-item-'.$key][$menu_item_db_id])) {
				$_POST['menu-item-'.$key][$menu_item_db_id] = '';
			}

			$value = sanitize_text_field( wp_unslash( $_POST['menu-item-'.$key][$menu_item_db_id] ) );
			update_post_meta( $menu_item_db_id, '_menu_item_'.$key, $value );
		}

	}

	public function custom_nav_menu_attribs( $atts, $item, $args ) {
		if ( !empty( $item->icon ) ) {
       $icon_classes = explode( '|', $item->icon );
			 $hasnot_icon = false;

			 if( 'dashicons-blank' == $icon_classes[1] || 'icon-blank' == $icon_classes[1] || 'fa-blank' == $icon_classes[1] ) {
				 $hasnot_icon = true;
			 }

			 if( false === $hasnot_icon ) {
				 $icon_classes = 'has-menu-icon ' . $icon_classes[0] . ' ' . $icon_classes[1];
				 $atts['class'] = $icon_classes;
			 }

     }
		return $atts;
	}

	/**
	 * Function to replace normal edit nav walker.
	 *
	 * @return string Class name of new navwalker
	 */
	public function edit_walker() {
		require_once ACMTHEMES_INC_DIR . 'walker/class-walker-edit-custom.php';
		return 'WALKER_NAV_MENU_EDIT_CUSTOM';
	}

}

new ACMTHEMES_Nav_Walker();

Spamworldpro Mini