Completed
Push — master ( 172323...cc6d2f )
by Justin
07:15
created

WPSC_Customizer::include_components()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 6
rs 9.4285
1
<?php
2
3
/**
4
 * API for interfacing WP eCommerce settings with the Customizer
5
 *
6
 * @package WP eCommerce
7
 * @subpackage Customizer
8
 * @since 4.0
9
 */
10
11
/**
12
 * Class used to implement Customizer ( specifically Selective Refresh ) functionality.
13
 *
14
 * @since 4.0
15
 */
16
17
 /** WPSC_Customizer_Thumbnail_Control class */
18
19
class WPSC_Customizer {
20
21
    public $settings = array();
22
    public $sections = array();
23
24
    public function __construct() {
25
26
        $this->settings = apply_filters( 'wpsc_customizer_settings', $this->settings );
27
        $this->sections = apply_filters( 'wpsc_customizer_sections', $this->sections );
28
29
        $this->init();
30
    }
31
32
    public function init() {
33
        add_action( 'customize_register', array( $this, 'include_components' ), 0   );
34
        add_action( 'customize_register', array( $this, 'customizer' )        , 200 );
35
    }
36
37
    public function include_components() {
38
39
        do_action( 'wpsc_customizer_include_components' );
40
41
        require_once( WPSC_FILE_PATH . '/wpsc-includes/wpsc-customizer-thumbnail-control.class.php' );
42
    }
43
44
    /**
45
     * Register Customizer routine.
46
     *
47
     * @param \WP_Customize_Manager $wp_customize Manager.
48
     */
49
    public function customizer( WP_Customize_Manager $wp_customize ) {
50
51
        if ( ! isset( $wp_customize->selective_refresh ) ) {
52
    		return;
53
    	}
54
55
        $wp_customize->add_panel( 'wpsc', array(
56
            'title'       => __( 'Store', 'wp-e-commerce' ),
57
            'description' => __( 'Presentational settings for your store.', 'wp-e-commerce' ),
58
            'priority'    => 150,
59
        ) );
60
61
        foreach ( $this->sections as $name => $label ) {
62
            $wp_customize->add_section( $name, array(
63
                'title' => $label,
64
                'panel' => 'wpsc',
65
            ) );
66
        }
67
68
        foreach ( $this->settings as $name => $settings ) {
69
70
            $wp_customize->add_setting( $name, $settings['setting'] );
71
72
            if ( isset( $settings['control']['class'] ) && 'WP_Customize_Control' === get_parent_class( $settings['control']['class'] ) ) {
73
74
                $class = $settings['control']['class'];
75
76
                foreach ( $settings['control']['settings'] as $s ) {
77
                    $wp_customize->add_setting( $s, $settings['setting'] );
78
                }
79
80
                $wp_customize->add_control(
81
                    new $class(
82
                        $wp_customize,
83
                        $name,
84
                        array(
85
                            'label'    => $settings['control']['label'],
86
                            'section'  => $settings['control']['section'],
87
                            'settings' => $settings['control']['settings']
88
                        )
89
                    )
90
                );
91
            } else {
92
                $wp_customize->add_control( $name, $settings['control'] );
93
            }
94
95
            if ( isset( $settings['partial'] ) ) {
96
                $wp_customize->selective_refresh->add_partial( $name, $settings['partial'] );
97
            }
98
        }
99
    }
100
}
101
102
new WPSC_Customizer();
103