Вы здесь

Commerce cart form alter

2

Если встречалось - накидайте ссылок. Симптом: странное поведение альтера commerce cart,
$form['attributes']['my_type']['#default_value'] = 'my_value'; не пашет. Вернее пашет - в value формы выводит нужное значение, но при сабмите формы - в корзину добавляет не назначенное мной значение, а то, какое было изначально до альтера.
unset($form_state['default_product']); или unset($form_state(['build_info']['args']); не помогает.
Откуда он это берет?) Мониторил ajax callback, он на сабмите ничего не делает. На орге местами встречается упоминания, но все рецепты - с чисткой $form_state связаны, уже пробовал.
Чтояделаюнетак?)

Версия Drupal: 
7.x
Категория: 
Form API
Связанные проекты: 
Drupal Commerce
Вопрос задан 07.04.2015 - 10:24

в данный момент:

function ra_commerce_form_form_commerce_cart_add_to_cart_form_alter(&$form, &$form_state, $form_id) {
  if ($form['#action'] == '/doc') {
    unset($form_state['default_product']);
    $form['attributes']['field_print_doc_print_type']['#default_value'] = 2;
    $form['quantity']['#weight'] = 5;
    dpm($form_state);
    dpm($form);
  }
}

результат: [ссылка потерта]

Комментарий оставлен 07.04.2015 - 11:10

а если проверку на $form['#action'] убрать?
плюс если это поле из Field API, то #default_value надо менять гораздо глубже, что-то типа:
$form['attributes']['field_print_doc_print_type'][0]['value']
см. в dsm()

Комментарий оставлен 07.04.2015 - 11:37

Ответы