web-dev-qa-db-fra.com

Comment désactiver le champ de quantité dans la page de détail du produit dans woocommerce?

Je dois masquer le champ "quantité" (où l'on entre la quantité avant d'ajouter au panier) dans Woocommerce sur la page de détail du produit, et n'afficher que le bouton "ajouter au panier", qui mettrait alors la quantité de 1 dans le panier. La raison en est que je rassemble la quantité sur la base des formes de gravité.

31
user2051753
  • Modifiez votre produit.
  • Cliquez sur "Inventaire".
  • Cochez la case "Vendu individuellement"
58
John Chandler

Le moyen le plus sûr consiste à utiliser WordPress hook ou filtre intégré

/**
 * @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 );

Vous pouvez également supprimer le sélecteur de quantité dans un autre type de produit, vous pouvez en trouver plus ici http://www.sutanaryan.com/how-to-remove-product-quantity-selectors-woocommerce/

Veuillez être averti: l'utilisation efficace de cette option rend impossible d'avoir un produit plus d'une fois dans votre panier. Par la suite, un clic sur "Ajouter au panier" déclenchera un avertissement indiquant que ce produit ne peut être dans votre panier qu'une seule fois. Cela pourrait ne pas être souhaitable pour tout le monde.

39
Ryan S

enter image description here

Il n'est pas nécessaire d'utiliser un plugin ou de modifier la fonction.php il suffit de cocher l'option indiquée dans l'image ci-dessus.

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

Il existe un plugin gratuit pour supprimer les sélecteurs de quantité qui pourraient fonctionner pour vous. http://wordpress.org/extend/plugins/woocommerce-remove-quantity-fields/

3
Doug Smith

Il n’y a pas besoin de plugin, par exemple vous pouvez le cacher en utilisant css. Mais woocommerce vous permet de vendre un seul produit, sans choix d'ajouter plus du même article au panier. Jetez un oeil sur woocommerce-> paramètres. Tout est là.

2
rgdesign

J'ai trouvé un moyen simple de le faire uniquement sur une seule page du produit et de garder le compteur de quantité dans le panier. Mettez simplement le code suivant dans 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 }
}    

Vous pouvez consulter la documentation de woocommerce ici: http://docs.woothemes.com/document/remov-product-content-based-on-category/

1
Bruno Sousa

Il existe un cas Edge qui n'est pas traité par d'autres réponses à cette question, l'option `` est vendu individuellement '' de woocommerce supprime efficacement la quantité entrée mais empêche le même produit d'être ajouté plusieurs fois au panier

Dans un cas d'utilisation où vous avez un produit avec des attributs personnalisés où vous ne voulez pas que la quantité soit modifiable mais vous voulez toujours permettre à un utilisateur d'ajouter le même produit au panier avec des attributs différents, alors le `` est vendu individuellement '' l'option ne fonctionnera pas

Ce dont vous avez besoin dans ce cas, c'est ce filtre

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

Le modèle que vous devez modifier est single-product/add-to-cart/variation-add-to-cart-button.php.

Vous pouvez donc simplement copier ce modèle dans votre propre thème et le modifier pour supprimer le champ de quantité. Cela deviendrait quelque chose comme:

<?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