web-dev-qa-db-ja.com

woocommerceの製品詳細ページで数量フィールドを無効にする方法は?

Woocommerceの製品詳細ページで「数量」フィールド(カートに追加する前に数量を入力する)を非表示にし、「カートに追加」ボタンのみを表示する必要があります。カートに入れます。その理由は、重力フォームに基づいて数量を収集するためです。

31
user2051753
  • 製品を編集します。
  • 「インベントリ」をクリックします。
  • [個別に販売]と表示されているボックスをオンにします
58
John Chandler

最も安全な方法は、WordPress=組み込みフックまたはフィルターを使用することです

/**
 * @desc Remove in all product type
 */
function wc_remove_all_quantity_fields( $return, $product ) {
    return true;
}
add_filter( 'woocommerce_is_sold_individually', 'wc_remove_all_quantity_fields', 10, 2 );

他の製品タイプの数量セレクターを削除することもできます。詳細はこちらをご覧ください http://www.sutanaryan.com/how-to-remove-product-quantity-selectors-woocommerce/

注意してください:このオプションを効果的に使用すると、ショッピングカートに商品を複数回入れることができなくなります。その後、[カートに追加]をクリックすると、この製品をカートに入れることができるのは1回だけであるという警告が表示されます。これは誰にとっても望ましくないかもしれません。

39
Ryan S

enter image description here

上の画像に示されているオプションをチェックするだけで、プラグインを使用したり、function.phpを編集したりする必要はありません。

7
NJENGAH
.quantity, .product-quantity{display:none;}
3
Masterx1x

あなたのために働くかもしれない数量セレクターを削除する無料のプラグインがあります。 http://wordpress.org/extend/plugins/woocommerce-remove-quantity-fields/

3
Doug Smith

プラグインは必要ありません。たとえば、cssを使用して非表示にできます。ただし、woocommerceを使用すると、1つの商品のみを販売でき、同じ商品をカートに追加する選択肢はありません。 woocommerce-> settingsを見てください。それがすべてです。

2
rgdesign

製品の単一ページでそれを行う簡単な方法を見つけ、数量カウンターをカートに入れたままにしました。 functions.phpに次のコードを入れるだけです

add_action( 'wp_head', 'quantity_wp_head' );
function quantity_wp_head() {
if ( is_product() ) {
    ?>
<style type="text/css">.quantity, .buttons_added { width:0; height:0; display: none; visibility: hidden; }</style>
<?php }
}    

Woocommerceのドキュメントはこちらで確認できます。 http://docs.woothemes.com/document/remov-product-content-based-on-category/

1
Bruno Sousa

この質問に対する他の回答では処理されないエッジケースがあります、woocommerceの「個別に販売」オプションは効果的に数量入力を削除しますが、同じ製品がカートに複数回追加されるのを防ぎます

数量を編集したくないが、ユーザーが異なる属性で同じ製品をカートに追加できるようにするカスタム属性を持つ製品があるユースケースでは、「個別に販売」オプションは機能しません

この場合に必要なのはこのフィルターです

add_filter( 'woocommerce_cart_item_quantity', function ( $qty, $item_key, $item ) {
    if ( ! empty( $item['custom_data'] ) ) { //Here check for your custom attribute
        return sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $item_key );
    }
    return $qty;
}, 10, 3 );
0
Tofandel

編集する必要があるテンプレートはsingle-product/add-to-cart/variation-add-to-cart-button.php

したがって、このテンプレートを独自のテーマにコピーして編集し、数量フィールドを削除するだけです。次のようになります。

<?php
/**
 * Single variation cart button
 *
 * @see     http://docs.woothemes.com/document/template-structure/
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 2.5.0
 */
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

global $product;
?>
<div class="woocommerce-variation-add-to-cart variations_button">
    <button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html( $product->single_add_to_cart_text() ); ?></button>
    <input type="hidden" name="add-to-cart" value="<?php echo absint( $product->id ); ?>" />
    <input type="hidden" name="product_id" value="<?php echo absint( $product->id ); ?>" />
    <input type="hidden" name="variation_id" class="variation_id" value="0" />
</div>
0
skiplecariboo