2014-09-19 61 views
1

我是一名Web開發人員,我想用WooCommerce創建自己的網店。 但我有一個問題, 產品頁面上的加號和減號按鈕沒有顯示,有誰知道如何獲得這些按鈕(也許在某處添加一些代碼)?WooCommerce加號和減號按鈕

回答

2

您需要覆蓋子主題中來自woocommerce的「數量輸入」。這是位於插件 - > woocommerce - >模板 - >全球 - >數量輸入 複製此文件中的內容。在您的主題文件夾中創建一個'woocommerce'目錄。在此目錄中創建另一個名爲'global'的文件夾。將內容粘貼在這裏。

找到代碼

<input type="number" 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', 'woocommerce') ?>" class="input-text qty text" size="4" /> 

高於此添加它

<input class="minus" type="button" value="-"> 

和這片下方

<input class="plus" type="button" value="+"> 

你的整個代碼看起來像這樣上面這一段代碼:

if (! defined('ABSPATH')) exit; // Exit if accessed directly 
?> 
<div class="quantity"> 
<input class="minus" type="button" value="-"> 
<input type="number" 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', 'woocommerce') ?>" class="input-text qty text" size="4" /> 
<input class="plus" type="button" value="+"> 
</div> 
+0

值得並稱*在WC模板文件夾中找到的任何文件*可定製/將其複製到你的主題文件夾,並改變在必要時以同樣的方式覆蓋。 – Dre 2014-09-26 10:49:59

+4

非常感謝您的回答,但我仍然有問題。當我點擊加號或減號按鈕時,號碼輸入沒有任何事情發生。 – jorenwouters 2015-03-12 14:29:41

1

您還需要添加到您的Javascript:

$('.plus').on('click',function(e){ 

    var val = parseInt($(this).prev('input').val()); 

    $(this).prev('input').val(val+1); 


}); 

$('.minus').on('click',function(e){ 

    var val = parseInt($(this).next('input').val()); 

    $(this).next('input').val(val-1); 


}); 
+0

您需要添加.change();如果不是,jQ不起作用。 – 2017-02-24 10:36:58

2

@RollYourOwnEd更新的JavaScript,可以防止供給數量趨於在負值:

$('.plus').on('click',function(e){ 

var val = parseInt($(this).prev('input').val()); 

$(this).prev('input').val(val+1); 


}); 
$('.minus').on('click',function(e){ 

var val = parseInt($(this).next('input').val()); 
if(val !== 0){ 
    $(this).next('input').val(val-1); 
} }); 
+0

感謝jquery與WisdmLabs給出的輸入完美配合。 TY – 2016-07-08 04:25:20

0

我要發表評論,但不要有enoguh聲望這樣做,也許這個答案也有助於這個問題,以及:D


值得注意的是,在WordPress中,不推薦使用$來簡化jQuery。 應該使用'jQuery'。

閱讀f.ex. https://premium.wpmudev.org/blog/adding-jquery-scripts-wordpress/(包括如果您打算使用jQuery更多的工作要解決此問題),您需要添加.change();

更好的yourtheme/woocommerce/global/quantity-input.php 內這樣會在購物車頁面上也工作或https://digwp.com/2011/09/using-instead-of-jquery-in-wordpress/

+0

您的鏈接指向5歲的帖子。可能過時了。 – Seb 2016-11-28 13:51:42

+0

那麼,一箇舊的帖子,但與WordPress每天工作我非常清楚,它仍然是真的。這是今年的另一篇文章,確認完全一樣的東西,但也包括一個很好的解決方法。但是,如果您只是添加一兩個片段,我認爲最好堅持'jQuery'的方式。 HTTPS://premium.wpmudev。org/blog/adding-jquery-scripts-wordpress/ – jgangso 2016-11-28 13:59:52

+0

這不是關於你給的內容,而是一個5歲的鏈接,可能已經過時了。請記住,即使在幾年後,您的答案仍然可用。因此,提供最新的信息非常重要。 – Seb 2016-11-28 14:05:35

0

<script type="text/javascript"> 
    jQuery(document).ready(function($){ 
    $('.quantity').on('click', '.plus', function(e) { 
     $input = $(this).prev('input.qty'); 
     var val = parseInt($input.val()); 
     $input.val(val+1).change(); 
    }); 

    $('.quantity').on('click', '.minus', 
     function(e) { 
     $input = $(this).next('input.qty'); 
     var val = parseInt($input.val()); 
     if (val > 0) { 
      $input.val(val-1).change(); 
     } 
    }); 
}); 
</script> 
相關問題