Drupal 7 Commerce/Ubercart - как отключить кнопку "добавить в корзину" при нулевой стоимости

Категория: Drupal
Дата публикации: 27 октября, 2015 - 19:55
Последнее изменение: 20 ноября, 2019 - 16:56

Задача: реализовать на Drupal 7 Commerce/Ubercart простой аналог наличия/отсутствия товара - в том случае, если у товара цена 0, то этот товар нельзя добавить в корзину.
Решение:
В template.php помещаем код:

Для Commerce:

function THEMENAME_form_alter(&$form, &$form_state, $form_id) {

  if (strpos($form_id, "commerce_cart_add_to_cart_form") === 0) {
    if (isset($form['product_id']['#value'])) {
      $product = commerce_product_load($form['product_id']['#value']);
      if($product->commerce_price['und'][0]['amount'] == '0'){
        $form['submit']['#value'] = t('Товара нет в наличии');
        $form['submit']['#disabled'] = TRUE;
      }
    }
  }

}

Для Ubercart:

function THEMENAME_form_alter(&$form, &$form_state, $form_id) {

  if (strpos($form_id, "uc_product_add_to_cart_form") === 0) {
    if (isset($form['qty'])) {

     if($form['node']['#value']->sell_price == '0.00000'){

        $form['submit']['#value'] = t('Товара нет в наличии');
        $form['submit']['#disabled'] = TRUE;
        $form['qty']['#access'] = false;

      }
    }
  }

}

Код написан на основе https://drupalcommerce.org/discussions/7015/hide-add-cart-if-field-exist...

Добавить комментарий