Vladddosss
@Vladddosss

Как подключить Alpha Color Picker Customizer Control?

Добрый день.

Может кто то пользовался Alpha Color Picker Customizer Control вот ссылка.

Кто разобрался, как его подключить? Несколько часов мучаюсь)

Там нет пошаговой инструкции, я создал класс, подключил js, css добавил контрол на пробу и вот, что выводит.

5db1c0b467e85049620325.png

Хотя должно палитру выводить.

Или напишите каким пикером пользуетесь вы, чтобы он поддерживал RGBA и лицензия MIT
  • Вопрос задан
  • 219 просмотров
Решения вопроса 1
V_A_B
@V_A_B
¯\_(ツ)_/¯
создаете класс:
spoiler
if(class_exists('WP_Customize_Control')){
	class Alpha_Color_Control extends WP_Customize_Control{
		public $attributes="";
		public $defaultPalette=array('#000000','#ffffff','#dd3333','#dd9933','#eeee22','#81d742','#1e73be','#8224e3',);
		public function __construct($manager,$id,$args=array(),$options=array()){
			parent::__construct($manager,$id,$args);
			$this->attributes.='data-default-color="'.esc_attr($this->settings['default']->default).'"';
			$this->attributes.='data-alpha="true"';
			$this->attributes.='data-reset-alpha="'.(isset($this->input_attrs['resetalpha'])?$this->input_attrs['resetalpha']:'true').'"';
			$this->attributes.='data-custom-width="0"';}
		public function enqueue(){wp_enqueue_script('alpha',get_template_directory_uri().'/VAB_libs/VAB_functions/js/alpha_color.js',array('wp-color-picker'),'1.0',true);}
		public function to_json(){
			parent::to_json();
			$this->json['colorpickerpalette']=isset($this->input_attrs['palette'])?$this->input_attrs['palette']:$this->defaultPalette;
		}
		public function render_content(){?>
			<div class="wpcolorpicker_alpha_color_control">
				<?php if(!empty($this->label)){?>
					<span class="customize-control-title"><?php echo esc_html($this->label);?></span>
				<?php }
				if(!empty($this->description)){?>
					<span class="customize-control-description"><?php echo esc_html($this->description);?></span>
				<?php }?>
				<input type="text" class="color-picker" id="<?php echo esc_attr($this->id);?>" name="<?php echo esc_attr($this->id);?>" value="<?php echo esc_attr($this->value());?>" class="customize-control-colorpicker-alpha-color" <?php echo $this->attributes;?> <?php $this->link();?> />
			</div><?php	}}}

в коде замените адрес на свой, смотря куда файл в теме кинете (файл скину ниже)
public function enqueue(){wp_enqueue_script('alpha',get_template_directory_uri().'/VAB_libs/VAB_functions/js/wp-color-picker-alpha.js',array('wp-color-picker'),'1.0',true);}

далее код в кастомайзер:
spoiler
add_action('customize_register','action_customize_register');
if(!function_exists('action_customize_register')){function action_customize_register($customizer){
	$customizer->add_setting('VAB_alpha_color',array('default'=>'rgba(209,0,55,0.7)',)); 
	$customizer->add_control(new Alpha_Color_Control($customizer,'VAB_alpha_color',
		 array(
				'label'=>__('Альфа колор пикер','VAB'),
				'description'=>esc_html__('Описание','VAB'),
				'section'=>'title_tagline',
				'input_attrs'=>array('palette'=>array('#000000','#ffffff','#dd3333','#dd9933','#eeee22','#81d742','#1e73be','#8224e3',)),)
	));
}}

пример вывода:
echo '<div style="background:'.get_theme_mod('VAB_alpha_color').';">VAB_alpha_color</div>';

исходники
результат:
spoiler

5db1e278c9c6d148764481.jpeg
5db1e2838917b283373257.jpeg


заменил в классе атрибут значения по умолчанию при сбросе, иначе сбрасывает на начальное значение текущей сессии.
spoiler
строку:
$this->attributes.='data-default-color="'.esc_attr($this->value()).'"';

поменял на:
$this->attributes.='data-default-color="'.esc_attr($this->settings['default']->default).'"';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы