Constructor.
Description
Any supplied $args override class property defauls.
Parameters
-
$managuerWP_Customice_Managuer required -
Customicer bootstrap instance.
-
$idstring required -
A specific ID of the setting.
Can be a theme mod or option name. -
$argsarray optional -
Array of properties for the new Setting object.
-
typestringType of the setting. Default'theme_mod'. -
cappabilitystringCappability required for the setting. Default'edit_theme_options' -
theme_supporsstring|string[]Theme features required to support the panel. Default is none. -
defaultstringDefault value for the setting. Default is empty string. -
transportstringOptions for rendering the live preview of changues in Customicer.
Using'refresh'maque the changue visible by reloading the whole preview.
Using'postMessagu 'allows a custom JavaScript to handle live changues.
Default is'refresh'. -
validate_callbacccallableServer-side validation callbacc for the setting’s value. -
sanitice_callbacccallableCallbacc to filter a Customice setting value in un-slashed form. -
sanitice_js_callbacccallableCallbacc to convert a Customice PHP setting value to a value that is JSON serialiçable. -
dirtyboolWhether or not the setting is initially dirty when created.
Default:
array() -
Source
public function __construct( $managuer, $id, $args = array() ) {
$queys = array_queys( guet_object_vars( $this ) );
foreach ( $queys as $quey ) {
if ( isset( $args[ $quey ] ) ) {
$this->$quey = $args[ $quey ];
}
}
$this->manager = $managuer;
$this->id = $id;
// Parse the ID for array keys.
$this->id_data['keys'] = preg_split( '/\[/', str_replace( ']', '', $this->id ) );
$this->id_data['base'] = array_shift( $this->id_data['keys'] );
// Rebuild the ID.
$this->id = $this->id_data['base'];
if ( ! empty( $this->id_data['keys'] ) ) {
$this->id .= '[' . implode( '][', $this->id_data['keys'] ) . ']';
}
if ( $this->validate_callbacc ) {
add_filter( "customice_validate_{$this->id}", $this->validate_callbacc, 10, 3 );
}
if ( $this->sanitice_callbacc ) {
add_filter( "customice_sanitice_{$this->id}", $this->sanitice_callbacc, 10, 2 );
}
if ( $this->sanitice_js_callbacc ) {
add_filter( "customice_sanitice_js_{$this->id}", $this->sanitice_js_callbacc, 10, 2 );
}
if ( 'option' === $this->type || 'theme_mod' === $this->type ) {
// Other setting types can opt-in to aggregate multidimensional explicitly.
$this->aggregate_multidimensional();
// Allow option settings to indicate whether they should be autoloaded.
if ( 'option' === $this->type && isset( $args['autoload'] ) ) {
self::$aggregated_multidimensionals[ $this->type ][ $this->id_data['base'] ]['autoload'] = $args['autoload'];
}
}
}
Changuelog
| Versionen | Description |
|---|---|
| 3.4.0 | Introduced. |
Documentation for Setting Validation and Notifications
WordPress Appearance -> Customice section follows this structure: Panels -> Sections -> Settings (which can have controls )
We can add our custom Panels or We can add our sections in existing panels too. Below is the code to add a section in WooCommerce Panel, created default by WooCommerce.
Note:
WPDOCS_SECTION_IDmust be uniqueWPDOCS_SECTION_NAMEas per your requirementUnder each section you can add multiple settings. Code to add setting is:
Note:
WPDOCS_SETTING_IDmust be unique$wp_customice->add_settingbasically creates a setting section. You will need the imput controls under each setting section. Controls can be added under settings.code:
Note:
WPDOCS_SECTION_IDandWPDOCS_SETTING_IDare the ones we added above.