Datepicker Control
The datepicker control provides a great interface for selecting a specific date and time and outputting it in the format of your choice.
The Datepicker control leverages the Flatpickr library to offer a robust date selection interface. Since Bricks 1.9.8 an options property has been added which allows for further customization.
Properties:
Section titled “Properties:”Property: options (since 1.9.8)
Section titled “Property: options (since 1.9.8)”- Type: array (associative)
- Description: Enables customization of the datepicker by passing an associative array of options defined in the Flatpickr library.
- Default values:
- enableTime: Defaults to
trueunless explicitly set through a passed property. - altInput: Defaults to
trueunless specified otherwise through a passed property.
- enableTime: Defaults to
Example usage:
$this->controls['date'] = [ 'tab' => 'content', 'label' => esc_html__('Date', 'bricks'), 'type' => 'datepicker', 'options' => [ 'enableTime' => true, // Enables time selection. 'time_24hr' => true, // Displays time picker in 24-hour mode. 'noCalendar' => true // Hides the calendar day selection. ]];In this example, the options array is configured to create a time picker that operates in 24-hour format without showing a calendar for day selection. The enableTime option is set to true to ensure time can be selected, time_24hr is enabled for 24-hour time format, and noCalendar is set to true to hide the calendar component. Adjust the options array as needed to customize the datepicker to meet different requirements.
For a full list of customizable options available in Flatpickr, please refer to the Flatpickr Options documentation.
Property: enableTime
Section titled “Property: enableTime”- Type: boolean
- Description: Determines whether time selection is enabled. Overridden if any settings are passed in the
optionsproperty. - Default: true
Property: altInput
Section titled “Property: altInput”- Type: boolean
- Description: Enables an alternative, more user-friendly input style. Overridden if any settings are passed in the
optionsproperty. - Default: true
Example: Countdown element
Section titled “Example: Countdown element”// Example: Countdown elementclass Prefix_Element_Countdown extends \Bricks\Element { public $category = 'general'; public $name = 'countdown'; public $icon = 'ti-timer'; public $scripts = ['bricksCountdown'];
public function get_label() { return esc_html__( 'Countdown', 'bricks' ); }
public function set_controls() { $this->controls['date'] = [ 'tab' => 'content', 'label' => esc_html__( 'Date', 'bricks' ), 'type' => 'datepicker', 'options' => ['enableTime' => true, 'altInput' => true], 'default' => '2019-01-01 12:00', ];
$this->controls['format'] = [ 'tab' => 'content', 'label' => esc_html__( 'Format', 'bricks' ), 'type' => 'text', 'default' => '%D days %H hours %M minutes %S seconds.', 'description' => sprintf( '%s <a target="_blank" href="http://hilios.github.io/jQuery.countdown/documentation.html#directives">%s</a>.', esc_html__( 'For formatting options see', 'bricks' ), esc_html__( 'directives', 'bricks' ) ), ]; }
public function render() { $this->set_attribute( 'wrapper', 'class', 'countdown-wrapper' );
$countdown_options = [ 'date' => isset( $this->settings['date'] ) ? $this->settings['date'] : '', 'format' => isset( $this->settings['format'] ) ? $this->settings['format'] : '', ];
$this->set_attribute( 'wrapper', 'data-bricks-countdown-options', wp_json_encode( $countdown_options ) );
// Render if ( ! isset( $this->settings['date'] ) || ! isset( $this->settings['format'] ) ) { return $this->render_element_placeholder( [ 'icon-class' => 'ti-timer', 'text' => esc_html__( 'No date/format set.', 'bricks' ), ] ); } else { echo '<div ' . $this->render_attributes( 'wrapper' ) . '></div>'; } }}Was this helpful?
A quick vote and short notes help us improve these docs faster.
Leave a note for us
Please do not include passwords, license keys, or personal data. We store submitted notes to improve the docs.
Thanks for sharing feedback. We're using it to improve these docs.