Как сделать невозможность добавления товара, если в корзине уже есть такой.

Главные вкладки

Аватар пользователя laconical laconical 21 марта 2018 в 14:37

В Ubercart для 8 Друпала, есть хук.

<?php
function hook_uc_add_to_cart($nid$qty$data) {
  if (
$qty 1) {
    
$result[] = array(
      
'success' => FALSE,
      
'message' => t('Sorry, you can only add one of those at a time.'),
    );
  }
  return 
$result;
}
?>

А как вытащить переменную $qty для этого товара из корзины.
Если она больше требуемого числа, то более не добавлять товар в корзину.

Когда я уже в корзине есть такое решение:

<?php

function mymodul_form_alter(&$form, \Drupal\Core\Form\FormStateInterface &$form_state$form_id) {
if (
$form_id == 'uc_cart_view_form') {
foreach (
$form['items'] as $k => $item) {
if (
is_array($item) && isset($item['qty'])) {
$form['items'][$k]['qty']['#type'] = 'value';
$form['items'][$k]['qty']['#value'] = 1;
}
}
unset(
$form['items']['#columns']['qty']);
}
}

?>