Guide

Border Box Control

PHP Field Configuration Reference

Border Box

Use this config when fieldType is border_box.

1) Base Parameters

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

ParameterRequiredTypeDefaultChoicesDescription
popoverPlacementNostringtoptop, left, right, bottom, top-end, top-start, left-end, left-start, right-end, right-start, bottom-end, bottom-start, overlayThe position of the color popovers relative to the control wrapper.
popoverOffsetNointThe space between the popover and the control wrapper.
sizeNostringdefaultdefault, __unstable-largeSets control size.
disableCustomColorsNoboolfalsetrue, falseToggles the ability to choose custom colors.
enableAlphaNoboolfalsetrue, falseControls whether the alpha channel will be offered when selecting custom colors.
enableStyleNobooltruetrue, falseControls whether to support border style selections.
colorsNostringJSON array of color objects for the color palette. Example: [{"color": "#72aee6", "name": "Blue 20"}]

3) PHP Array Schema

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

[
    'fieldType' => 'border_box',
    'name' => 'post_border_box',
    'fieldLabel' => 'Post Border Box',
    'required' => false,
    'disabled' => false,
    'hideLabelFromVision' => false,
    'fieldHelpText' => 'Set border styles for each side.',
    'className' => 'custom-class',
    'fieldLabelPosition' => 'top',
    'fieldLabelTextTransform' => 'uppercase',
    'popoverPlacement' => 'top',
    'popoverOffset' => 8,
    'size' => 'default',
    'disableCustomColors' => false,
    'enableAlpha' => false,
    'enableStyle' => true,
    'colors' => '[{"color": "#72aee6", "name": "Blue 20"}, {"color": "#3582c4", "name": "Blue 40"}]',
]

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' => 'border_box',
            'name' => 'post_border_box',
            'fieldLabel' => 'Post Border Box',
            'required' => false,
            'disabled' => false,
            'hideLabelFromVision' => false,
            'fieldHelpText' => 'Set border styles for each side.',
            'className' => 'custom-class',
            'fieldLabelPosition' => 'top',
            'fieldLabelTextTransform' => 'uppercase',
            'popoverPlacement' => 'top',
            'popoverOffset' => 8,
            'size' => 'default',
            'disableCustomColors' => false,
            'enableAlpha' => false,
            'enableStyle' => true,
            'colors' => '[{"color": "#72aee6", "name": "Blue 20"}, {"color": "#3582c4", "name": "Blue 40"}]',
            ],
        ],
    ];

    return $configs;
} );

4) Stored Value Type

Field TypeMeta Value Type
border_boxstring (serialized JSON, for example "{"top":{"color":"#72aee6","style":"solid","width":"1px"},"right":{…},"bottom":{…},"left":{…}}")

Was this helpful?