Guide

Box Control

PHP Field Configuration Reference

Box

Use this config when fieldType is box.

1) Base Parameters

ParameterRequiredTypeDefaultChoicesDescription
fieldTypeYesstringboxboxSets 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) Box Specific Parameters

ParameterRequiredTypeDefaultChoicesDescription
allowResetNobooltruetrue, falseIf true, a button to reset the box control is rendered.
splitOnAxisNobooltruetrue, falseIf true, when the box control is unlinked, vertical and horizontal controls can be used instead of updating individual sides.

3) PHP Array Schema

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

[
    'fieldType' => 'box',
    'name' => 'post_box',
    'fieldLabel' => 'Post Box',
    'required' => false,
    'disabled' => false,
    'hideLabelFromVision' => false,
    'fieldHelpText' => 'Set box spacing values.',
    'className' => 'custom-class',
    'fieldLabelPosition' => 'top',
    'fieldLabelTextTransform' => 'uppercase',
    'allowReset' => true,
    'splitOnAxis' => true,
]

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'       => 'design_settings',
        'meta_box_title'    => 'Design Settings',
        'meta_box_context'  => 'side',
        'meta_box_priority' => 'default',
        'fields'            => [
            [
            'fieldType' => 'box',
            'name' => 'post_box',
            'fieldLabel' => 'Post Box',
            'required' => false,
            'disabled' => false,
            'hideLabelFromVision' => false,
            'fieldHelpText' => 'Set box spacing values.',
            'className' => 'custom-class',
            'fieldLabelPosition' => 'top',
            'fieldLabelTextTransform' => 'uppercase',
            'allowReset' => true,
            'splitOnAxis' => true,
            ],
        ],
    ];

    return $configs;
} );

4) Stored Value Type

Field TypeMeta Value Type
boxstring (serialized JSON, for example {"top":"10px","right":"10px","bottom":"10px","left":"10px"})

Was this helpful?