function commerce_promotion_form_views_ui_config_item_form_alter in Commerce Core 8.2
Implements hook_form_FORM_ID_alter().
Removes core's built-in formatters from views field options for promotion start_date and end_date fields, since they perform timezone conversion. The "Default (Store timezone)" formatter should be used instead.
File
- modules/
promotion/ commerce_promotion.module, line 97 - Provides a UI for managing promotions.
Code
function commerce_promotion_form_views_ui_config_item_form_alter(&$form, FormStateInterface $form_state) {
/** @var \Drupal\views\Plugin\views\field\EntityField $handler */
$handler = $form_state
->get('handler');
if ($handler instanceof EntityField && !empty($handler->definition['entity_type'])) {
$entity_type_id = $handler->definition['entity_type'];
$field_name = $handler->definition['field_name'];
/** @var \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager */
$field_manager = \Drupal::service('entity_field.manager');
$field_definitions = $field_manager
->getFieldStorageDefinitions($entity_type_id);
$field_definition = $field_definitions[$field_name];
if ($entity_type_id == 'commerce_promotion' && $field_definition
->getType() == 'datetime') {
unset($form['options']['type']['#options']['datetime_custom']);
unset($form['options']['type']['#options']['datetime_default']);
unset($form['options']['type']['#options']['datetime_plain']);
}
}
}