Có thể bạn quan tâm
Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.
Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều
- Azdigi: Giá rẻ thì dùng gói Pro Gold Hosting còn chất lượng hơn thì em khuyên dùng Business Hosting. Có điều kiện thì lên VPS nhé
- Tino hosting
- iNet
- Nước ngoài thì Vultr
Mặc định của woocomerce sẽ là input number có giá trị min = 1. Bây giờ chúng ta sẽ thay đổi phần này nha.
Đổi thành Dropdown Thiết lập giá trị min, max và step
Thêm đoạn code sau vào file functions.php trong theme của bạn nha
function woocommerce_quantity_input( $args = array(), $product = null, $echo = true ) { if ( is_null( $product ) ) { $product = $GLOBALS['product']; } $defaults = array( 'input_id' => uniqid( 'quantity_' ), 'input_name' => 'quantity', 'input_value' => '1', 'max_value' => apply_filters( 'woocommerce_quantity_input_max', -1, $product ), 'min_value' => apply_filters( 'woocommerce_quantity_input_min', 0, $product ), 'step' => apply_filters( 'woocommerce_quantity_input_step', 1, $product ), 'pattern' => apply_filters( 'woocommerce_quantity_input_pattern', has_filter( 'woocommerce_stock_amount', 'intval' ) ? '[0-9]*' : '' ), 'inputmode' => apply_filters( 'woocommerce_quantity_input_inputmode', has_filter( 'woocommerce_stock_amount', 'intval' ) ? 'numeric' : '' ), 'style' => apply_filters( 'woocommerce_quantity_style', 'float:left; margin-right:10px;', $product ) ); $args = apply_filters( 'woocommerce_quantity_input_args', wp_parse_args( $args, $defaults ), $product ); // Apply sanity to min/max args - min cannot be lower than 0. $args['min_value'] = max( $args['min_value'], 0 ); $args['max_value'] = 0 < $args['max_value'] ? $args['max_value'] : ''; // Max cannot be lower than min if defined. if ( '' !== $args['max_value'] && $args['max_value'] < $args['min_value'] ) { $args['max_value'] = $args['min_value']; } if ( ! empty( $args['min_value'] ) ) $min = $args['min_value']; else $min = 1; if ( ! empty( $args['max_value'] ) ) $max = $args['max_value']; else $max = 30; if ( ! empty( $args['step'] ) ) $step = $args['step']; else $step = 1; ob_start(); $options = ''; for ( $count = $min; $count <= $max; $count = $count + $step ) { $options .= '<option value="' . $count . '" '.selected($count, $args['input_value'], false).'>' . $count . '</option>'; } echo '<div class="quantity_select" style="' . $args['style'] . '"><select name="' . esc_attr( $args['input_name'] ) . '" title="' . _x( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) . '" class="qty">' . $options . '</select></div>'; if ( $echo ) { echo ob_get_clean(); // WPCS: XSS ok. } else { return ob_get_clean(); } }
Chỉ thay đổi giá trị mặc định, min, max và step
khi muốn giữ nguyên là input rồi để khách tự chọn số lượng thì ta thêm đoạn code nay nha. Bạn cũng thêm đoạn code này vào file functions.php nhé
add_filter( 'woocommerce_quantity_input_args', 'custom_quantity', 10, 2 ); function custom_quantity( $args, $product ) { $args['input_value'] = 10; // Giá trị ban đầu //$args['max_value'] = 20; //Thêm vào nếu muốn số lượng tối đa có thể đặt hàng //$args['min_value'] = 1; // số lượng tối thiểu có thể đặt hàng //$args['step'] = 1; //Bước nhảy của mỗi lần ấn tăng/giảm return $args; }
Chúc các bạn thành công!
- Bình luận