| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.9/wp-content/themes/woodmart/inc/widgets/ |
Upload File : |
<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Custom Navigation Menu widget class
*
* @package woodmart
*/
if ( ! defined( 'WOODMART_THEME_DIR' ) ) {
exit( 'No direct script access allowed' );
}
use XTS\Modules\Mega_Menu_Walker;
/**
* Register custom navigation menu widget.
*/
class WOODMART_WP_Nav_Menu_Widget extends WPH_Widget {
/**
* Constructor.
*/
public function __construct() {
$widget_ops = array( 'description' => esc_html__( 'Add a custom mega menu to your sidebar.', 'woodmart' ) );
parent::__construct( 'nav_mega_menu', esc_html__( 'WOODMART Sidebar Mega Menu', 'woodmart' ), $widget_ops );
}
/**
* Render widget.
*
* @param array $args Widget arguments.
* @param array $instance Widget instance.
*/
public function widget( $args, $instance ) {
$nav_menu = ! empty( $instance['nav_menu'] ) ? wp_get_nav_menu_object( $instance['nav_menu'] ) : false;
if ( ! $nav_menu ) {
return;
}
$menu_class = 'menu wd-nav wd-nav-vertical';
woodmart_enqueue_inline_style( 'mod-nav-vertical' );
woodmart_enqueue_inline_style( 'el-menu-wpb-elem' );
if ( ! empty( $instance['dropdown_design'] ) ) {
$menu_class .= ' wd-design-' . $instance['dropdown_design'];
woodmart_enqueue_inline_style( 'mod-nav-vertical-design-' . $instance['dropdown_design'] );
}
/** This filter is documented in wp-includes/default-widgets.php */
$instance['title'] = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );
echo wp_kses_post( $args['before_widget'] );
if ( ! empty( $instance['title'] ) ) {
echo wp_kses_post( $args['before_title'] ) . $instance['title'] . wp_kses_post( $args['after_title'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
wp_nav_menu(
array(
'fallback_cb' => '',
'container' => '',
'menu' => $nav_menu,
'menu_class' => $menu_class,
'walker' => new Mega_Menu_Walker(),
)
);
echo wp_kses_post( $args['after_widget'] );
}
/**
* Update widget.
*
* @param array $new_instance New instance.
* @param array $old_instance Old instance.
* @return array
*/
public function update( $new_instance, $old_instance ) {
$instance = array();
if ( ! empty( $new_instance['title'] ) ) {
$instance['title'] = wp_strip_all_tags( stripslashes( $new_instance['title'] ) );
}
if ( ! empty( $new_instance['nav_menu'] ) ) {
$instance['nav_menu'] = (int) $new_instance['nav_menu'];
}
if ( ! empty( $new_instance['dropdown_design'] ) ) {
$instance['dropdown_design'] = $new_instance['dropdown_design'];
}
return $instance;
}
/**
* Form.
*
* @param array $instance Instance.
*/
public function form( $instance ) {
$title = isset( $instance['title'] ) ? $instance['title'] : '';
$nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : '';
$dropdown_design = isset( $instance['dropdown_design'] ) ? $instance['dropdown_design'] : '';
$menus = wp_get_nav_menus();
if ( ! $menus ) {
printf(
'<p>%s</p>',
sprintf(
/* Translators: %s Link to the menu creation page. */
esc_html__( 'No menus have been created yet. %s.', 'woodmart' ),
sprintf(
'<a href="%s">%s</a>',
esc_url( admin_url( 'nav-menus.php' ) ),
esc_html__( 'Create some', 'woodmart' )
)
)
);
return;
}
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'woodmart' ); ?></label>
<input type="text" class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo sanitize_text_field( $title ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>" />
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'nav_menu' ) ); ?>"><?php esc_html_e( 'Select Menu:', 'woodmart' ); ?></label>
<select id="<?php echo esc_attr( $this->get_field_id( 'nav_menu' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'nav_menu' ) ); ?>">
<option value="0"><?php esc_html_e( '— Select —', 'woodmart' ); ?></option>
<?php
foreach ( $menus as $menu ) {
echo '<option value="' . $menu->term_id . '"' // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
. selected( $nav_menu, $menu->term_id, false )
. '>' . esc_html( $menu->name ) . '</option>';
}
?>
</select>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'dropdown_design' ) ); ?>">
<?php esc_html_e( 'Design:', 'woodmart' ); ?>
</label>
<select id="<?php echo esc_attr( $this->get_field_id( 'dropdown_design' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'dropdown_design' ) ); ?>">
<option value="default" <?php selected( $dropdown_design, 'default' ); ?>>
<?php esc_html_e( 'Default', 'woodmart' ); ?>
</option>
<option value="with-bg" <?php selected( $dropdown_design, 'with-bg' ); ?>>
<?php esc_html_e( 'With background', 'woodmart' ); ?>
</option>
<option value="simple" <?php selected( $dropdown_design, 'with-bg' ); ?>>
<?php esc_html_e( 'Simple', 'woodmart' ); ?>
</option>
</select>
</p>
<?php
}
}