CMB2 Documentation
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hooks
  • Download Docs
  • Github

Packages

  • CMB2
  • Demo
    • CMB2
  • None
  • Tests
    • CMB2

Classes

  • CMB2
  • CMB2_Ajax
  • CMB2_Base
  • CMB2_Bootstrap_2101
  • CMB2_Boxes
  • CMB2_Display_Checkbox
  • CMB2_Display_Colorpicker
  • CMB2_Display_File
  • CMB2_Display_File_List
  • CMB2_Display_Multicheck
  • CMB2_Display_oEmbed
  • CMB2_Display_Select
  • CMB2_Display_Taxonomy_Multicheck
  • CMB2_Display_Taxonomy_Radio
  • CMB2_Display_Text_Date
  • CMB2_Display_Text_Date_Timezone
  • CMB2_Display_Text_Money
  • CMB2_Display_Text_Time
  • CMB2_Display_Text_Url
  • CMB2_Display_Textarea
  • CMB2_Display_Textarea_Code
  • CMB2_Field
  • CMB2_Field_Display
  • CMB2_Hookup
  • CMB2_Hookup_Base
  • CMB2_Integration_Box
  • CMB2_JS
  • CMB2_Option
  • CMB2_Options
  • CMB2_Options_Hookup
  • CMB2_REST
  • CMB2_REST_Controller
  • CMB2_REST_Controller_Boxes
  • CMB2_REST_Controller_Fields
  • CMB2_Sanitize
  • CMB2_Show_Filters
  • CMB2_Type_Base
  • CMB2_Type_Checkbox
  • CMB2_Type_Colorpicker
  • CMB2_Type_Counter_Base
  • CMB2_Type_File
  • CMB2_Type_File_Base
  • CMB2_Type_File_List
  • CMB2_Type_Multi_Base
  • CMB2_Type_Multicheck
  • CMB2_Type_Oembed
  • CMB2_Type_Picker_Base
  • CMB2_Type_Radio
  • CMB2_Type_Select
  • CMB2_Type_Select_Timezone
  • CMB2_Type_Taxonomy_Base
  • CMB2_Type_Taxonomy_Multicheck
  • CMB2_Type_Taxonomy_Multicheck_Hierarchical
  • CMB2_Type_Taxonomy_Radio
  • CMB2_Type_Taxonomy_Radio_Hierarchical
  • CMB2_Type_Taxonomy_Select
  • CMB2_Type_Taxonomy_Select_Hierarchical
  • CMB2_Type_Text
  • CMB2_Type_Text_Date
  • CMB2_Type_Text_Datetime_Timestamp
  • CMB2_Type_Text_Datetime_Timestamp_Timezone
  • CMB2_Type_Text_Time
  • CMB2_Type_Textarea
  • CMB2_Type_Textarea_Code
  • CMB2_Type_Title
  • CMB2_Type_Wysiwyg
  • CMB2_Types
  • CMB2_Utils

Hooks

  • Hook Reference
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 
<?php
/**
 * CMB text_datetime_timestamp field type
 *
 * @since  2.2.2
 *
 * @category  WordPress_Plugin
 * @package   CMB2
 * @author    CMB2 team
 * @license   GPL-2.0+
 * @link      https://cmb2.io
 */
class CMB2_Type_Text_Datetime_Timestamp extends CMB2_Type_Picker_Base {

    public function render( $args = array() ) {
        $field = $this->field;

        $value = $field->escaped_value();
        if ( empty( $value ) ) {
            $value = $field->get_default();
        }

        $args = wp_parse_args( $this->args, array(
            'value'      => $value,
            'desc'       => $this->_desc(),
            'datepicker' => array(),
            'timepicker' => array(),
        ) );

        if ( empty( $args['value'] ) ) {
            $args['value'] = $value;
            // This will be used if there is a select_timezone set for this field
            $tz_offset = $field->field_timezone_offset();
            if ( ! empty( $tz_offset ) ) {
                $args['value'] -= $tz_offset;
            }
        }

        $has_good_value = ! empty( $args['value'] ) && ! is_array( $args['value'] );

        $date_input = parent::render( $this->date_args( $args, $has_good_value ) );
        $time_input = parent::render( $this->time_args( $args, $has_good_value ) );

        return $this->rendered( $date_input . "\n" . $time_input );
    }

    public function date_args( $args, $has_good_value ) {
        $date_args = wp_parse_args( $args['datepicker'], array(
            'class' => 'cmb2-text-small cmb2-datepicker',
            'name'  => $this->_name( '[date]' ),
            'id'    => $this->_id( '_date' ),
            'value' => $has_good_value ? $this->field->get_timestamp_format( 'date_format', $args['value'] ) : '',
            'desc'  => '',
        ) );

        $date_args['rendered'] = true;

        // Let's get the date-format, and set it up as a data attr for the field.
        return $this->parse_picker_options( 'date', $date_args );
    }

    public function time_args( $args, $has_good_value ) {
        $time_args = wp_parse_args( $args['timepicker'], array(
            'class' => 'cmb2-timepicker text-time',
            'name'  => $this->_name( '[time]' ),
            'id'    => $this->_id( '_time' ),
            'value' => $has_good_value ? $this->field->get_timestamp_format( 'time_format', $args['value'] ) : '',
            'desc'  => $args['desc'],
            'js_dependencies' => array( 'jquery-ui-core', 'jquery-ui-datepicker', 'jquery-ui-datetimepicker' ),
        ) );

        $time_args['rendered'] = true;

        // Let's get the time-format, and set it up as a data attr for the field.
        return $this->parse_picker_options( 'time', $time_args );
    }

}
CMB2 Documentation API documentation generated by ApiGen