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

对于可变产品,“添加到购物车”功能而不是“选择选项”按钮行为

鲁斯伯
2023-03-14

Woocommerce在产品循环中有两种按钮类型

  • 添加到购物车用于添加简单的产品到购物车
  • "选择选项",如果一个简单的产品成为一个变量或订阅选项被添加。

我的设置:

所有WooCommerce产品配置为简单产品和订阅产品同时使用以下插件

  • “Woocommerce订阅”
  • “所有用于Woocommerce订阅的产品”。默认设置为“简单产品”

现在所有产品上的按钮都从“添加到购物车”变成了“选择选项”。这是WooCommerce的默认行为。

我的问题:

我如何保持“添加到购物车”按钮及其将简单产品添加到购物车的功能(尽管有可变产品)?

背后的逻辑:用户有机会在结帐时做出选择,因此需要添加购物车功能,而不是重定向到单个产品页面进行选择。

共有2个答案

周凯捷
2023-03-14
function filter_woocommerce_loop_add_to_cart_link( $link, $product ) {

    if ( is_shop() && $product->product_type === 'simple' ) {
        $product_id = $product->get_id();
        $product_sku = $product->get_sku();

          $link = '<a rel="nofollow" href="?add-to-cart=' . $product_id . '" data-quantity="1" data-product_id="' . $product_id . '" data-product_sku="' . $product_sku . '" class="button product_type_simple add_to_cart_button ajax_add_to_cart add-to-cart" aria-label="Add to cart"><em>Add to cart</em></a>';

    }

    return $link; 
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'filter_woocommerce_loop_add_to_cart_link', 10, 2 );
匡玉堂
2023-03-14

您可以使用:(通过代码中添加的注释标记进行解释)

function filter_woocommerce_loop_add_to_cart_link( $args, $product ) {
    // Shop page & product type = simple
    if ( is_shop() && $product->product_type === 'simple' ) {
        // Get product ID, sku & add to cart url
        $product_id = $product->get_id();
        $product_sku = $product->get_sku();
        $product_url = $product->add_to_cart_url();

        // Quantity & text
        $quantity = isset( $args['quantity'] ) ? $args['quantity'] : 1;
        $text = $product->add_to_cart_text();

        $args = '<a rel="nofollow" href="' . $product_url . '" data-quantity="' . $quantity . '" data-product_id="' . $product_id . '" data-product_sku="' . $product_sku . '" class="button product_type_simple add_to_cart_button ajax_add_to_cart add-to-cart" aria-label="Add to cart"><em>' . $text . '</em></a>';
    }
    
    return $args; 
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'filter_woocommerce_loop_add_to_cart_link', 10, 2 );
 类似资料:
  • 我试图隐藏的添加到购物车按钮在所有的产品,除了一个可变的产品,我有。我已经尝试了以下留下变量选择选项(这是我想要的),但它隐藏了添加到购物车按钮(我不想要)。 有办法做到这一点吗? 我所有的产品都是简单的产品,除了这个单一的变量产品,所以也许有一个功能可以隐藏除了变量之外的所有简单产品的购物车按钮?

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

  • 所以我的木业商店发生了一件奇怪的事情。 现在,当一个单一的产品(没有变种)缺货,“数量”和“添加到购物车”按钮消失-这是我想要的。上面只显示“缺货”的标签。

  • 我正在尝试为variations父产品创建一个单独的add to cart按钮。我正在使用以下方法访问产品数据: 谢谢你。

  • 我使用“从Woocommerce中的functions.php文件中添加到购物车按钮上显示价格”的答案代码,在简单的产品中添加价格。 但我想改进这个功能,动态显示选择的变异价格内按钮。在变体产品页面上使用此代码,它只显示最低的价格。有什么解决办法吗?

  • 代码: 我在/r/woocommerce上发了帖子,但没有得到任何答复:/希望在这里有什么:3 有人知道去哪找吗?谢谢:)