PHP Field Configuration Reference

Date Time Picker

Use this config when fieldType is date_time_picker.

1) Base Parameters

Parameter Required Type Default Choices Description
fieldType Yes string date_time_picker date_time_picker Sets control type.
name Yes string Sets control name. Use snake_case.
fieldLabel Yes string Sets control label.
required No bool false true, false Sets control required.
disabled No bool false true, false Sets control disabled.
hideLabelFromVision No bool false true, false Sets control hide label from vision.
fieldHelpText No string Sets control help text.
className No string Sets control css class name.
fieldLabelPosition No string top top, left Sets control label position.
fieldLabelTextTransform No string uppercase uppercase, capitalize, lowercase Sets control label text transform.

2) Date Time Picker Specific Parameters

Parameter Required Type Default Choices Description
currentDate No string The current date and time at initialization. Use datetime-local format (e.g. 2024-01-15T10:30).
dateOrder No string dmy dmy, mdy, ymd The order of day, month, and year. This prop overrides the time format determined by is12Hour prop.
startOfWeek No int 0 0, 1, 2, 3, 4, 5, 6 The day that the week should start on. 0 for Sunday, 1 for Monday, etc.
is12Hour No bool false true, false Whether 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 time picker control in a post meta configuration:

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

    return $configs;
} );

4) Stored Value Type

Field Type Meta Value Type
date_time_picker string (ISO datetime string, for example "2024-01-15T10:30:00")