PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-search / src / customizer / class-customizer.php
jetpack / jetpack_vendor / automattic / jetpack-search / src / customizer Last commit date
customize-controls 3 months ago class-customizer.php 7 months ago
class-customizer.php
367 lines
1 <?php
2 /**
3 * Jetpack Search Customizer Integration
4 *
5 * @package @automattic/jetpack-search
6 */
7
8 namespace Automattic\Jetpack\Search;
9
10 use Automattic\Jetpack\Assets;
11 use WP_Customize_Color_Control;
12 use WP_Customize_Manager;
13
14 /**
15 * Class to customize search on the site.
16 *
17 * @phan-constructor-used-for-side-effects
18 */
19 class Customizer {
20 /**
21 * Search Plan class.
22 *
23 * @var Plan
24 */
25 public $plan;
26
27 /**
28 * Class initialization.
29 */
30 public function __construct() {
31 add_action( 'customize_register', array( $this, 'customize_register' ) );
32 add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_controls_enqueue_scripts' ) );
33 $this->plan = new Plan();
34 }
35
36 /**
37 * Initialize Customizer controls.
38 *
39 * @param WP_Customize_Manager $wp_customize Customizer instance.
40 */
41 public function customize_register( $wp_customize ) {
42 $section_id = 'jetpack_search';
43 $setting_prefix = Options::OPTION_PREFIX;
44
45 $wp_customize->add_section(
46 $section_id,
47 array(
48 /** "Search" is a product name, do not translate. */
49 'title' => 'Jetpack Search',
50 'capability' => 'edit_theme_options',
51 'priority' => 200,
52 )
53 );
54
55 $id = $setting_prefix . 'color_theme';
56 $wp_customize->add_setting(
57 $id,
58 array(
59 'default' => 'light',
60 'transport' => 'postMessage',
61 'type' => 'option',
62 )
63 );
64 $wp_customize->add_control(
65 $id,
66 array(
67 'label' => __( 'Theme', 'jetpack-search-pkg' ),
68 'description' => __( 'Select a theme for your search overlay.', 'jetpack-search-pkg' ),
69 'section' => $section_id,
70 'type' => 'radio',
71 'choices' => array(
72 'light' => __( 'Light', 'jetpack-search-pkg' ),
73 'dark' => __( 'Dark', 'jetpack-search-pkg' ),
74 ),
75 )
76 );
77
78 $id = $setting_prefix . 'result_format';
79 $wp_customize->add_setting(
80 $id,
81 array(
82 'default' => 'minimal',
83 'transport' => 'postMessage',
84 'type' => 'option',
85 )
86 );
87 $wp_customize->add_control(
88 $id,
89 array(
90 'label' => __( 'Result Format', 'jetpack-search-pkg' ),
91 'description' => __( 'Choose how the search results look.', 'jetpack-search-pkg' ),
92 'section' => $section_id,
93 'type' => 'select',
94 'choices' => array(
95 'minimal' => __( 'Minimal', 'jetpack-search-pkg' ),
96 'expanded' => __( 'Expanded (shows images)', 'jetpack-search-pkg' ),
97 'product' => __( 'Product (for WooCommerce stores)', 'jetpack-search-pkg' ),
98 ),
99 )
100 );
101
102 $id = $setting_prefix . 'default_sort';
103 $wp_customize->add_setting(
104 $id,
105 array(
106 'default' => 'relevance',
107 'type' => 'option',
108 )
109 );
110 $wp_customize->add_control(
111 $id,
112 array(
113 'choices' => array(
114 'relevance' => __( 'Relevance (recommended)', 'jetpack-search-pkg' ),
115 'newest' => __( 'Newest first', 'jetpack-search-pkg' ),
116 'oldest' => __( 'Oldest first', 'jetpack-search-pkg' ),
117 'rating_desc' => __( 'Product rating', 'jetpack-search-pkg' ),
118 'price_asc' => __( 'Price: low to high', 'jetpack-search-pkg' ),
119 'price_desc' => __( 'Price: high to low', 'jetpack-search-pkg' ),
120 ),
121 'description' => __( 'Pick the initial sort for your search results.', 'jetpack-search-pkg' ),
122 'label' => __( 'Default Sort', 'jetpack-search-pkg' ),
123 'section' => $section_id,
124 'type' => 'select',
125 )
126 );
127
128 $id = $setting_prefix . 'overlay_trigger';
129 $wp_customize->add_setting(
130 $id,
131 array(
132 'default' => Options::DEFAULT_OVERLAY_TRIGGER,
133 'transport' => 'postMessage',
134 'type' => 'option',
135 )
136 );
137 $wp_customize->add_control(
138 $id,
139 array(
140 'label' => __( 'Search Input Overlay Trigger', 'jetpack-search-pkg' ),
141 'description' => __( 'Select when your overlay should appear.', 'jetpack-search-pkg' ),
142 'section' => $section_id,
143 'type' => 'select',
144 'choices' => array(
145 Options::OVERLAY_TRIGGER_SUBMIT => __( 'Open when user submits the form (recommended)', 'jetpack-search-pkg' ),
146 Options::OVERLAY_TRIGGER_IMMEDIATE => __( 'Open when user starts typing', 'jetpack-search-pkg' ),
147 ),
148 )
149 );
150
151 $id = $setting_prefix . 'filtering_opens_overlay_settings';
152 $wp_customize->add_setting(
153 $id,
154 array( 'type' => 'option' )
155 );
156 $wp_customize->add_control(
157 new Label_Control(
158 $wp_customize,
159 $id,
160 array(
161 'label' => __( 'Filtering Search Overlay', 'jetpack-search-pkg' ),
162 'description' => __( 'Open overlay when filters are used outside the Jetpack Sidebar', 'jetpack-search-pkg' ),
163 'section' => $section_id,
164 )
165 )
166 );
167
168 $id = $setting_prefix . 'filtering_opens_overlay';
169 $wp_customize->add_setting(
170 $id,
171 array(
172 'default' => '1',
173 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
174 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
175 'transport' => 'postMessage',
176 'type' => 'option',
177 )
178 );
179 $wp_customize->add_control(
180 $id,
181 array(
182 'type' => 'checkbox',
183 'section' => $section_id,
184 'label' => __( 'Open overlay from filter links', 'jetpack-search-pkg' ),
185 )
186 );
187
188 $id = $setting_prefix . 'excluded_post_types';
189 $wp_customize->add_setting(
190 $id,
191 array(
192 'default' => '',
193 'type' => 'option',
194 )
195 );
196 $wp_customize->add_control(
197 new Excluded_Post_Types_Control(
198 $wp_customize,
199 $id,
200 array(
201 'description' => __( 'Choose post types to exclude from search results. You must leave at least one post type unchecked.', 'jetpack-search-pkg' ),
202 'label' => __( 'Excluded Post Types', 'jetpack-search-pkg' ),
203 'section' => $section_id,
204 )
205 )
206 );
207
208 $id = $setting_prefix . 'highlight_color';
209 $wp_customize->add_setting(
210 $id,
211 array(
212 'default' => '#FFC',
213 'transport' => 'postMessage',
214 'type' => 'option',
215 )
216 );
217 $wp_customize->add_control(
218 new WP_Customize_Color_Control(
219 $wp_customize,
220 $id,
221 array(
222 'label' => __( 'Highlight Search Terms', 'jetpack-search-pkg' ),
223 'description' => __( 'Choose a color to highlight matching search terms.', 'jetpack-search-pkg' ),
224 'section' => $section_id,
225 )
226 )
227 );
228
229 $id = $setting_prefix . 'additional_settings_placeholder';
230 $wp_customize->add_setting(
231 $id,
232 array( 'type' => 'option' )
233 );
234 $wp_customize->add_control(
235 new Label_Control(
236 $wp_customize,
237 $id,
238 array(
239 'label' => __( 'Additional Jetpack Search Settings', 'jetpack-search-pkg' ),
240 'section' => $section_id,
241 )
242 )
243 );
244
245 $id = $setting_prefix . 'enable_sort';
246 $wp_customize->add_setting(
247 $id,
248 array(
249 'default' => '1',
250 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
251 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
252 'transport' => 'postMessage',
253 'type' => 'option',
254 )
255 );
256 $wp_customize->add_control(
257 $id,
258 array(
259 'label' => __( 'Show sort selector', 'jetpack-search-pkg' ),
260 'section' => $section_id,
261 'type' => 'checkbox',
262 )
263 );
264
265 $id = $setting_prefix . 'inf_scroll';
266 $wp_customize->add_setting(
267 $id,
268 array(
269 'default' => '1',
270 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
271 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
272 'transport' => 'postMessage',
273 'type' => 'option',
274 )
275 );
276 $wp_customize->add_control(
277 $id,
278 array(
279 'type' => 'checkbox',
280 'section' => $section_id,
281 'label' => __( 'Enable infinite scrolling', 'jetpack-search-pkg' ),
282 )
283 );
284
285 $id = $setting_prefix . 'show_post_date';
286 $wp_customize->add_setting(
287 $id,
288 array(
289 'default' => '1',
290 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
291 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
292 'transport' => 'postMessage',
293 'type' => 'option',
294 )
295 );
296 $wp_customize->add_control(
297 $id,
298 array(
299 'type' => 'checkbox',
300 'section' => $section_id,
301 'label' => __( 'Show post date', 'jetpack-search-pkg' ),
302 )
303 );
304
305 $id = $setting_prefix . 'show_product_price';
306 $wp_customize->add_setting(
307 $id,
308 array(
309 'default' => '1',
310 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
311 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
312 'transport' => 'postMessage',
313 'type' => 'option',
314 )
315 );
316 $wp_customize->add_control(
317 $id,
318 array(
319 'type' => 'checkbox',
320 'section' => $section_id,
321 'label' => __( 'Show price', 'jetpack-search-pkg' ),
322 )
323 );
324
325 $id = $setting_prefix . 'show_powered_by';
326 $wp_customize->add_setting(
327 $id,
328 array(
329 'default' => '1',
330 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
331 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
332 'transport' => 'postMessage',
333 'type' => 'option',
334 )
335 );
336
337 if ( ! $this->plan->is_free_plan() ) {
338 $wp_customize->add_control(
339 $id,
340 array(
341 'type' => 'checkbox',
342 'section' => $section_id,
343 'label' => __( 'Display "Powered by Jetpack"', 'jetpack-search-pkg' ),
344 )
345 );
346 }
347 }
348
349 /**
350 * Enqueue assets for Customizer controls.
351 */
352 public function customize_controls_enqueue_scripts() {
353 Assets::register_script(
354 'jetpack-instant-search-customizer',
355 'customize-controls/customize-controls.js',
356 __FILE__,
357 array(
358 'css_path' => 'customize-controls/customize-controls.css',
359 'dependencies' => array( 'customize-controls' ),
360 'in_footer' => true,
361 'textdomain' => 'jetpack-search-pkg',
362 )
363 );
364 Assets::enqueue_script( 'jetpack-instant-search-customizer' );
365 }
366 }
367