Guide

Range Control

PHP Field Configuration Reference

Range

Use this config when fieldType is range.

1) Base Parameters

ParameterRequiredTypeDefaultChoicesDescription
fieldTypeYesstringrangerangeSets control type.
nameYesstringSets control name. Use snake_case.
fieldLabelYesstringSets control label.
defaultNostringSets control default value.
requiredNoboolfalsetrue, falseSets control required.
disabledNoboolfalsetrue, falseSets control disabled.
hideLabelFromVisionNoboolfalsetrue, falseSets control hide label from vision.
fieldHelpTextNostringSets control help text.
classNameNostringSets control css class name.
fieldLabelPositionNostringtoptop, leftSets control label position.
fieldLabelTextTransformNostringuppercaseuppercase, capitalize, lowercaseSets control label text transform.

2) Range Specific Parameters

ParameterRequiredTypeDefaultChoicesDescription
typeNostringsliderslider, stepperDefine if the value selection should present a slider or stepper control.
marksNostringRenders visual step ticks. Format: "10% : 10, 20% : 20". Only used when type is stepper.
minNoint0The minimum value allowed.
maxNoint100The maximum value allowed.
separatorTypeNostringnone, fullWidth, topFullWidthDefines if a separator line should appear above or below the control row.
colorNostringCSS color string for the RangeControl wrapper.
allowResetNoboolfalsetrue, falseIf true, a button to reset the slider is rendered.
resetFallbackValueNoint100The value to revert to when the Reset button is clicked. Only relevant if allowReset is true.
isShiftStepEnabledNoboolfalsetrue, falseIf true, pressing UP or DOWN with the SHIFT key changes the value by shiftStep.
shiftStepNointActs as a multiplier of step when shift key is held. Only relevant if withInputField and isShiftStepEnabled are both true.
withInputFieldNoboolfalsetrue, falseDetermines if a numeric input field renders next to the range slider.
showTooltipNoboolfalsetrue, falseForces the tooltip UI to show or hide.

3) PHP Array Schema

Here is an example of how to use the range control in a post meta configuration:

[
    'fieldType' => 'range',
    'name' => 'post_range',
    'fieldLabel' => 'Post Range',
    'required' => false,
    'disabled' => false,
    'hideLabelFromVision' => false,
    'fieldHelpText' => 'Drag to select a value.',
    'className' => 'custom-class',
    'fieldLabelPosition' => 'top',
    'fieldLabelTextTransform' => 'uppercase',
    'type' => 'slider',
    'min' => 0,
    'max' => 100,
    'allowReset' => false,
    'withInputField' => false,
    'showTooltip' => false,
]

3) Hook-Based Example (Post Meta Config)

It is available to use this control in post meta fields, term meta fields and user settings page and options page fields.

Available hooks:

  • native_custom_fields_post_meta_fields
  • native_custom_fields_term_meta_fields
  • native_custom_fields_user_meta_fields
  • native_custom_fields_options_page_fields
add_filter( 'native_custom_fields_post_meta_fields', function( array $configs ): array {
    $post_type = 'book';

    if ( ! isset( $configs[ $post_type ] ) || ! is_array( $configs[ $post_type ] ) ) {
        $configs[ $post_type ] = [
            'post_type' => $post_type,
            'sections'  => [],
        ];
    }

    $configs[ $post_type ]['sections'][] = [
        'meta_box_id'       => 'post_options',
        'meta_box_title'    => 'Post Options',
        'meta_box_context'  => 'side',
        'meta_box_priority' => 'default',
        'fields'            => [
            [
            'fieldType' => 'range',
            'name' => 'post_range',
            'fieldLabel' => 'Post Range',
            'required' => false,
            'disabled' => false,
            'hideLabelFromVision' => false,
            'fieldHelpText' => 'Drag to select a value.',
            'className' => 'custom-class',
            'fieldLabelPosition' => 'top',
            'fieldLabelTextTransform' => 'uppercase',
            'type' => 'slider',
            'min' => 0,
            'max' => 100,
            'allowReset' => false,
            'withInputField' => false,
            'showTooltip' => false,
            ],
        ],
    ];

    return $configs;
} );

4) Stored Value Type

Field TypeMeta Value Type
rangestring (numeric value stored as string, for example "50")

Was this helpful?