Задача: реализовать на 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...
Добавить комментарий