如何解决Woocommerce如何单击按钮添加到购物车和结帐?
目标:
我希望客户单击一个按钮,将数量= 1的商品添加到购物车,然后自动转到结帐页面。
我做什么:
我正在使用Elementor添加href值为:
的按钮https://fakeurl.com/checkout/?add-to-cart=59
问题:
点击按钮后,它将转到结帐页面,但是它将向购物车中添加2个数量而不是1个数量。
我尝试过的事情:
在href中明确指定数量:
https://fakeurl.com/checkout?add-to-cart=59&quantity=1
但是我得到相同的结果。
我的结帐页面是带有2个短代码的简单页面,即woocommerce_cart和woocommerce_checkout:
知道为什么吗?按下上述按钮之前,我需要清空购物车吗?
解决方法
像以前一样使用链接结构> ?add-to-cart=59&quantity=1
,并在主题的functions.php
中添加以下代码以进行检查
这种使代码平静的唯一方法是循环购物车,以查看该产品是否已经存在..如果已经存在-它会在$valid
上设置false
var
function is_product_in_cart( $valid,$product_id,$quantity) {
global $woocommerce;
if($woocommerce->cart->cart_contents_count == 0) return true;
foreach ( $woocommerce->cart->get_cart() as $key => $values ) {
$_product = $values['data'];
$id = $_product->id ;
if( $product_id == $id ) $valid = false;
}
return $valid;
}
add_filter( 'woocommerce_add_to_cart_validation','is_product_in_cart',10,3 );
,
Woocommerce的默认流程是,每当您添加购物车中已有的商品时,它将向购物车中添加数量。
- 每当将新产品添加到购物车中时,请清空购物车,以使购物车中仅剩一个商品。
在大多数情况下,由于您被重定向,所以数量翻倍。 因此,添加了数量,并在重定向后再次添加了数量。
原因可能有两点。
- 主题或wordpress永久链接设置正在链接中添加//,
- 您的结帐页面未在woocommerce设置中设置(woocommerce->高级设置->页面设置)
如何检查您是否被重定向(chrome)
Chrome浏览器检查器顶部(在“网络”标签中)是一个复选框,其中显示“保留日志”。启用此选项。现在,页面导航方式无关紧要,检查器将保留所有日志历史记录-包括重定向响应。
(在这里找到:See full redirect path and HTTP status code in Chrome)
可能的解决方案
- “启用存档上的AJAX添加到购物车按钮”(WooCommerce –>设置–>产品->常规)
在这里(https://www.businessbloomer.com/woocommerce-custom-add-cart-urls-ultimate-guide/)
在为购物车和结帐创建自定义页面时,这有时会有所帮助。 - 在WooCommerce>设置>产品下,禁用“添加成功后重定向到购物车页面”。
因为您要链接到结帐页面,这将再次将您重定向到购物车页面。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。