Guide

Date Picker Control

PHP Field Configuration Reference

Date Picker

Use this config when fieldType is date_picker.

1) Base Parameters

ParameterRequiredTypeDefaultChoicesDescription
fieldTypeYesstringdate_pickerdate_pickerSets control type.
nameYesstringSets control name. Use snake_case.
fieldLabelYesstringSets control label.
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) Date Picker Specific Parameters

ParameterRequiredTypeDefaultChoicesDescription
currentDateNostringThe current date at initialization. Use datetime-local format (e.g. 2024-01-15T10:30).
dateOrderNostringdmydmy, mdy, ymdThe order of day, month, and year. This prop overrides the time format determined by is12Hour prop.
startOfWeekNoint00, 1, 2, 3, 4, 5, 6The day that the week should start on. 0 for Sunday, 1 for Monday, etc.
is12HourNoboolfalsetrue, falseWhether to use a 12-hour clock. With a 12-hour clock, an AM/PM widget is displayed and the time format is assumed to be MM-DD-YYYY.

3) PHP Array Schema

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

[
    'fieldType' => 'date_picker',
    'name' => 'post_date_picker',
    'fieldLabel' => 'Post Date Picker',
    'required' => false,
    'disabled' => false,
    'hideLabelFromVision' => false,
    'fieldHelpText' => 'Select a date.',
    'className' => 'custom-class',
    'fieldLabelPosition' => 'top',
    'fieldLabelTextTransform' => 'uppercase',
    'currentDate' => '',
    'dateOrder' => 'dmy',
    'startOfWeek' => 0,
    'is12Hour' => 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' => 'date_picker',
            'name' => 'post_date_picker',
            'fieldLabel' => 'Post Date Picker',
            'required' => false,
            'disabled' => false,
            'hideLabelFromVision' => false,
            'fieldHelpText' => 'Select a date.',
            'className' => 'custom-class',
            'fieldLabelPosition' => 'top',
            'fieldLabelTextTransform' => 'uppercase',
            'currentDate' => '',
            'dateOrder' => 'dmy',
            'startOfWeek' => 0,
            'is12Hour' => false,
            ],
        ],
    ];

    return $configs;
} );

4) Stored Value Type

Field TypeMeta Value Type
date_pickerstring (ISO date string, for example "2024-01-15T00:00:00")

Was this helpful?