2

当库存中有单个产品时,添加到购物车旁边不会出现数量按钮。如何让它出现?

4

2 回答 2

3

更新

这可以通过woocommerce_quantity_input_args过滤钩子中的以下自定义钩子函数来完成,我只在单个产品页面上定位库存数量为 1 的产品。

说明:如果您查看woocommerce源代码中的数量字段,您会发现'min_value'需要与 'max_value'显示数量字段不同。

因此,有 2 种替代方法可以显示数量字段:

1)设置一个空值'max_value'(这将允许在该字段中设置任何值):

add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 20, 2 );
function custom_quantity_input_args( $args, $product ) {
    if( $product->get_stock_quantity() == 1 && is_product() ){
        $args['max_value'] = '';
    }
    return $args;
}

代码在您的活动子主题(活动主题)的 function.php 文件中。

测试和工作。



2)将最小值设置为0(但在这种情况下可以将数量字段设置为零):

add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 20, 2 );
function custom_quantity_input_args( $args, $product ) {
    if( $product->get_stock_quantity() == 1 && is_product() ){
        $args['min_value'] = 0;
    }
    return $args;
}

代码在您的活动子主题(活动主题)的 function.php 文件中。

测试和工作。



3)另一种方式:

您可以为每个产品启用延期交货选项……这将始终显示数量字段。

在此处输入图像描述

于 2018-02-11T02:48:23.860 回答
0

在您的 function.php 文件中使用此代码:

<?php 
/**
 * Code should be placed in your theme functions.php file.
 */
add_filter( 'woocommerce_loop_add_to_cart_link', 'quantity_inputs_for_woocommerce_loop_add_to_cart_link', 10, 2 );
function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {
    if ( $product && $product->is_type( 'simple' ) && $product->is_purchasable() && $product->is_in_stock() && ! $product->is_sold_individually() ) {
        $html = '<form action="' . esc_url( $product->add_to_cart_url() ) . '" class="cart" method="post" enctype="multipart/form-data">';
        $html .= woocommerce_quantity_input( array(), $product, false );
        $html .= '<button type="submit" class="button alt">' . esc_html( $product->add_to_cart_text() ) . '</button>';
        $html .= '</form>';
    }
    return $html;
}

资源

于 2018-02-10T19:08:11.737 回答