HEX
Server: nginx/1.24.0
System: Linux webserver 6.8.0-85-generic #85-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep 18 15:26:59 UTC 2025 x86_64
User: wpuser (1002)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /opt/wpsites/gsudice.dataconn.net/wp-content/themes/colibri-wp/inc/src/Customizer/PanelFactory.php
<?php


namespace ColibriWP\Theme\Customizer;

use ColibriWP\Theme\Customizer\Panel\ColibriPanel;
use WP_Customize_Panel;

class PanelFactory {
    private static $panels = array(
        'colibri_panel' => ColibriPanel::class,

    );

    private static $register_exclusion = array();
    private static $registered = false;

    public static function make( $id, $data ) {

        $data = array_merge( array(
            'type' => 'default',
        ), $data );


        $class = static::getClassByType( $data['type'] );


        global $wp_customize;


        unset( $data['type'] );

        $panel = new $class( $wp_customize, $id, $data );
        $wp_customize->add_panel( $panel );


        return $panel;
    }

    private static function register() {
        if ( ! static::$registered ) {

            foreach ( static::$panels as $key => $panel ) {
                global $wp_customize;

                if ( ! in_array( $key, static::$register_exclusion ) ) {
                    $wp_customize->register_panel_type( $panel );
                }
            }

            static::$registered = true;
        }
    }

    private static function getClassByType( $type ) {

        static::register();

        $class = isset( static::$panels[ $type ] ) ? static::$panels [ $type ] : WP_Customize_Panel::class;

        return $class;
    }
}