使 'Add to Cart' 成为 link,而不是按钮

Make 'Add to Cart' a link, instead of a button

在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/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' link,当复制(例如,进入时事通讯)时单击 link 会自动将商品添加到您的购物车。

如有任何关于如何实现这一目标的建议,我们将不胜感激!

保持 link href 为空,并从按钮中获取 onclick 事件。不过我必须问,为什么不按照您的意愿简单地设置按钮样式?

cart.add('<?php echo $product['product_id']; ?>javascript function,它使用 ajaxPOST 方法将产品发送到购物车。 如果你想用 link 来做到这一点,那么你需要使用 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

这是与 GET 一起使用的新 function,将其添加到此文件中:

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 的产品并且不检查产品选项,但就是这样,您可以根据需要进行修改。

现在您可以在任何地方共享产品的添加到购物车 link。 (在最新版本 2.3.0.2 上测试)