当WooCommerce中的最小值等于最大值时,在购物车页面上将输入的数量显示为只读

时间:2019-05-25 15:44:04

标签: php wordpress templates woocommerce product-quantity

在min和max = 1的情况下应用此过滤器将使数量输入字段在购物车页面上消失:

add_filter( 'woocommerce_quantity_input_args', 'custom_cart_qty_range', 10, 2 );        

function custom_cart_qty_range( $args, $product ) {
   $args['min_value'] = 1;
   $args['max_value'] = 1;
   return $args;
}

我完全不了解此“功能”,因为客户根本看不到商品数量。我想输入readonly并应用自定义CSS。我已经准备好了此CSS,但我需要停止的是当min = max时阻止WooCommerce对数量输入字段进行例外处理。

在产品页面上,当min = max(显示的过滤器不适用于产品页面数量)输入字段仍然可见时,对我来说是期望的结果。

1 个答案:

答案 0 :(得分:1)

如果要从WooCommerce停止此行为,则需要通过活动主题覆盖global/quantity-input.php模板文件。

首先阅读"How to override woocommerce templates via your active theme",其中介绍了如何将模板文件从WooCommerce插件复制到主题的文件夹中,以进行所需的更改。

要复制的相关模板文件为: global/quantity-input.php

一旦将其复制到主题中的“ global”子文件夹中的“ woocommerce”文件夹中,请打开/编辑quantity-input.php文件并更改以下代码块(从行{{ 1}} 21

25

通过以下方式:

?>
<div class="quantity hidden">
    <input type="hidden" id="<?php echo esc_attr( $input_id ); ?>" class="qty" name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $min_value ); ?>" />
</div>
<?php

保存,您完成。

现在,当?> <div class="quantity"> <input type="text" id="<?php echo esc_attr( $input_id ); ?>" class="qty" name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $min_value ); ?>" readonly="readonly" /> </div> <?php 等于min_value时,该字段将以正确的值显示为只读


现在,如果仅在购物车页面中需要,则必须进行此更改:

max_value