Для некоторых товаров требуется убрать кнопку "добавить в корзину" и заменить ее надписью типа: "временно нет в продаже".
При этом совсем НЕ требуется автоматически отслеживать количество остатков товара на складе, хотелось бы просто иметь возможность в настройках товара вручную устанавливать галочку есть/нет в продаже.
Подскажите плиз: без заморочек это как-нибудь решается?
Предпочтение при решении — лучше написать несколько строк более-менее понятного кода, чем ставить какой-нибудь непонятный дополнительный модуль, типа uc_out_of_stock.
Комментарии
Создать филд аля field_show_price.
в hook_preprocess проверяете значение вашего поля и, если нужно, изменяете $vars['content']['add_to_cart']['#form']['actions']['submit']['#value'] на "Может хоть что-нить осталось?"
UPD: оказывается, вам не текст кнопки нужно сменить, а убрать кнопку. Тогда форме add_to_cart ставите '#access' = FALSE или просто делаете
<?php unset($vars['content']['add_to_cart'])?>
и добавляете свой маркап -<?php $vars['content']['not_available'] = array('#markup' => t("Нету тута"));?>
а уж это поле выведется само или можно руками через render() в темплейте
UPD2: вместо филда можно алтерить форму добавления / редактирования товаров, разместить свою галку где-нить в настройках убера (так по сути логичнее было б), но при этом нужно самому заботиться о сохранении и выдергивании инфы, например посредтвом добавления своего столбца в uc_products (через hook_schema_alter)
Спасибо за подробное руководство.
Что бы не заморачиваться с дополнительным полем, или столбцом в uc_products, решил использовать существующее поля. Например, действуем если значение цены нулевое или отрицательное. Так же еще поддумал о возможности использовать стандартные, но редко задействованные поля уберкарта, типа вес и размеры.
И еще, Вы не сказали какой именно hook_preprocess надо использовать, методом экспериментов вычислил что это hook_preprocess_node. Правильно?
Да, node.
Для вьюх что-то подобное придется делать посредством views_php - выводить кнопку или сообщение "Нету тута" в зависимости от значения вашего поля.
Решение по поводу существующих полей, пожалуй, не совсем правильное, но, будем считать, оправданное ))
Еще, возможно, тему стоит изменить на что-то типа "Вывод формы добавления товара по условию (Ubercart)" - авось пригодится кому