2015-11-07 82 views
0

WooCommerce决定从产品和购物车页面中删除+和 - 按钮以增加或减少数量。他们说这是多余的,如果有人想让他们从他们那里安装另一个插件。向WooCommerce添加加号和减号按钮

与其他人一样,我不希望在使用代码时安装插件是更明智的选择。更好的是,我们应该有选择保留它们。我离题...

我已经搜索了一个解决方案,尝试了一对夫妇,但没有喜悦。如果您需要将代码放回原处并放置代码的位置,我们将非常感谢您的帮助。

或找到另一thread here答案,虽然不能确定究竟在何处去,如果这是什么,我需要把按钮回到

// Input +- tweak 

$(function(a){ 
a(".woocommerce-ordering").on("change", "select.orderby", function(){ 
a(this).closest("form").submit(); 
}), 
a("div.quantity:not(.buttons_added), td.quantity:not(.buttons_added)").addClass("buttons_added").append('<input type="button" value="+" class="plus" />').prepend('<input type="button" value="-" class="minus" />'), a("input.qty:not(.product-quantity input.qty)").each(function(){ 
var b=parseFloat(a(this).attr("min"));b&&b>0&&parseFloat(a(this).val())<b&&a(this).val(b); 
}), 
a(document).on("click", ".plus, .minus", function(){ 
var b=a(this).closest(".quantity").find(".qty"), 
c=parseFloat(b.val()), 
d=parseFloat(b.attr("max")), 
e=parseFloat(b.attr("min")), 
f=b.attr("step");c&&""!==c&&"NaN"!==c||(c=0), 
(""===d||"NaN"===d)&&(d=""), 
(""===e||"NaN"===e)&&(e=0), 
("any"===f||""===f||void 0===f||"NaN"===parseFloat(f))&&(f=1), 
a(this).is(".plus")?b.val(d&&(d==c||c>d)?d:c+parseFloat(f)):e&&(e==c||e>c)?b.val(e):c>0&&b.val(c-parseFloat(f)), 
b.trigger("change"); 
}); 
}); 

提前感谢!

回答

0

是的,我知道这个问题,真烦人,每次我创造我需要修复这个主题......这是我如何做的:

在你的主题文件夹中创建一个文件夹:/woocommerce/global/

创建一个文件:quantity-input.php

把下面的内容,此文件中:

<?php 
 
/** 
 
* Product quantity inputs 
 
* 
 
* @author \t \t WooThemes 
 
* @package \t WooCommerce/Templates 
 
* @version  2.1.0 
 
*/ 
 

 
if (! defined('ABSPATH')) { 
 
\t exit; // Exit if accessed directly 
 
} 
 

 
?> 
 
<div class="quantity"> 
 
    <input type="text" pattern="[0-9]*" step="<?php echo esc_attr($step); ?>" <?php if (is_numeric($min_value)) : ?>min="<?php echo esc_attr($min_value); ?>"<?php endif; ?> <?php if (is_numeric($max_value)) : ?>max="<?php echo esc_attr($max_value); ?>"<?php endif; ?> name="<?php echo esc_attr($input_name); ?>" value="<?php echo esc_attr($input_value); ?>" title="<?php _ex('Qty', 'Product quantity input tooltip', 'moto') ?>" class="input-text qty text" size="4" /> 
 
    <span class="td-quantity-button plus">+</span> 
 
    <span class="td-quantity-button min">-</span> 
 
</div>

当然,你会需要一些jQuery来使按钮正常工作:

$('.td-quantity-button').on('click', function() { 
 
     var $this = $(this); 
 
     var $input = $this.parent().find('input'); 
 
     var $quantity = $input.val(); 
 
     var $new_quantity = 0; 
 
     if ($this.hasClass('plus')) { 
 
      var $new_quantity = parseFloat($quantity) + 1; 
 
     } else { 
 
      if ($quantity > 0) { 
 
       var $new_quantity = parseFloat($quantity) - 1; 
 
      } 
 
     } 
 
     $input.val($new_quantity); 
 
    });

请注意,您要的风格,这些按钮和输入字段自己。

另外请注意,你需要的jQuery enqueud在你的主题或插件:

function theme_name_scripts() { 
    wp_enqueue_script('jquery'); 
} 
add_action('wp_enqueue_scripts', 'theme_name_scripts'); 
+0

感谢伦斯!我曾尝试过您的数量输入,并没有工作,因为我没有在这里提供的jQuery。你能告诉我哪些文件需要添加,所以我可以在我的孩子主题中创建它? – Charly

+0

但是wp有它自己的:使用wp_enqueu_script('jquery'):在动作函数wp_enqueu_scripts中看到更新的答案 –

+0

真正感谢您的时间!我将jQuery入队脚本代码添加到我的子主题函数中,都很好。在我的jQuery文件夹中,我有多个文件来放置其他代码,不知道使用哪一个:jquery.js,jquery.jquery.js或?对不起,这是如此愚蠢,但迄今没有做太多与js – Charly