2016-12-05 5 views
1

В category.tpl я изменил:Make «Добавить в корзину» ссылку, вместо кнопки

<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> 

к:

<a href="index.php?route=checkout/cart/add&product_id=<?php echo $product['product_id']; ?>&quantity=<?php echo $product['minimum']; ?>" method="get"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></a> 

Щелкнув Добавить в корзину Теперь загружает фон страницы, с только:

[]

как содержание.

Я пытаюсь сделать ссылку «shareable», которую при копировании (например, в информационный бюллетень), щелкнув эту ссылку, автоматически добавит элемент в корзину.

Любые предложения о том, как достичь этого, были бы чрезвычайно оценены!

+1

Что такое 'cart.add' и что у вас есть в' index.php' ?????? – driconmax

+0

index.php - это config & constructors for opencart. cart.add - это функция javascript, которая обрабатывает действие add to cart – necrodeus

+0

. Ваша проблема может быть в файле index.php ....... – driconmax

ответ

0

cart.add('<?php echo $product['product_id']; ?> является javascriptfunction, которые посылают продукт с ajax и POST методом в корзину. , если вы хотите сделать это со ссылкой, поэтому вам нужно использовать GET.

1) в category.tpl, вместо:

<button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> 

использование:

<a href="index.php?route=checkout/cart/addToCart&product_id=<?php echo $product['product_id']; ?>"><?php echo $button_cart; ?></a> 

2) Открыть файл:

catalog/controller/checkout/cart.php 

здесь является новым function, который работает с GET , добавьте его в этот файл:

public function addToCart() { 
    $this->load->language('checkout/cart'); 

    if (isset($this->request->get['product_id'])) { 
     $product_id = (int)$this->request->get['product_id']; 
    } else { 
     $product_id = 0; 
    } 

    $this->load->model('catalog/product'); 

    $product_info = $this->model_catalog_product->getProduct($product_id); 

    if ($product_info) { 
     $this->cart->add($product_id); 

     // Display success message 
     $this->session->data['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart')); 

     //redirect to cart page 
     $this->response->redirect($this->url->link('checkout/cart')); 
    } 
} 

это отправит товар в корзину, хотя это простая функция, которая добавляет продукт с количеством = 1 и не проверяет параметры продукта, но так оно и есть, вы можете изменить его на основе вашей потребности ,

Теперь вы можете делиться ссылкой на продукт в любом месте. (проверено на последней версии 2.3.0.2)

+0

Привет, спасибо! Когда я тестирую, я получаю: Запрошенная вами страница не может быть найдена!при попытке добавить товар в корзину – necrodeus

+0

Какая версия для версии? – DigitCart

+1

2.3.0.2_rc - я пробовал его на 2.3.0.2 и работал как ожидалось !! Спасибо!! Начав понимать, насколько прекрасна версия для кандидатов на выпуск с OC, я никогда не работал с программным обеспечением, где они меняются настолько, но считают его патчей или версией кандидата; должно быть 2,4 с тем, сколько изменилось! Еще раз спасибо!! – necrodeus

1

держите ссылку href пустой и принимайте событие onclick от кнопки. я должен спросить, почему бы не просто нарисовать кнопку, как хотите?

+0

Белый это работает, вы не можете щелкнуть по ссылке, чтобы поделиться им. Он имеет то же поведение, что и кнопка по умолчанию. – necrodeus

+0

В отношении вопроса о стиле; это не внешний вид, который я пытаюсь изменить, но функциональность. Вы не можете «делиться» с кнопкой добавления в корзину, поскольку она работает из коробки. – necrodeus

 Смежные вопросы

  • Нет связанных вопросов^_^