AJAX кнопка "Добавить в корзину" в Drupal Commerce

Код, позволяющий добавлять товары в корзину с помощью AJAX:
/**
 * Implements hook_form_FORM_ID_alter(): commerce_cart_add_to_cart_form
 */
function modulename_form_commerce_cart_add_to_cart_form_alter(&$form, &$form_state) {
  $form['submit']['#ajax'] = array('callback' => 'modulename_add_to_cart_ajax_callback');
  $form['#submit'][] = 'modulename_add_to_cart_form_submit';
}
 
/**
 * "Add to cart" button ajax callback.
 */
function modulename_add_to_cart_ajax_callback($form, &$form_state) {
  drupal_get_messages();
  $cart_block = module_invoke('commerce_cart', 'block_view', 'cart');
  return array(
    '#type' => 'ajax',
    '#commands' => array(
      ajax_command_html('#block-commerce-cart-cart .content', render($cart_block['content'])),
    ),
  );
}
 
/**
 * "Add to cart" button submit callback.
 */
function modulename_add_to_cart_form_submit($form, &$form_state){
  $form_state['rebuild'] = TRUE;
}

Код может конфликтовать с dev версией Commerce Cart Ajax, потому что модуль достаточно кривой.

Написанное актуально для
Drupal Commerce 1.x
Теги:
ajax, commerce, работа с формами
Добавлено: 30 Июля 2018 08:17:43 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...