PluginProbe ʕ •ᴥ•ʔ
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI / 3.6.0
Everest Forms – Contact Form, Payment Form, Quiz, Survey & Custom Form Builder with AI v3.6.0
3.6.0 3.5.3 3.5.2 3.5.1 3.5.0 3.4.8 3.4.7 3.4.6 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.5.1 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.10 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.6.1 1.6.7 1.7.0 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.2 1.7.2.1 1.7.2.2 1.7.3 1.7.4 1.7.5 1.7.5.1 1.7.5.2 1.7.6 1.7.7 1.7.7.1 1.7.7.2 1.7.8 1.7.9 1.8.0 1.8.0.1 1.8.1 1.8.2 1.8.2.1 1.8.2.2 1.8.2.3 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.0.1 1.9.1 1.9.2 1.9.3 1.9.4 1.9.4.1 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.0.1 2.0.1 2.0.2 2.0.3 2.0.3.1 2.0.4 2.0.4.1 2.0.5 2.0.6 2.0.7 2.0.8 2.0.8.1 2.0.9 3.0.0 3.0.0.1 3.0.1 3.0.2 3.0.3 3.0.3.1 3.0.4 3.0.4.1 3.0.4.2 3.0.5 3.0.5.1 3.0.5.2 3.0.6 3.0.6.1 3.0.7.1 3.0.8 3.0.8.1 3.0.9 3.0.9.1 3.0.9.2 3.0.9.3 3.0.9.4 3.0.9.5 3.1.0 3.1.1 3.1.2 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.3.0 3.4.0 3.4.1 3.4.2 3.4.2.1 3.4.3 3.4.4 3.4.5 trunk 1.0 1.0.1 1.0.2 1.0.3
everest-forms / addons / StyleCustomizer / includes / customize / class-evf-customize-select2-control.php
everest-forms / addons / StyleCustomizer / includes / customize Last commit date
class-evf-customize-background-image-control.php 1 year ago class-evf-customize-color-control.php 1 year ago class-evf-customize-color-palette-control.php 1 year ago class-evf-customize-dimension-control.php 1 year ago class-evf-customize-image-checkbox-control.php 1 year ago class-evf-customize-image-radio-control.php 1 year ago class-evf-customize-select2-control.php 1 week ago class-evf-customize-slider-control.php 1 year ago class-evf-customize-templates-section.php 1 year ago class-evf-customize-toggle-control.php 1 year ago
class-evf-customize-select2-control.php
146 lines
1 <?php
2 /**
3 * Customize API: EVF_Customize_Select2_Control class
4 *
5 * @package EverestForms_Style_Customizer\Customize
6 * @since 1.0.0
7 */
8
9 defined( 'ABSPATH' ) || exit;
10
11 /**
12 * Customize Select2 Control class.
13 *
14 * @see WP_Customize_Control
15 */
16 class EVF_Customize_Select2_Control extends WP_Customize_Control {
17
18 /**
19 * Type.
20 *
21 * @var string
22 */
23 public $type = 'evf-select2';
24
25 /**
26 * Use Google Fonts.
27 *
28 * @var bool
29 */
30 public $google_font = false;
31
32 /**
33 * Google Font List.
34 *
35 * @var array
36 */
37 public $google_font_list = array();
38
39 /**
40 * Item List.
41 *
42 * @var array
43 */
44 public $item_list = array();
45
46 /**
47 * Enqueue controls scripts.
48 */
49 public function enqueue() {
50 wp_enqueue_style( 'selectWoo' );
51 wp_enqueue_script( 'selectWoo' );
52 }
53
54 /**
55 * Refresh the parameters passed to the JavaScript via JSON.
56 *
57 * @uses WP_Customize_Control::to_json()
58 */
59 public function to_json() {
60 parent::to_json();
61 $this->json['id'] = $this->id;
62 $this->json['value'] = $this->value();
63 $this->json['link'] = $this->get_link();
64 $this->json['choices'] = $this->choices;
65 $this->json['default'] = $this->setting->default;
66 $this->json['google_font'] = $this->google_font;
67 $this->json['google_font_list'] = ( $this->google_font ) ? $this->get_google_fonts() : array();
68 $this->json['item_list'] = $this->item_list;
69
70 $this->json['inputAttrs'] = '';
71 foreach ( $this->input_attrs as $attr => $value ) {
72 $this->json['inputAttrs'] .= $attr . '="' . esc_attr( $value ) . '" ';
73 }
74 }
75
76 /**
77 * Don't render the control content from PHP, as it's rendered via JS on load.
78 */
79 public function render_content() {}
80
81 /**
82 * Render a JS template for control display.
83 *
84 * @see WP_Customize_Control::print_template()
85 */
86 public function content_template() {
87 ?>
88 <# if ( data.label ) { #>
89 <span class="customize-control-title">{{ data.label }}</span>
90 <# } #>
91 <# if ( data.description ) { #>
92 <span class="description customize-control-description">{{{ data.description }}}</span>
93 <# } #>
94
95 <select class="evf-select2" {{{data.link}}} {{{data.inputAttrs}}} >
96 <# if ( data.google_font === true ) { #>
97 <# Object.keys( data.google_font_list ).forEach( function( key ) { #>
98 <option value='{{{ data.google_font_list[key].family }}}' {{{ (data.value === data.google_font_list[key].family )?'selected':'' }}} >{{{ data.google_font_list[key].family }}}</option>
99 <# } ); #>
100 <#} else {#>
101 <# Object.keys( data.item_list ).forEach( function( key ) { #>
102 <option value='{{{ key }}}' {{{ (data.value === key )?'selected':'' }}} >{{{ data.item_list[key] }}}</option>
103 <# } ); #>
104 <# } #>
105 </select>
106 <?php
107 }
108
109 /**
110 * Returns Google Fonts.
111 *
112 * Delegates to the shared {@see evfsc_get_google_fonts()} so the legacy customizer and the
113 * v2 React panel draw from one cached list (no duplicated fetch).
114 *
115 * @return array Google fonts list (each item exposes a `family`).
116 */
117 public function get_google_fonts() {
118 if ( function_exists( 'evfsc_get_google_fonts' ) ) {
119 return evfsc_get_google_fonts();
120 }
121
122 // Fallback (shared helper unavailable): original inline fetch.
123 $google_fonts = get_transient( 'evf_google_fonts' );
124
125 if ( false === $google_fonts ) {
126 $raw_google_fonts = wp_safe_remote_get( 'https://raw.githubusercontent.com/wpeverest/google-fonts/master/google-fonts.json' );
127
128 if ( ! is_wp_error( $raw_google_fonts ) ) {
129 $google_fonts = json_decode( wp_remote_retrieve_body( $raw_google_fonts ) );
130
131 if ( isset( $google_fonts->items ) ) {
132 $google_fonts = $google_fonts->items;
133 set_transient( 'evf_google_fonts', $google_fonts, WEEK_IN_SECONDS );
134 }
135 }
136 }
137
138 /**
139 * Filters the Style Customizer Google Fonts list.
140 *
141 * @param array $google_fonts Google fonts list.
142 */
143 return apply_filters( 'everest_forms_extensions_sections', $google_fonts );
144 }
145 }
146