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

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

Javascript:

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

PHP:

  1. /**
  2.  * Реализация hook_menu()
  3.  */
  4. function mymodule_menu() {
  5. $items['ajax-add-to-cart'] = array(
  6. 'page callback' => 'mymodule_ajax_add_to_cart',
  7. 'access arguments' => array('access content'),
  8. 'type' => MENU_CALLBACK,
  9. );
  10. return $items;
  11. }
  12.  
  13. /**
  14.  * Menu callback
  15.  */
  16. function mymodule_ajax_add_to_cart() {
  17. if (!isset($_POST['nid'])) {
  18. return;
  19. }
  20. // Добавляем товар в корзину
  21. uc_cart_add_item((int)$_POST['nid'], 1, NULL, NULL, FALSE);
  22. // Получаем содержимое блока корзины
  23. $block = module_invoke('uc_cart', 'block', 'view', 0);
  24. // Возвращаем содержимое блока корзины
  25. drupal_json(array('status' => TRUE, 'data' => $block['content']));
  26. }

Ubercart 6.x-2.x

Russian
Категория: 
The code has been tested and works
Мультитег: