Как в Ubercart добавить товар в корзину с помощью AJAX

Пример добавления в корзину товара с nid 123.

Javascript:
// Посылаем AJAX запрос
$.post(Drupal.settings.basePath + 'ajax-add-to-cart', {nid:123}, function(response) {
  response = Drupal.parseJson(response);
 
  // Показываем сообщение если что-то пошло не так
  if (!response.status) {
    return alert(response.data);
  }
 
  // Обновляем блок с корзиной
  $('#block-uc_cart-0 .content').html(response.data);
});

PHP:
/**
 * Реализация hook_menu()
 */
function mymodule_menu() {
  $items['ajax-add-to-cart'] = array(
    'page callback' => 'mymodule_ajax_add_to_cart',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );
  return $items;
}
 
/**
 * Menu callback
 */
function mymodule_ajax_add_to_cart() {
  if (!isset($_POST['nid'])) {
    return;
  }
  // Добавляем товар в корзину
  uc_cart_add_item((int)$_POST['nid'], 1, NULL, NULL, FALSE);
  // Получаем содержимое блока корзины
  $block = module_invoke('uc_cart', 'block', 'view', 0);
  // Возвращаем содержимое блока корзины
  drupal_json(array('status' => TRUE, 'data' => $block['content']));
}

Написанное актуально для
Ubercart 6.x-2.x
Теги:
ubercart
Добавлено: 29 Июля 2018 22:35:13 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...