defaults = $defaults; add_action( 'customize_register', [ $this, 'register' ] ); add_action( 'customize_controls_enqueue_scripts', [ $this, 'enqueue' ] ); add_action( 'customize_preview_init', [ $this, 'customize_preview_init' ] ); add_action( 'customize_controls_print_styles', [ $this, 'controls_print_styles' ], 999 ); if ( function_exists( 'wp_is_block_theme' ) && ! wp_is_block_theme() ) { add_action( 'wp_head', [ $this, 'dynamic_css' ] ); } } /** * Register all customizer options here. * Devided into classes for better readability. * * This methods refers to old customizer.php in admin/customizer * @param mixed $wp_customize * @return void */ public function register( $wp_customize ) { $this->assets = betterdocs()->assets; $defaults = $this->defaults->defaults(); // Create custom panels $wp_customize->add_panel( 'betterdocs_customize_options', [ 'priority' => 30, 'theme_supports' => '', 'title' => __( 'BetterDocs', 'betterdocs' ), 'description' => __( 'Controls the design settings for the theme.', 'betterdocs' ) ] ); $_settings_sections = apply_filters( 'betterdocs_customizer_settings', [ DocsPage::class, SingleDoc::class, Sidebar::class, ArchivePage::class, LiveSearch::class, FaqBuilder::class, BreadCrumb::class, ] ); /** * Register All Settings */ foreach ( $_settings_sections as $settings ) { betterdocs()->container->get( $settings )->register( $wp_customize, $defaults ); } } /** * Enqueueing styles and scripts for controls and conditions. * * old functions : * * betterdocs_customizer_styles * * betterdocs_customizer_condition * * @return void */ public function enqueue() { betterdocs()->assets->enqueue( 'betterdocs-cutomizer-styles', 'customizer/css/customizer-controls.css' ); betterdocs()->assets->enqueue( 'betterdocs-customize-condition', 'customizer/js/customizer-condition.js' ); betterdocs()->assets->localize( 'betterdocs-customize-condition', 'betterdocsCustomizer', [ 'isFSETheme' => betterdocs()->helper->current_theme_is_fse_theme(), 'betterdocsBlockThemeNotification' => sprintf( /* translators: 1: Link to your documentation, 2: Link to Site Editor */ __( 'BetterDocs Customizer options are not compatible with block-based themes and will not function as expected. Please use the Site Editor to customize your site. Learn more', 'betterdocs' ), esc_url( 'https://betterdocs.co/docs/betterdocs-provides-full-site-editor-support/' ), // Learn more link esc_url( admin_url( 'site-editor.php' ) ) // Site Editor link ) ] ); } public function customize_preview_init() { betterdocs()->assets->enqueue( 'betterdocs-customizer', 'customizer/js/customizer.js', [ 'customize-preview' ] ); } public function controls_print_styles() { ob_start(); include_once __DIR__ . '/controls.css.php'; echo ob_get_clean(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Because The Styles Are Needed, Nothing To Sanitize Here } /** * Generates dynamic css from customizer options. * @return void */ public function dynamic_css() { if ( ! betterdocs()->helper->is_templates() ) { return false; } /** * Don't remove this line, it's used in dynamic.css.php file. */ $mods = $this->defaults->theme_mods(); require __DIR__ . '/dynamic.css.php'; ob_start(); // echo '<-- betterdocs customizer css -->'; echo ''; // echo '<-- betterdocs customizer css end -->'; echo ob_get_clean(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Because The Styles Are Needed, Nothing To Sanitize Here } }