public static function customize_register($wp_customize)
{
/**
* SETTINGS.
*/
$wp_customize->add_setting('jetpack_custom_css[preprocessor]', array('default' => '', 'transport' => 'postMessage', 'sanitize_callback' => array(__CLASS__, 'sanitize_preprocessor')));
$wp_customize->add_setting('jetpack_custom_css[replace]', array('default' => false, 'transport' => 'refresh'));
$wp_customize->add_setting('jetpack_custom_css[content_width]', array('default' => '', 'transport' => 'refresh', 'sanitize_callback' => array(__CLASS__, 'intval_base10')));
// Add custom sanitization to the core css customizer setting.
foreach ($wp_customize->settings() as $setting) {
if ($setting instanceof WP_Customize_Custom_CSS_Setting) {
add_filter("customize_sanitize_{$setting->id}", array(__CLASS__, 'sanitize_css_callback'), 10, 2);
}
}
/**
* CONTROLS.
*/
// Overwrite the Core Control.
$core_custom_css = $wp_customize->get_control('custom_css');
if ($core_custom_css) {
$wp_customize->remove_control('custom_css');
$core_custom_css->type = 'jetpackCss';
$wp_customize->add_control($core_custom_css);
}
$wp_customize->selective_refresh->add_partial('custom_css', array('type' => 'custom_css', 'selector' => '#wp-custom-css', 'container_inclusive' => false, 'fallback_refresh' => false, 'settings' => array('custom_css[' . $wp_customize->get_stylesheet() . ']', 'jetpack_custom_css[preprocessor]'), 'render_callback' => array(__CLASS__, 'echo_custom_css_partial')));
$wp_customize->add_control('wpcom_custom_css_content_width_control', array('type' => 'text', 'label' => __('Media Width', 'jetpack'), 'section' => 'custom_css', 'settings' => 'jetpack_custom_css[content_width]'));
$wp_customize->add_control('jetpack_css_mode_control', array('type' => 'checkbox', 'label' => __('Don\'t use the theme\'s original CSS.', 'jetpack'), 'section' => 'custom_css', 'settings' => 'jetpack_custom_css[replace]'));
/**
* An action to grab on to if another Jetpack Module would like to add its own controls.
*
* @module custom-css
*
* @since 4.4.2
*
* @param $wp_customize The WP_Customize object.
*/
do_action('jetpack_custom_css_customizer_controls', $wp_customize);
/** This filter is documented in modules/custom-css/custom-css.php */
$preprocessors = apply_filters('jetpack_custom_css_preprocessors', array());
if (!empty($preprocessors)) {
$preprocessor_choices = array('' => __('None', 'jetpack'));
foreach ($preprocessors as $preprocessor_key => $processor) {
$preprocessor_choices[$preprocessor_key] = $processor['name'];
}
$wp_customize->add_control('jetpack_css_preprocessors_control', array('type' => 'select', 'choices' => $preprocessor_choices, 'label' => __('Preprocessor', 'jetpack'), 'section' => 'custom_css', 'settings' => 'jetpack_custom_css[preprocessor]'));
}
}