当前位置: 首页 > 知识库问答 >
问题:

“添加到购物车”按钮重定向到签出时出现问题

韩善
2023-03-14

嗨我也有类似的问题

如何删除已添加的购物车项目并重定向到结帐?

在产品页面上,当我单击“添加到购物车”时,总是会出现以下错误:“您无法在购物车中添加其他[产品]”

我试过LoicTheAztec发布的解决方案

1)添加到购物车之前清空购物车(如果购物车不是空的)

add_filter( 'woocommerce_add_to_cart_validation', 'one_cart_item_at_the_time', 10, 3 );
function one_cart_item_at_the_time( $passed, $product_id, $quantity ) {
    if( ! WC()->cart->is_empty())
        WC()->cart->empty_cart();
    return $passed;
}

2)添加到购物车重定向到结账:

add_filter( 'woocommerce_add_to_cart_redirect', 'add_to_cart_checkout_redirection', 10, 1 );
function add_to_cart_checkout_redirection( $url ) {
    return wc_get_checkout_url();
}

3) 跳过购物车页面重定向到签出:

add_action('template_redirect', 'skip_cart_page_redirection_to_checkout');
function skip_cart_page_redirection_to_checkout() {
    if( is_cart() )
        wp_redirect( wc_get_checkout_url() );
}

这个解决方案可以解决我的问题,但是第一个片段删除了我已经在购物篮中的所有其他产品,我应该只重置当前产品,而不是整个购物车。我怎样才能解决这个问题?

共有1个答案

孔硕
2023-03-14

在第一个代码段中尝试此代码,它将检查购物车是否有产品,如果在此处找到,则重定向:

add_filter('woocommerce_add_to_cart_validation', 'one_cart_item_at_the_time', 10, 3);

function one_cart_item_at_the_time( $passed, $product_id, $quantity ) {
    if(! WC()->cart->is_empty()) {
        $cartId = WC()->cart->generate_cart_id($product_id);
        $cartItemKey = WC()->cart->find_product_in_cart($cartId);
        if ($cartItemKey) {
          return $passed;
        } else {
          $woocommerce->cart->add_to_cart( $product_id );
          return $passed;
        }
    }
}
 类似资料:
  • 我使用woocommerce插件创建了一个电子商务。我只出售订阅,因此“/cart/”页面没有用处。我试图摆脱它,这样当我的客户点击“添加到购物车”按钮时,他就会出现在结帐页面上。

  • 问题内容: 单击后,我想重新标记“ 添加到购物车” 按钮,然后将一项添加到购物车, 再添加到购物车中 。 这可能吗? 我有第二个 转到购物车* 按钮的Child-Theme function.php ,并且它正在工作。 * 但是我不知道在将一件商品添加到购物车后如何解决此重新标签问题(商店仅出售一件尺寸不同的商品)。我希望我很清楚。 这是我的代码: 问题答案: 更新: 在下面,您将找到使此重新标记

  • 我需要一个按钮上的WooCommerce归档,添加到购物车的产品,并重新引导客户到结账。我管它叫“买了结账”。 到目前为止,这是我的代码,我不确定这里出了什么问题。

  • 我正在尝试LoicTheAztec的以下代码-添加到购物车并重定向到WooCommerce中的可变产品的签出 现在的问题是,每当我用产品编辑器中设置的默认变体单击Buy Now按钮时,代码都不起作用。 在这种情况下,立即购买URL变为.../?#0 我使用的主题是巴塞尔 有什么解决办法吗? LoicTheAztec尝试了代码。

  • 我想在单个产品页面中向“添加到购物车”按钮显示产品价值(版本) 我找到了必须编辑的文件:woocommerce\templates\single-product\add-to-cart\external.php 但现在我的“添加到购物车”按钮上什么也没有显示

  • 基于Woocommerce签出页面应答代码中向购物车添加产品的复选框字段,我的以下代码尝试非常有效:它允许客户通过单击复选框向购物车添加特定产品,然后通过AJAX更新,根据是否单击该产品来添加或删除该产品。 我面临的问题是存在漏洞。如果客户刷新签出页面,复选框将恢复为未选中状态,并允许客户添加第二个或更多产品(如果他们继续刷新)。 我还有一个功能,可以检查特定的产品是否在购物车中,并且工作正常。我