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é.
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.
.quantity, .product-quantity{display:none;}
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/
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à.
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/
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 );
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>