+ * Check whether section is active to current Customizer preview.
+ *
+ * @since 4.1.0
+ * @access public
+ *
+ * @return bool Whether the section is active to the current preview.
+ */
+ public final function active() {
+ $section = $this;
+ $active = call_user_func( $this->active_callback, $this );
+
+ /**
+ * Filter response of {@see WP_Customize_Section::active()}.
+ *
+ * @since 4.1.0
+ *
+ * @param bool $active Whether the Customizer section is active.
+ * @param WP_Customize_Section $section {@see WP_Customize_Section} instance.
+ */
+ $active = apply_filters( 'customize_section_active', $active, $section );
+
+ return $active;
+ }
+
+ /**
+ * Default callback used when invoking {@see WP_Customize_Section::active()}.
+ *
+ * Subclasses can override this with their specific logic, or they may provide
+ * an 'active_callback' argument to the constructor.
+ *
+ * @since 4.1.0
+ * @access public
+ *
+ * @return bool Always true.
+ */
+ public function active_callback() {
+ return true;
+ }
+
+ /**
+ * Gather the parameters passed to client JavaScript via JSON.
+ *
+ * @since 4.1.0
+ *
+ * @return array The array to be exported to the client as JSON.
+ */
+ public function json() {
+ $array = wp_array_slice_assoc( (array) $this, array( 'title', 'description', 'priority', 'panel', 'type' ) );
+ $array['content'] = $this->get_content();
+ $array['active'] = $this->active();
+ $array['instanceNumber'] = $this->instance_number;
+ return $array;
+ }
+
+ /**
+ * Checks required user capabilities and whether the theme has the
+ * feature support required by the section.