Помощь Замена кнопки "Купить" на "В корзине" в карточке товара

ihos

Участник
Регистрация
13 Май 2012
Сообщения
213
Реакции
3
Сделал данную функцию на странице категории и в модулях.
Но в карточке товара никак не получается, реализовать по примеру как в категории.
Вот что я сделал: в catalog/controller/product/product.php
перед $data['products'][] = array(
вставил
Код:
$cart = false;
        foreach ($this->cart->getProducts() as $product) {
            if ($product['product_id'] == $result['product_id']) {
                $cart = true;
                break;
            }
        }
после $data['products'][] = array(
Код:
'cart'      => $cart,

В файле catalog/view/theme/default/template/product/product.tpl
Код:
 <button id="button-cart" type="button" value="<?php echo (!$product['cart']) ? $button_cart : 'В корзине'; ?>" onclick="cart.add('<?php echo $product_id; ?>',document.getElementById('quantity_<?php echo $product_id; ?>').value);" class="btnToCart" data-id="<?php echo $product_id; ?>" /><i class="fa fa-shopping-cart"></i><?php echo (!$product['cart']) ? $button_cart : 'В корзине'; ?></button>

В логе ошибки ругается на кнопку

2017-12-04 13:08:59 - PHP Notice: Undefined variable: product in system/storage/modification/catalog/view/theme/default/template/product/product.tpl on line 269
2017-12-04 13:08:59 - PHP Notice: Undefined variable: product in system/storage/modification/catalog/view/theme/default/template/product/product.tpl on line 269

редактировал (!$product['cart']) убрал $product оставил просто так (!$cart) но ничего не изменилось ошибка пропала но замены надписи нет
 
вы используете в шаблоне $product - а в контроллере $data['products'] - то есть $products, а это 2 разные переменные.
 
Вы можете подправить где неверно?
PHP:
$data['product_to_cart'] = false;
foreach ($this->cart->getProducts() as $product) {
    if ($product['product_id'] == $result['product_id']) {
        $data['product_to_cart'] = true;
        break;
    }
}
HTML:
<button id="button-cart" type="button" value="<?php echo (!$product_to_cart) ? $button_cart : 'В корзине'; ?>" onclick="cart.add('<?php echo $product_id; ?>',document.getElementById('quantity_<?php echo $product_id; ?>').value);" class="btnToCart" data-id="<?php echo $product_id; ?>" /><i class="fa fa-shopping-cart"></i><?php echo (!$product_to_cart) ? $button_cart : 'В корзине'; ?></button>
 
  • Нравится
Реакции: ihos
Вы хоть в правильные файлы вносите изменения? Обновили модификаторы?
 
PHP:
$data['product_to_cart'] = false;
foreach ($this->cart->getProducts() as $product) {
    if ($product['product_id'] == $result['product_id']) {
        $data['product_to_cart'] = true;
        break;
    }
}
HTML:
<button id="button-cart" type="button" value="<?php echo (!$product_to_cart) ? $button_cart : 'В корзине'; ?>" onclick="cart.add('<?php echo $product_id; ?>',document.getElementById('quantity_<?php echo $product_id; ?>').value);" class="btnToCart" data-id="<?php echo $product_id; ?>" /><i class="fa fa-shopping-cart"></i><?php echo (!$product_to_cart) ? $button_cart : 'В корзине'; ?></button>
Спасибо за ответ но не срабатывает, в ошибках
2017-12-04 20:52:33 - PHP Notice: Undefined variable: product_to_cart in /system/storage/modification/catalog/view/theme/default/template/product/product.tpl on line 270
2017-12-04 20:52:33 - PHP Notice: Undefined variable: product_to_cart in /system/storage/modification/catalog/view/theme/default/template/product/product.tpl on line 270
<-------------- добавлено через 76 сек. -------------->
Вы хоть в правильные файлы вносите изменения? Обновили модификаторы?
Ну так да кнопка Для просмотра ссылки Войди или Зарегистрируйся
Контролер Для просмотра ссылки Войди или Зарегистрируйся
 
Вам нужно менять кнопку товара или рекомендуемых товаров?? Потому что вы вставили код внутрь цикла перебора рекомендуемых. А их по всей видимости нет, так как переменная не определена.
Вставьте этот код:
PHP:
$data['product_to_cart'] = false;
foreach ($this->cart->getProducts() as $product) {
    if ($product['product_id'] == $product_info['product_id']) {
        $data['product_to_cart'] = true;
        break;
    }
}
После строки:
PHP:
if ($product_info) {
 
Последнее редактирование:
Вам нужно менять кнопку товара или рекомендуемых товаров?? Потому что вы вставили код внутрь цикла перебора рекомендуемых. А их по всей видимости нет, так как переменная не определена.
Вставьте этот код:
PHP:
$data['product_to_cart'] = false;
foreach ($this->cart->getProducts() as $product) {
    if ($product['product_id'] == $product_info['product_id']) {
        $data['product_to_cart'] = true;
        break;
    }
}
После строки:
PHP:
if ($product_info) {
Сепер, все заработало
 
Назад
Сверху