PluginProbe ʕ •ᴥ•ʔ
Zenchef widget integration / 1.2.0
Zenchef widget integration v1.2.0
1.3.0 1.0.1 1.2.0 trunk 1.0.0
zenchef-widget-integration / src / Widget / Backoffice / load_settings_page_assets.php
zenchef-widget-integration / src / Widget / Backoffice Last commit date
add_settings_page.php 2 months ago load_settings_page_assets.php 2 months ago register_settings.php 2 months ago remove_settings.php 2 years ago
load_settings_page_assets.php
55 lines
1 <?php
2
3 namespace Zenchef\Widget\Widget\Backoffice;
4
5 use function wp_add_inline_script;
6 use function wp_enqueue_script;
7 use function wp_enqueue_style;
8
9 const SETTINGS_PAGE_HOOK_SUFFIX = 'settings_page_zenchef.widget.settings_page';
10
11 /**
12 * @param string $hook_suffix
13 * @return void
14 */
15 function load_settings_page_assets($hook_suffix)
16 {
17 if ($hook_suffix !== SETTINGS_PAGE_HOOK_SUFFIX) {
18 return;
19 }
20
21 wp_enqueue_style('wp-color-picker');
22 wp_enqueue_script('wp-color-picker');
23
24 $inline_js = <<<'JS'
25 jQuery(function ($) {
26 var $defaultToggle = $('#use_default_color');
27 var $colorField = $('.zc-color-picker');
28
29 if ($colorField.length === 0) {
30 return;
31 }
32
33 $colorField.wpColorPicker({
34 change: function () {},
35 clear: function () {}
36 });
37
38 function syncPickerState() {
39 var useDefault = $defaultToggle.is(':checked');
40 var $wrap = $colorField.closest('.wp-picker-container');
41 // Disable inputs + the toggle button so the picker is non-interactive
42 $wrap.find('input, button').prop('disabled', useDefault);
43 $wrap.toggleClass('zc-color-picker--disabled', useDefault);
44 }
45
46 if ($defaultToggle.length) {
47 syncPickerState();
48 $defaultToggle.on('change', syncPickerState);
49 }
50 });
51 JS;
52
53 wp_add_inline_script('wp-color-picker', $inline_js);
54 }
55