How to display quantity in select box in woocommerce

How to change the Product Quantity to a Dropdown in WooCommerce

WooCommerce by default adds a quantity input box to your product pages where customers can enter quantities, but a lot of times you want to have more control over the quantities and make it more idiot proof on your site for customers by allowing them to select the quantities instead of entering it themselves.

Related posts

Leave a Reply

1 comment

  1. function woocommerce_quantity_input($data = null) {
    
      global $product;
    
      if (!$data) {
        $defaults = array(
          'input_name'    => 'quantity',
          'input_value'   => '1',
          'max_value'     => apply_filters( 'woocommerce_quantity_input_max', '', $product ),
          'min_value'     => apply_filters( 'woocommerce_quantity_input_min', '', $product ),
          'step'          => apply_filters( 'woocommerce_quantity_input_step', '1', $product ),
          'style'         => apply_filters( 'woocommerce_quantity_style', 'float:left;', $product )
        );
      } else {
        $defaults = array(
          'input_name'    => $data['input_name'],
          'input_value'   => $data['input_value'],
          'max_value'     => apply_filters( 'woocommerce_quantity_input_max', '', $product ),
          'min_value'     => apply_filters( 'woocommerce_quantity_input_min', '', $product ),
          'step'          => apply_filters( 'woocommerce_quantity_input_step', '1', $product ),
          'style'         => apply_filters( 'woocommerce_quantity_style', 'float:left;', $product )
        );
      }
    
      if ( ! empty( $defaults['min_value'] ) )
        $min = $defaults['min_value'];
      else $min = 1;
    
      if ( ! empty( $defaults['max_value'] ) )
        $max = $defaults['max_value'];
      else $max = 20;
    
      if ( ! empty( $defaults['step'] ) )
        $step = $defaults['step'];
      else $step = 1;
    
      $options = '';
    
      for ( $count = $min; $count <= $max; $count = $count+$step ) {
        $selected = $count === $defaults['input_value'] ? ' selected' : '';
        $options .= '<option value="' . $count . '"'.$selected.'>' . $count . '</option>';
      }
    
      echo '<div class="quantity_select" style="' . $defaults['style'] . '"><select name="' . esc_attr( $defaults['input_name'] ) . '" title="' . _x( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) . '" class="qty">' . $options . '</select></div>';
    
    }