name = 'date_time'; $this->label = 'Date / Time Picker'; $this->category = 'basic'; } public function render( $field, $value = '', $name = null ) { $name = $name ?: "metaforge[{$field['name']}]"; $instructions = ! empty( $field['instructions'] ) ? $field['instructions'] : ''; // Format value for HTML5 datetime-local (must strictly be YYYY-MM-DDTHH:mm for browser datepickers) if ( ! empty( $value ) && is_string( $value ) ) { if ( strpos( $value, 'T' ) === false ) { $ts = strtotime( $value ); if ( $ts ) { $value = gmdate( 'Y-m-d\TH:i', $ts ); } } else { // Trim seconds if present (e.g. 2026-10-30T16:20:00 -> 2026-10-30T16:20) if ( preg_match( '/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2})/', $value, $m ) ) { $value = $m[1]; } } } echo '
'; if ( ! empty( $field['label'] ) ) { echo ''; } if ( ! empty( $instructions ) ) { echo '

' . esc_html( $instructions ) . '

'; } echo '
'; echo ''; echo '
'; echo '
'; } public function sanitize( $value, $field ) { return sanitize_text_field( $value ); } }