File manager - Edit - /home/palg2351/public_html/hasanahciaterhills.com/wp-content/themes/landingpress-wp/inc/customize.php
Back
<?php if (! defined('ABSPATH')) { exit; // Exit if accessed directly } function landingpress_customize_setting_type() { return apply_filters('landingpress_customize_setting_type', 'theme_mod'); } function landingpress_customize_setting_db() { $setting_db = defined('LANDINGPRESS_THEME_SLUG') ? LANDINGPRESS_THEME_SLUG : ''; $setting_db = apply_filters('landingpress_customize_setting_db', $setting_db); if (!$setting_db) { $setting_db = get_template(); } return $setting_db; } function landingpress_customize_get_mod($field) { if (! $field['setting']) { return false; } if (! isset($field['default'])) { global $landingpress_defaults; if (isset($landingpress_defaults[$field['setting']])) { $field['default'] = $landingpress_defaults[$field['setting']]; } else { $field['default'] = false; } } if (! isset($field['setting_type'])) { $field['setting_type'] = landingpress_customize_setting_type(); } if (! isset($field['setting_db'])) { $field['setting_db'] = ''; } if ($field['setting_type'] == 'option') { $value = get_option($field['setting'], $field['default']); } elseif ($field['setting_type'] == 'option_mod') { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $setting_db_value = get_option($setting_db); if (isset($setting_db_value[$field['setting']])) { $value = $setting_db_value[$field['setting']]; } else { $value = $field['default']; } } elseif ($field['setting_type'] == 'option_mod2') { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $setting_db_value = get_option($setting_db); if (isset($setting_db_value[$field['setting']][$field['setting2']])) { $value = $setting_db_value[$field['setting']][$field['setting2']]; } else { $value = $field['default']; } } else { $value = get_theme_mod($field['setting'], $field['default']); } if (empty($value) && !empty($field['default']) && isset($field['force_default']) && $field['force_default']) { $value = $field['default']; } return $value; } add_action('customize_register', 'landingpress_customize_register', 10); function landingpress_customize_register($wp_customize) { if (! isset($wp_customize)) { return; } $wp_customize->register_control_type('LandingPress_Customize_Heading_Control'); $wp_customize->register_control_type('LandingPress_Customize_Warning_Control'); $wp_customize->register_control_type('LandingPress_Customize_Number_Control'); $wp_customize->register_control_type('LandingPress_Customize_Color_Control'); $wp_customize->register_control_type('LandingPress_Customize_Slider_Control'); $wp_customize->register_control_type('LandingPress_Customize_Radio_Buttonset_Control'); $wp_customize->register_control_type('LandingPress_Customize_Radio_Iconset_Control'); $wp_customize->register_control_type('LandingPress_Customize_Radio_Image_Control'); $wp_customize->register_control_type('LandingPress_Customize_Select2_Control'); $wp_customize->register_control_type('LandingPress_Customize_Select2_Multiple_Control'); $wp_customize->register_control_type('LandingPress_Customize_GoogleFonts_Control'); $wp_customize->register_control_type('LandingPress_Customize_Sortable_Control'); $wp_customize->register_control_type('LandingPress_Customize_Checkbox_Multiple_Control'); $fields = apply_filters('landingpress_customize_controls', array()); if (! empty($fields)) { foreach ($fields as $field) { $defaults = array( 'setting_type' => landingpress_customize_setting_type(), 'setting' => '', 'setting2' => '', 'setting_db' => '', 'section' => 'colors', 'panel' => '', 'title' => '', 'type' => '', 'priority' => 10, 'label' => '', 'description' => '', 'choices' => array(), 'input_attrs' => array(), 'default' => '', 'capability' => 'edit_theme_options', 'sanitize_callback' => '', 'active_callback' => '', 'transport' => 'refresh', ); if ('text' == $field['type']) { $defaults['sanitize_callback'] = 'sanitize_text_field'; } elseif ('textarea' == $field['type']) { $defaults['sanitize_callback'] = 'sanitize_textarea_field'; } elseif ('textarea-html' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_html'; } elseif ('textarea-nohtml' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_nohtml'; } elseif ('textarea-unfiltered' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_unfiltered'; } elseif ('editor' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_html'; } elseif ('editor-unfiltered' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_unfiltered'; } elseif ('email' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_email'; } elseif ('url' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_url'; } elseif ('number' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_number'; } elseif ('checkbox' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_checkbox'; } elseif (in_array($field['type'], array('select', 'select2', 'radio', 'radio-buttonset', 'radio-iconset', 'radio-image'))) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_select'; } elseif (in_array($field['type'], array('sortable', 'select-multiple', 'select2-multiple', 'checkbox-multiple'))) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_select_multiple'; } elseif (in_array($field['type'], array('font'))) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_select_remote'; } elseif ('image' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_image'; } elseif ('color' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_color'; } elseif ('dropdown-pages' == $field['type']) { $defaults['sanitize_callback'] = 'landingpress_customize_sanitize_pages'; } else { $defaults['sanitize_callback'] = 'sanitize_text_field'; } if (!empty($field['style']) || (!empty($field['scheme']) && !empty($field['variable']))) { if (!in_array($field['type'], array('font'))) { $defaults['transport'] = 'postMessage'; } } global $landingpress_defaults; if (isset($landingpress_defaults[$field['setting']])) { $defaults['default'] = $landingpress_defaults[$field['setting']]; } $field = wp_parse_args($field, $defaults); if ($field['setting'] && $field['type']) { $setting = $field['setting']; if ($field['setting_type'] == 'option_mod') { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $field['setting_type'] = 'option'; $setting = $setting_db . '[' . $field['setting'] . ']'; } elseif ($field['setting_type'] == 'option_mod2') { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $field['setting_type'] = 'option'; $setting = $setting_db . '[' . $field['setting'] . ']' . '[' . $field['setting2'] . ']'; } elseif ($field['setting_type'] == 'option') { $field['setting_type'] = 'option'; } else { $field['setting_type'] = 'theme_mod'; } if (in_array($field['type'], array('slider', 'sidebar-width'))) { if (!isset($field['choices']['min'])) { $field['choices']['min'] = 0; } if (!isset($field['choices']['max'])) { $field['choices']['max'] = 100; } if (!isset($field['choices']['step'])) { $field['choices']['step'] = 1; } if (!isset($field['choices']['unit'])) { $field['choices']['unit'] = 'px'; } if (!isset($field['choices']['type'])) { $field['choices']['type'] = $field['type']; } } if (in_array($field['type'], array('textarea-html', 'textarea-nohtml', 'textarea-unfiltered', 'editor', 'editor-unfiltered'))) { $field['type'] = 'textarea'; } if ('panel' == $field['type']) { $wp_customize->add_panel( $field['setting'], array( 'title' => $field['title'], 'description' => $field['description'], 'priority' => $field['priority'], ) ); } elseif ('section' == $field['type']) { $description = ''; if (!empty($field['tabs'])) { $description .= '<p class="landingpress-customize-tabs">'; foreach ($field['tabs'] as $key => $tab) { if ($tab['target'] == $field['setting']) { $description .= '<span class="landingpress-customize-tab-menu active"><span class="landingpress-customize-tab-icon ' . $tab['icon'] . '"></span><span class="landingpress-customize-tab-label">' . $tab['label'] . '</span></span>'; } else { $description .= '<a class="landingpress-customize-tab-menu" href="javascript:wp.customize.' . $tab['type'] . '( \'' . $tab['target'] . '\' ).focus();"><span class="landingpress-customize-tab-icon ' . $tab['icon'] . '"></span><span class="landingpress-customize-tab-label">' . $tab['label'] . '</span></a>'; } } $description .= '</p>'; } if ($field['panel']) { $wp_customize->add_section( $field['setting'], array( 'title' => $field['title'], 'description' => $description . $field['description'], 'panel' => $field['panel'], 'priority' => $field['priority'], ) ); } else { $wp_customize->add_section( $field['setting'], array( 'title' => $field['title'], 'description' => $field['description'], 'priority' => $field['priority'], ) ); } } else { $wp_customize->add_setting( $setting, array( 'default' => $field['default'], 'type' => $field['setting_type'], 'capability' => $field['capability'], 'sanitize_callback' => $field['sanitize_callback'], 'transport' => $field['transport'], ) ); if (in_array($field['type'], array('checkbox', 'text', 'textarea', 'email', 'tel', 'url', 'dropdown-pages'))) { $wp_customize->add_control( $setting, array( 'settings' => $setting, 'section' => $field['section'], 'type' => $field['type'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ); } elseif (in_array($field['type'], array('radio', 'select')) && !empty($field['choices'])) { $wp_customize->add_control( $setting, array( 'settings' => $setting, 'section' => $field['section'], 'type' => $field['type'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ); } elseif ('color' == $field['type']) { $wp_customize->add_control( // new WP_Customize_Color_Control( new LandingPress_Customize_Color_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('image' == $field['type']) { $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif (in_array($field['type'], array('number'))) { $wp_customize->add_control( new LandingPress_Customize_Number_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif (in_array($field['type'], array('slider', 'sidebar-width'))) { $wp_customize->add_control( new LandingPress_Customize_Slider_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('radio-buttonset' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Radio_Buttonset_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('radio-iconset' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Radio_Iconset_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('radio-image' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Radio_Image_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('heading' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Heading_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('warning' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Warning_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('select2' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Select2_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('select2-multiple' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Select2_Multiple_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('font' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_GoogleFonts_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => array(), 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('sortable' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Sortable_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } elseif ('checkbox-multiple' == $field['type']) { $wp_customize->add_control( new LandingPress_Customize_Checkbox_Multiple_Control( $wp_customize, $setting, array( 'settings' => $setting, 'section' => $field['section'], 'priority' => $field['priority'], 'label' => $field['label'], 'description' => $field['description'], 'choices' => $field['choices'], 'input_attrs' => $field['input_attrs'], 'active_callback' => $field['active_callback'], ) ) ); } } } } } } add_action('customize_controls_enqueue_scripts', 'landingpress_customize_controls_enqueue_scripts', 1); function landingpress_customize_controls_enqueue_scripts() { $assets_uri = apply_filters('landingpress_customize_assets_uri', get_template_directory_uri() . '/assets'); $assets_dir = apply_filters('landingpress_customize_assets_dir', get_template_directory() . '/assets'); wp_enqueue_style('choices', $assets_uri . '/lib/choices/choices.min.css', array(), '11.0.2'); wp_enqueue_script('choices', $assets_uri . '/lib/choices/choices.min.js', array(), '11.0.2', false); wp_enqueue_style('pickr', $assets_uri . '/lib/pickr/nano.min.css', array(), '1.9.1'); wp_enqueue_script('pickr', $assets_uri . '/lib/pickr/pickr.es5.min.js', array(), '1.9.1', false); wp_enqueue_script('landingpress-customize', $assets_uri . '/js/customize.min.js', array('jquery', 'jquery-ui-core', 'jquery-ui-slider', 'jquery-ui-sortable', 'choices', 'pickr', 'wp-color-picker', 'customize-controls'), filemtime($assets_dir . '/js/customize.min.js'), false); wp_enqueue_style('landingpress-customize', $assets_uri . '/css/customize.min.css', array('choices', 'pickr', 'wp-color-picker', 'customize-controls'), filemtime($assets_dir . '/css/customize.min.css')); $fields = apply_filters('landingpress_customize_controls', array()); $styles = ''; if (! empty($fields)) { foreach ($fields as $field) { if ($field['type'] == 'section' && isset($field['hide_in_customizer']) && $field['hide_in_customizer']) { $styles .= '#accordion-section-' . $field['setting'] . '{display: none !important;} '; } } } wp_add_inline_style('landingpress-customize', $styles); } function landingpress_customize_output() { $vars_scheme = [ 'root' => [], 'light' => [], 'dark' => [], ]; $style = ''; $fonts = array(); $fonts_weight = array(); $fields = apply_filters('landingpress_customize_controls', array()); if (! empty($fields)) { foreach ($fields as $field_key => $field) { $defaults = array( 'setting_type' => landingpress_customize_setting_type(), 'setting' => '', 'setting_db' => '', 'type' => '', 'style' => '', 'scheme' => '', 'variable' => '', 'variables' => [], ); $field = wp_parse_args($field, $defaults); if (!empty($field['variables'])) { if (in_array($field['type'], array('color'))) { $value = landingpress_customize_get_mod($field); $value = trim($value); if (!empty($value)) { foreach ($field['variables'] as $scheme => $vars) { if (!in_array($scheme, array('root', 'light', 'dark'))) { $scheme = 'root'; } foreach ($vars as $variable => $data_var) { if ($data_var['adjust'] == 'rgba') { $color = landingpress_customize_color_rgba($value, $data_var['percentage']); } elseif ($data_var['adjust'] == 'shade') { $color = landingpress_customize_color_shade($value, $data_var['percentage']); } elseif ($data_var['adjust'] == 'tint') { $color = landingpress_customize_color_tint($value, $data_var['percentage']); } else { $color = $value; } $vars_scheme[$scheme][$variable] = $color; } } } } } elseif (!empty($field['scheme']) && !empty($field['variable'])) { $value = landingpress_customize_get_mod($field); $value = trim($value); if (!empty($value)) { $unit = ''; if (!empty($field['choices']['unit'])) { $unit = $field['choices']['unit']; } elseif (!empty($field['unit'])) { $unit = $field['unit']; } $scheme = $field['scheme']; if (!in_array($scheme, array('root', 'light', 'dark'))) { $scheme = 'root'; } if (is_array($field['variable'])) { if (isset($field['variable'][$value])) { $variable = $field['variable'][$value]; $vars_scheme[$scheme][$variable] = $value . $unit; } } else { $variable = $field['variable']; $vars_scheme[$scheme][$variable] = $value . $unit; } } } else { if (in_array($field['type'], array('color', 'image')) && $field['setting'] && !empty($field['style'])) { if ($value = landingpress_customize_get_mod($field)) { $style .= str_replace('[value]', $value, $field['style']); } } elseif (in_array($field['type'], array('number', 'slider')) && $field['setting'] && !empty($field['style'])) { $value = landingpress_customize_get_mod($field); if (is_numeric($value)) { $style .= str_replace('[value]', $value, $field['style']); } } elseif (in_array($field['type'], array('radio', 'select', 'select2', 'radio-buttonset', 'radio-iconset', 'radio-image')) && $field['setting'] && !empty($field['style'])) { if ($value = landingpress_customize_get_mod($field)) { if (isset($field['style'][$value])) { $style .= $field['style'][$value]; } } } elseif (in_array($field['type'], array('checkbox')) && $field['setting'] && !empty($field['style'])) { $value = landingpress_customize_get_mod($field); if ($value && isset($field['style']['on'])) { $style .= $field['style']['on']; } elseif (! $value && isset($field['style']['off'])) { $style .= $field['style']['off']; } } elseif (in_array($field['type'], array('font')) && $field['setting'] && (!empty($field['selector']) || !empty($field['variable']))) { $value = landingpress_customize_get_mod($field); $font_system = 'system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"'; $font_family = ''; $font_google = false; if ($value && 'default' != $value) { if ('system-font-stack' == $value) { $font_family = $font_system; } elseif (in_array($value, array('serif', 'sans-serif'))) { $font_family = $value; } elseif (false !== strpos($value, ' (') && false !== strpos($value, ')')) { $value = str_replace(')', '', $value); $value = explode(' (', $value); if (is_array($value) && 2 == count($value)) { if ($value[1] == 'sans-serif') { $font_family = '"' . $value[0] . '", ' . $font_system; $font_google = $value[0]; } elseif ($value[1] == 'serif') { $font_family = '"' . $value[0] . '", serif'; $font_google = $value[0]; } else { $font_family = '"' . $value[0] . '"'; $font_google = $value[0]; } } } else { $font_family = '"' . $value . '", ' . $font_system; $font_google = $value; } } if ($font_google) { $fonts[$field['setting']] = $font_google; $font_weight = ''; if (isset($fields[$field_key . '_weight'])) { $font_weight = landingpress_customize_get_mod($fields[$field_key . '_weight']); } $fonts_weight[$field['setting']] = $font_weight; } if ($font_family) { if (!empty($field['variable'])) { $style .= ':root { ' . $field['variable'] . ': ' . $font_family . ' }'; } else { $style .= $field['selector'] . '{ font-family: ' . $font_family . '; }'; } } } elseif (in_array($field['type'], array('sidebar-width')) && $field['setting'] && !empty($field['style'])) { $value = landingpress_customize_get_mod($field); if ($value > 0) { $sidebar_style = $field['style']; $sidebar_style = str_replace('[value]', $value, $sidebar_style); $sidebar_style = str_replace('[100_value]', (100 - $value), $sidebar_style); $style .= $sidebar_style; } } } } } $style_scheme = ''; foreach ($vars_scheme as $scheme => $vars) { if (!empty($vars)) { $style_scheme .= $scheme == 'root' ? ':root {' : '[data-ss-theme="' . $scheme . '"] {'; foreach ($vars as $variable => $value) { $style_scheme .= $variable . ':' . $value . ';'; } $style_scheme .= '}'; } } $output = array( 'style' => $style_scheme . $style, 'fonts' => $fonts, 'fonts_weight' => $fonts_weight, ); return $output; } add_action('customize_save_after', 'landingpress_customize_save_after'); function landingpress_customize_save_after() { $version = defined('LANDINGPRESS_THEME_VERSION') ? LANDINGPRESS_THEME_VERSION : true; $output = landingpress_customize_output(); set_theme_mod('landingpress_customize_saved_css', $output['style']); set_theme_mod('landingpress_customize_saved_fonts', $output['fonts']); set_theme_mod('landingpress_customize_saved_fonts_weight', $output['fonts_weight']); set_theme_mod('landingpress_customize_saved_version', $version); } add_filter('landingpress_style', 'landingpress_style_customize_css'); function landingpress_style_customize_css($style) { $version = defined('LANDINGPRESS_THEME_VERSION') ? LANDINGPRESS_THEME_VERSION : true; $css = ''; if (! is_customize_preview()) { if (defined('LANDINGPRESS_CUSTOMIZER_DEBUG') && LANDINGPRESS_CUSTOMIZER_DEBUG) { $style = $style . ' /* Customizer Debug is ON */ '; $output = landingpress_customize_output(); $css = $output['style']; } else { $saved_version = get_theme_mod('landingpress_customize_saved_version'); if ($saved_version == $version) { $css = get_theme_mod('landingpress_customize_saved_css'); } else { $output = landingpress_customize_output(); $css = $output['style']; set_theme_mod('landingpress_customize_saved_css', $output['style']); set_theme_mod('landingpress_customize_saved_fonts', $output['fonts']); set_theme_mod('landingpress_customize_saved_fonts_weight', $output['fonts_weight']); set_theme_mod('landingpress_customize_saved_version', $version); } } } $style = $style . $css; return $style; } /* Backward compatibility for old themes */ add_action('landingpress_custom_styles', 'landingpress_style_customize_css_custom'); function landingpress_style_customize_css_custom() { echo apply_filters('landingpress_style', ''); } function landingpress_google_fonts() { $version = defined('LANDINGPRESS_THEME_VERSION') ? LANDINGPRESS_THEME_VERSION : true; $fonts = array(); $fonts_weight = array(); if (! is_customize_preview()) { if (defined('LANDINGPRESS_CUSTOMIZER_DEBUG') && LANDINGPRESS_CUSTOMIZER_DEBUG) { $output = landingpress_customize_output(); $fonts = $output['fonts']; $fonts_weight = $output['fonts_weight']; } else { $saved_version = get_theme_mod('landingpress_customize_saved_version'); if ($saved_version == $version) { $fonts = get_theme_mod('landingpress_customize_saved_fonts'); $fonts_weight = get_theme_mod('landingpress_customize_saved_fonts_weight'); } else { $output = landingpress_customize_output(); $fonts = $output['fonts']; $fonts_weight = $output['fonts_weight']; set_theme_mod('landingpress_customize_saved_css', $output['style']); set_theme_mod('landingpress_customize_saved_fonts', $output['fonts']); set_theme_mod('landingpress_customize_saved_fonts_weight', $output['fonts_weight']); set_theme_mod('landingpress_customize_saved_version', $version); } } } $fonts = apply_filters('landingpress_customize_saved_fonts', $fonts); $fonts_weight = apply_filters('landingpress_customize_saved_fonts_weight', $fonts_weight); $fonts_google = array(); if (is_array($fonts) && !empty($fonts)) { foreach ($fonts as $font_key => $font) { if (! in_array($font, array('serif', 'sans-serif', 'system-font-stack'))) { $fonts_google[$font_key] = $font; } } } $googlefonts = array(); if (is_array($fonts_google) && !empty($fonts_google)) { foreach ($fonts_google as $font_key => $font_google) { $googlefont = urlencode($font_google); if (isset($fonts_weight[$font_key])) { $weight = $fonts_weight[$font_key]; if (!empty($weight) && '400' !== $weight) { $googlefont .= ':wght@' . $weight; } } $googlefonts[] = $googlefont; } } return apply_filters('landingpress_google_fonts', $googlefonts); } add_action('wp_enqueue_scripts', 'landingpress_enqueue_googlefonts'); function landingpress_enqueue_googlefonts() { $googlefonts = landingpress_google_fonts(); if (empty($googlefonts)) { return; } $googlefonts = array_unique($googlefonts); $i = 1; foreach ($googlefonts as $googlefont) { $googlefont = str_replace(' ', '+', $googlefont); wp_enqueue_style('landingpress-googlefonts-' . $i, 'https://fonts.googleapis.com/css2?family=' . $googlefont . '&display=swap'); $i++; } } add_action('wp_resource_hints', 'landingpress_resource_hints', 10, 2); function landingpress_resource_hints($urls, $relation_type) { if ('preconnect' !== $relation_type) { return $urls; } $googlefonts = landingpress_google_fonts(); if (empty($googlefonts)) { return $urls; } $urls[] = [ 'href' => 'https://fonts.googleapis.com', ]; $urls[] = [ 'href' => 'https://fonts.gstatic.com', 'crossorigin' => 'anonymous', ]; return $urls; } add_action('wp_head', 'landingpress_customize_preview_head_css', 9999); function landingpress_customize_preview_head_css() { if (! is_customize_preview()) { return; } $fields = apply_filters('landingpress_customize_controls', array()); if (! empty($fields)) { foreach ($fields as $field) { $defaults = array( 'setting_type' => landingpress_customize_setting_type(), 'setting' => '', 'setting_db' => '', 'type' => '', 'style' => '', 'scheme' => '', 'variable' => '', ); $field = wp_parse_args($field, $defaults); if (!empty($field['scheme']) && !empty($field['variable'])) { if (in_array($field['scheme'], array('light', 'dark'))) { $selector = '[data-ss-theme="' . $field['scheme'] . '"]'; } else { $selector = ':root'; } $unit = ''; if (!empty($field['choices']['unit'])) { $unit = $field['choices']['unit']; } elseif (!empty($field['unit'])) { $unit = $field['unit']; } if (is_array($field['variable'])) { $field['style'] = []; foreach ($field['variable'] as $key => $variable) { $field['style'][$key] = $selector . ' { ' . $variable . ': [value]' . $unit . ' }'; } } else { $field['style'] = $selector . ' { ' . $field['variable'] . ': [value]' . $unit . ' }'; } } if ('option_mod' == $field['setting_type']) { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $setting = $setting_db . '[' . $field['setting'] . ']'; } elseif ('option_mod2' == $field['setting_type']) { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $setting = $setting_db . '[' . $field['setting'] . ']' . '[' . $field['setting2'] . ']'; } else { $setting = $field['setting']; } if (in_array($field['type'], array('color')) && !empty($field['variables'])) { $value = landingpress_customize_get_mod($field); $value = trim($value); if (!empty($value)) { $style = ''; foreach ($field['variables'] as $scheme => $vars) { if (!in_array($scheme, array('root', 'light', 'dark'))) { $scheme = 'root'; } $style .= $scheme == 'root' ? ':root {' : '[data-ss-theme="' . $scheme . '"] {'; foreach ($vars as $variable => $data_var) { if ($data_var['adjust'] == 'rgba') { $color = landingpress_customize_color_rgba($value, $data_var['percentage']); } elseif ($data_var['adjust'] == 'shade') { $color = landingpress_customize_color_shade($value, $data_var['percentage']); } elseif ($data_var['adjust'] == 'tint') { $color = landingpress_customize_color_tint($value, $data_var['percentage']); } else { $color = $value; } $style .= $variable . ':' . $color . ';'; } $style .= '}'; } echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $style . '</style>'; } } elseif (in_array($field['type'], array('color', 'image')) && $field['setting'] && !empty($field['style'])) { if ($value = landingpress_customize_get_mod($field)) { $style = str_replace('[value]', $value, $field['style']); echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $style . '</style>'; } } elseif (in_array($field['type'], array('number', 'slider')) && $field['setting'] && !empty($field['style'])) { $value = landingpress_customize_get_mod($field); if (is_numeric($value)) { $style = str_replace('[value]', $value, $field['style']); echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $style . '</style>'; } } elseif (in_array($field['type'], array('radio', 'select', 'select2', 'radio-buttonset', 'radio-iconset', 'radio-image')) && $field['setting'] && !empty($field['style'])) { if ($value = landingpress_customize_get_mod($field)) { if (is_array($field['style'])) { if (isset($field['style'][$value])) { $style = $field['style'][$value]; echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $style . '</style>'; } } else { if (strpos($field['style'], '[value]') !== false) { $style = str_replace('[value]', $value, $field['style']); echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $style . '</style>'; } } } } elseif (in_array($field['type'], array('checkbox')) && $field['setting'] && !empty($field['style'])) { $value = landingpress_customize_get_mod($field); if ($value && isset($field['style']['on'])) { echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $field['style']['on'] . '</style>'; } elseif (! $value && isset($field['style']['off'])) { echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $field['style']['off'] . '</style>'; } } elseif (in_array($field['type'], array('font')) && $field['setting'] && (!empty($field['selector']) || !empty($field['variable']))) { $value = landingpress_customize_get_mod($field); $font_system = 'system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"'; $font_family = ''; $font_google = false; if ($value && 'default' != $value) { if ('system-font-stack' == $value) { $font_family = $font_system; } elseif (in_array($value, array('serif', 'sans-serif'))) { $font_family = $value; } elseif (false !== strpos($value, ' (') && false !== strpos($value, ')')) { $value = str_replace(')', '', $value); $value = explode(' (', $value); if (is_array($value) && 2 == count($value)) { if ($value[1] == 'sans-serif') { $font_family = '"' . $value[0] . '", ' . $font_system; $font_google = $value[0]; } elseif ($value[1] == 'serif') { $font_family = '"' . $value[0] . '", serif'; $font_google = $value[0]; } else { $font_family = '"' . $value[0] . '"'; $font_google = $value[0]; } } } else { $font_family = '"' . $value . '", ' . $font_system; $font_google = $value; } } if ($font_google) { echo '<link id="font_' . $field['setting'] . '" href="https://fonts.googleapis.com/css2?family=' . str_replace(' ', '+', $font_google) . '" rel="stylesheet" type="text/css">'; } if ($font_family) { if (!empty($field['variable'])) { echo '<style type="text/css" id="customize_' . $field['setting'] . '"> :root { ' . $field['variable'] . ': ' . $font_family . ' }</style>'; } else { echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $field['selector'] . '{ font-family: ' . $font_family . '; }</style>'; } } } elseif (in_array($field['type'], array('sidebar-width')) && $field['setting'] && !empty($field['style'])) { $value = landingpress_customize_get_mod($field); if ($value) { $style = $field['style']; $style = str_replace('[value]', $value, $style); $style = str_replace('[100_value]', (100 - $value), $style); echo '<style type="text/css" id="customize_' . $field['setting'] . '">' . $style . '</style>'; } } } } } add_action('customize_preview_init', 'landingpress_customize_preview_init'); function landingpress_customize_preview_init() { add_action('wp_enqueue_scripts', 'landingpress_customize_preview_init_jquery'); add_action('wp_footer', 'landingpress_customize_preview_init_script_css', 20); } function landingpress_customize_preview_init_jquery() { wp_enqueue_script('jquery'); } function landingpress_customize_preview_init_script_css() { $fields = apply_filters('landingpress_customize_controls', array()); if (! empty($fields)) { echo '<script type="text/javascript" id="landingpress-customize-preview"> ( function( $ ) { head = $(\'head\'); ' . "\n"; foreach ($fields as $field) { $defaults = array( 'setting_type' => landingpress_customize_setting_type(), 'setting' => '', 'setting_db' => '', 'type' => '', 'style' => '', ); $field = wp_parse_args($field, $defaults); if (!empty($field['scheme']) && !empty($field['variable'])) { if (in_array($field['scheme'], array('light', 'dark'))) { $selector = '[data-ss-theme="' . $field['scheme'] . '"]'; } else { $selector = ':root'; } $unit = ''; if (!empty($field['choices']['unit'])) { $unit = $field['choices']['unit']; } elseif (!empty($field['unit'])) { $unit = $field['unit']; } if (is_array($field['variable'])) { $field['style'] = []; foreach ($field['variable'] as $key => $variable) { $field['style'][$key] = $selector . ' { ' . $variable . ': [value]' . $unit . ' }'; } } else { $field['style'] = $selector . ' { ' . $field['variable'] . ': [value]' . $unit . ' }'; } } if ($field['setting_type'] == 'option_mod') { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $setting = $setting_db . '[' . $field['setting'] . ']'; } elseif ($field['setting_type'] == 'option_mod2') { if ($field['setting_db']) { $setting_db = $field['setting_db']; } else { $setting_db = landingpress_customize_setting_db(); } $setting = $setting_db . '[' . $field['setting'] . ']' . '[' . $field['setting2'] . ']'; } else { $setting = $field['setting']; } if (in_array($field['type'], array('color', 'number', 'slider', 'image')) && $field['setting'] && !empty($field['style'])) { $style_to = str_replace('[value]', "' + to + '", $field['style']); echo 'wp.customize(\'' . $setting . '\',function( value ) { value.bind(function(to) { style = $(\'#customize_' . $field['setting'] . '\'); style.remove(); if ( to ) { $(\'<style type="text/css" id="customize_' . $field['setting'] . '">' . $style_to . '</style>\').appendTo( head ); } }); });' . "\n"; } elseif (in_array($field['type'], array('radio', 'select', 'select2', 'radio-buttonset', 'radio-iconset', 'radio-image')) && $field['setting'] && !empty($field['style'])) { if (is_array($field['style'])) { echo 'var customize_' . $field['setting'] . ' = ' . json_encode($field['style']) . '; wp.customize(\'' . $setting . '\',function( value ) { value.bind(function(to) { style = $(\'#customize_' . $field['setting'] . '\'); style.remove(); if ( to ) { $(\'<style type="text/css" id="customize_' . $field['setting'] . '">\' + customize_' . $field['setting'] . '[to] + \'</style>\').appendTo( head ); } }); });' . "\n"; } else { $style_to = str_replace('[value]', "' + to + '", $field['style']); echo 'wp.customize(\'' . $setting . '\',function( value ) { value.bind(function(to) { style = $(\'#customize_' . $field['setting'] . '\'); style.remove(); if ( to ) { $(\'<style type="text/css" id="customize_' . $field['setting'] . '">' . $style_to . '</style>\').appendTo( head ); } }); });' . "\n"; } } elseif (in_array($field['type'], array('checkbox')) && $field['setting'] && !empty($field['style'])) { echo 'var customize_' . $field['setting'] . ' = ' . json_encode($field['style']) . '; wp.customize(\'' . $setting . '\',function( value ) { value.bind(function(to) { style = $(\'#customize_' . $field['setting'] . '\'); style.remove(); if ( to ) { $(\'<style type="text/css" id="customize_' . $field['setting'] . '">\' + customize_' . $field['setting'] . '["on"] + \'</style>\').appendTo( head ); } else { $(\'<style type="text/css" id="customize_' . $field['setting'] . '">\' + customize_' . $field['setting'] . '["off"] + \'</style>\').appendTo( head ); } }); });' . "\n"; } elseif (in_array($field['type'], array('sidebar-width')) && $field['setting'] && !empty($field['style'])) { $style_to = $field['style']; $style_to = str_replace('[value]', "' + to + '", $style_to); $style_to = str_replace('[100_value]', "' + ( 100 - to ) + '", $style_to); echo 'wp.customize(\'' . $setting . '\',function( value ) { value.bind(function(to) { style = $(\'#customize_' . $field['setting'] . '\'); style.remove(); if ( to > 0 ) { $(\'<style type="text/css" id="customize_' . $field['setting'] . '">' . $style_to . '</style>\').appendTo( head ); } }); });' . "\n"; } } echo '} )( jQuery ); </script>' . "\n"; } } function landingpress_customize_sanitize_number($val) { return is_numeric($val) ? $val : ''; } function landingpress_customize_sanitize_url($url) { return esc_url_raw($url); } function landingpress_customize_sanitize_email($email, $setting = null) { $default = $setting->default ?? ''; $email = sanitize_email($email); return (! null($email) ? $email : $default); } function landingpress_customize_sanitize_checkbox($checked) { return ((isset($checked) && true == $checked) ? true : false); } function landingpress_customize_sanitize_select($input, $setting = null) { if (!empty($setting)) { $choices = $setting->manager->get_control($setting->id)->choices; $default = $setting->default; if (isset($choices[''])) { $default = ''; } return (array_key_exists($input, $choices) ? $input : $default); } else { return sanitize_text_field($input); } } function landingpress_customize_sanitize_select_multiple($input, $setting = null) { if (!empty($setting)) { $input_keys = $input; $choices = $setting->manager->get_control($setting->id)->choices; foreach ($input_keys as $key => $value) { if (! array_key_exists($value, $choices)) { unset($input[$key]); } } return (is_array($input) ? $input : array()); } else { if (is_array($input)) { return array_map('sanitize_text_field', $input); } return sanitize_text_field($input); } } function landingpress_customize_sanitize_select_remote($input) { return esc_attr($input); } function landingpress_customize_sanitize_image($image, $setting = null) { $default = $setting->default ?? ''; $mimes = array( 'jpg|jpeg|jpe' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png', 'bmp' => 'image/bmp', 'tif|tiff' => 'image/tiff', 'ico' => 'image/x-icon', 'svg' => 'image/svg+xml', 'webp' => 'image/webp', 'avif' => 'image/avif', ); $file = wp_check_filetype($image, $mimes); return ($file['ext'] ? $image : $default); } function landingpress_customize_sanitize_color($color) { if (empty($color) || is_array($color)) { return ''; } if (false !== strpos($color, 'rgba')) { $color = str_replace(' ', '', $color); sscanf($color, 'rgba(%d,%d,%d,%f)', $red, $green, $blue, $alpha); return 'rgba(' . $red . ',' . $green . ',' . $blue . ',' . $alpha . ')'; } else { return sanitize_hex_color($color); } } function landingpress_customize_sanitize_pages($page_id, $setting = null) { $default = $setting->default ?? ''; $page_id = absint($page_id); return ('publish' == get_post_status($page_id) ? $page_id : $default); } function landingpress_customize_wp_filter_post_kses($data) { $data = stripslashes($data); if (function_exists('force_balance_tags')) { $data = force_balance_tags($data); } return wp_kses($data, 'post'); } function landingpress_customize_sanitize_html($html) { if (is_array($html)) { return array_map('landingpress_customize_wp_filter_post_kses', $$html); } else { return landingpress_customize_wp_filter_post_kses($html); } } function landingpress_customize_wp_filter_nohtml_kses($data) { return wp_kses(stripslashes($data), 'strip'); } function landingpress_customize_sanitize_nohtml($nohtml) { if (is_array($nohtml)) { return array_map('landingpress_customize_wp_filter_nohtml_kses', $nohtml); } else { return landingpress_customize_wp_filter_nohtml_kses($nohtml); } } function landingpress_customize_sanitize_unfiltered($html) { if (current_user_can('unfiltered_html')) { return stripslashes($html); } else { if (is_array($html)) { return array_map('landingpress_customize_wp_filter_post_kses', $$html); } else { return landingpress_customize_wp_filter_post_kses($html); } } } add_action('customize_preview_init', 'landingpress_customize_preview_loading_style_init'); function landingpress_customize_preview_loading_style_init() { global $wp_customize; remove_action('wp_head', array($wp_customize, 'customize_preview_loading_style')); add_action('wp_head', 'landingpress_customize_preview_loading_style_head', 100); add_action('wp_footer', 'landingpress_customize_preview_loading_style_footer'); } function landingpress_customize_preview_loading_style_head() { echo '<style>'; echo '/* Spinkit https://github.com/tobiasahlin/SpinKit MIT License */ '; echo 'body.wp-customizer-unloading{opacity:1;cursor:progress!important;-webkit-transition:none;transition:none}body.wp-customizer-unloading *{pointer-events:none!important}body.wp-customizer-unloading .landingpress-customize-loading{display:block!important}.landingpress-customize-loading{display:none;position:fixed;z-index:999999;top:0;left:0;width:100%;height:100%;background:#fff;background:rgba(255,255,255,.8)}.spinkit-wave{display:block;position:relative;top:50%;left:50%;width:50px;height:40px;margin:-25px 0 0 -25px;font-size:10px;text-align:center}.spinkit-wave .spinkit-rect{display:block;float:left;width:6px;height:50px;margin:0 2px;background-color:#e91e63;-webkit-animation:spinkit-wave-stretch-delay 1.2s infinite ease-in-out;animation:spinkit-wave-stretch-delay 1.2s infinite ease-in-out}.spinkit-wave .spinkit-rect1{-webkit-animation-delay:-1.2s;animation-delay:-1.2s}.spinkit-wave .spinkit-rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.spinkit-wave .spinkit-rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.spinkit-wave .spinkit-rect4{-webkit-animation-delay:-.9s;animation-delay:-.9s}.spinkit-wave .spinkit-rect5{-webkit-animation-delay:-.8s;animation-delay:-.8s}@-webkit-keyframes spinkit-wave-stretch-delay{0%,100%,40%{-webkit-transform:scaleY(.5);transform:scaleY(.5)}20%{-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes spinkit-wave-stretch-delay{0%,100%,40%{-webkit-transform:scaleY(.5);transform:scaleY(.5)}20%{-webkit-transform:scaleY(1);transform:scaleY(1)}}'; echo '</style>'; } function landingpress_customize_preview_loading_style_footer() { echo '<div class="landingpress-customize-loading">'; echo '<div class="spinkit-wave">'; echo '<div class="spinkit-rect spinkit-rect1"></div>'; echo '<div class="spinkit-rect spinkit-rect2"></div>'; echo '<div class="spinkit-rect spinkit-rect3"></div>'; echo '<div class="spinkit-rect spinkit-rect4"></div>'; echo '<div class="spinkit-rect spinkit-rect5"></div>'; echo '</div>'; echo '</div>'; } function landingpress_customize_rgb2hex($color) { if (strpos($color, '#') === 0) { return $color; // Already in hex format } $rgb = sscanf($color, "rgb(%d, %d, %d)"); if (count($rgb) === 3) { return sprintf("#%02x%02x%02x", $rgb[0], $rgb[1], $rgb[2]); } $rgba = sscanf($color, "rgba(%d, %d, %d, %f)"); if (count($rgba) === 4) { return sprintf("#%02x%02x%02x", $rgba[0], $rgba[1], $rgba[2]); } return $color; // Invalid input } function landingpress_customize_hex2rgb($color, $alpha = false) { if (strpos($color, 'rgb') === 0) { return $color; // Already in RGB/RGBA format } $color = ltrim($color, '#'); if (strlen($color) == 3) { $r = hexdec(substr($color, 0, 1) . substr($color, 0, 1)); $g = hexdec(substr($color, 1, 1) . substr($color, 1, 1)); $b = hexdec(substr($color, 2, 1) . substr($color, 2, 1)); } else if (strlen($color) == 6) { $r = hexdec(substr($color, 0, 2)); $g = hexdec(substr($color, 2, 2)); $b = hexdec(substr($color, 4, 2)); } else { return $color; // Invalid input } if ($alpha) { return "rgba($r, $g, $b, 1.0)"; } else { return "rgb($r, $g, $b)"; } } function landingpress_customize_color_adjust($color, $adjustFunc) { $isHex = strpos($color, '#') === 0; $rgb = $isHex ? landingpress_customize_hex2rgb($color) : $color; sscanf($rgb, "rgb(%d, %d, %d)", $r, $g, $b); list($r, $g, $b) = $adjustFunc($r, $g, $b); $adjustedRgb = "rgb($r, $g, $b)"; return $isHex ? landingpress_customize_rgb2hex($adjustedRgb) : $adjustedRgb; } function landingpress_customize_color_shade($color, $percentage) { return landingpress_customize_color_adjust($color, function ($r, $g, $b) use ($percentage) { $r = round($r * (1 - $percentage / 100)); $g = round($g * (1 - $percentage / 100)); $b = round($b * (1 - $percentage / 100)); return [$r, $g, $b]; }); } function landingpress_customize_color_tint($color, $percentage) { return landingpress_customize_color_adjust($color, function ($r, $g, $b) use ($percentage) { $r = round($r + (255 - $r) * ($percentage / 100)); $g = round($g + (255 - $g) * ($percentage / 100)); $b = round($b + (255 - $b) * ($percentage / 100)); return [$r, $g, $b]; }); } function landingpress_customize_color_rgba($color, $alphaPercentage) { $r = $g = $b = 0; if (strpos($color, '#') === 0) { // Convert hex to RGB $hex = ltrim($color, '#'); if (strlen($hex) == 3) { $r = hexdec(substr($hex, 0, 1) . substr($hex, 0, 1)); $g = hexdec(substr($hex, 1, 1) . substr($hex, 1, 1)); $b = hexdec(substr($hex, 2, 1) . substr($hex, 2, 1)); } else if (strlen($hex) == 6) { $r = hexdec(substr($hex, 0, 2)); $g = hexdec(substr($hex, 2, 2)); $b = hexdec(substr($hex, 4, 2)); } else { return $color; // Invalid hex input } } else if (strpos($color, 'rgb') === 0) { // Extract RGB values from RGB/RGBA string sscanf($color, "rgb(%d, %d, %d)", $r, $g, $b); } else { return $color; // Invalid color format } // Convert percentage to alpha value (0 to 1) $alpha = max(0, min(100, $alphaPercentage)) / 100; return sprintf("rgba(%d, %d, %d, %.2f)", $r, $g, $b, $alpha); }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.19 |
proxy
|
phpinfo
|
Settings