我正在尝试将默认的+/-数量选择器更改为具有给定数量的数字选项的下拉菜单(即1-10)。
任何人都知道如何做到这一点?
如果您希望我发布与此相关的任何代码,请告诉我。
答案 0 :(得分:3)
有一个插件可以为您执行此操作,称为WooCommerce高级产品数量,它是免费的,允许您为所有产品数量输入设置最小值,最大值和步长值。针对每种产品,每个类别/标签或网站范围设置规则。
http://wordpress.org/plugins/woocommerce-incremental-product-quantities/
它还适用于WooCommerce缩略图输入数量,它会将这些数量框放在所有产品缩略图框中。
http://wordpress.org/plugins/woocommerce-thumbnail-input-quantities/
享受!完全披露,我是插件作者。
答案 1 :(得分:1)
我也想这样做。到目前为止,我发现数量标记是在woocommerce/templates/single-product/add-to-cart/quantity.php
中生成的。您可以在主题文件夹中woocommerce/templates
目录结构的最小镜像中make a copy使用此文件,例如在这种情况下,将其复制到yourtheme/woocommerce/single-product/add-to-cart
。在那里,您可以在不更改插件的情况下对其进行编辑,并在插件更新时将其覆盖的风险。
答案 2 :(得分:1)
我没试过,但我发现了这段代码http://bastutor.blogspot.ca/2014/01/woocommerce-change-input-quantity-to-dropdown.html
/* Change Product Quantity Input to Dropdown */
function woocommerce_quantity_input() {
global $product;
$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; margin-right:10px;', $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){
$options .= '<option value="' . $count . '">' . $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>';
}
答案 3 :(得分:0)
您需要覆盖模板&#34; quantity-input.php&#34;为此,添加一个名为&#34; quantity-input.php&#34;的文件。在你的主题/ woocommerce / global /文件夹中,你可以在该文件中进行更改,现在wordpress将使用你的文件显示数量输入html。
答案 4 :(得分:-1)
Hi paste this in your function.php file
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'],
'step' => apply_filters( 'cw_woocommerce_quantity_input_step', '1', $product ),
'max_value' => apply_filters( 'cw_woocommerce_quantity_input_max', '', $product ),
'min_value' => apply_filters( 'cw_woocommerce_quantity_input_min', '', $product ),
'style' => apply_filters( 'cw_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 = 15;
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="cw_quantity_select" style="' . $defaults['style'] . '"><select name="' . esc_attr( $defaults['input_name'] ) . '" title="' . _x( 'Qty', 'Product Description', 'woocommerce' ) . '" class="cw_qty">' . $options . '</select></div>';
}