Maison  >  Questions et réponses  >  le corps du texte

Modifier la valeur de l'étape de quantité d'entrée d'un produit simple en fonction du poids dans WooCommerce

<p>Je souhaite que la valeur du sélecteur de quantité change en fonction du poids que nous avons défini dans Expédition > Poids du produit pour un produit simple. Comme le montre l'image ci-dessous, lorsque nous réglons le poids du produit à 0,5 kg, le sélecteur de quantité de produit démarre à 0,5 et si nous le réglons à 1 kg, il démarre à 1. Enfin, lorsque nous définissons le poids sur chaque numéro, le sélecteur de quantité doit se déclencher en fonction du numéro de poids que nous avons défini. J'ai modifié le code mais cela ne fonctionne pas pour les valeurs inférieures à 1. </p> <pre class="brush:php;toolbar:false;">/*Sélecteur de quantité basé sur simple*/ fonction custom_quantity_selector_min_value( $min, $product ) { $poids = $produit->get_weight(); si ( $poids > 0 ) { $min = $poids ; } retourner $min ; } add_filter( 'woocommerce_quantity_input_min', 'custom_quantity_selector_min_value', 10, 2 ); //Modifie la valeur de l'étape du sélecteur de quantité. fonction custom_quantity_selector_step( $step, $product ) { $poids = $produit->get_weight(); si ( $poids > 0 ) { $pas = $poids ; } retourner $étape ; } add_filter( 'woocommerce_quantity_input_step', 'custom_quantity_selector_step', 10, 2 ); //Mise à jour dynamiquement la valeur du sélecteur de quantité. fonction custom_quantity_selector_value( $input_value, $product ) { $poids = $produit->get_weight(); si ( $poids > 0 ) { $input_value = $poids ; } renvoie $input_value ; } add_filter( 'woocommerce_quantity_input_value', 'custom_quantity_selector_value', 10, 2 );</pre></p>
P粉351138462P粉351138462381 Il y a quelques jours504

répondre à tous(1)je répondrai

  • P粉613735289

    P粉6137352892023-09-05 13:56:13

    Remplacement du code correct à utiliser (mis à jour) :

    • Produit simple,
    • ou produits variables (et leurs variantes).

    Cela fonctionnera sans problème comme prévu :

    • Page produit unique,
    • Il existe également une page de panier.
    add_filter( 'woocommerce_quantity_input_args', 'cart_variation_quantity_input_args', 10, 2 );
    function cart_variation_quantity_input_args( $args, $product ){
        $product_weight = $product->get_weight();
        
        if( $product_weight > 0 ) {
            if ( ! is_cart()) {
                $args['input_value'] = $product_weight;
            } 
            $args['step'] = $args['min_value'] = $product_weight;
        }
        return $args;
    }
    

    Assurez-vous d'ajouter également (pour la gestion des stocks) :

    remove_filter('woocommerce_stock_amount', 'intval');
    add_filter('woocommerce_stock_amount', 'floatval');
    

    Le code est dans le fichier function.php du thème enfant actif (ou thème actif). Testé et fonctionne.


    Lors du chargement d'une page contenant un produit de 0.5 poids :

    Réglez la quantité correcte sur le produit et augmentez 0.5 par étapes de (les étapes normales sont également de 1) .

    Sur la page du panier, tout fonctionne comme prévu, avec une taille de pas de 0.5 (la taille de pas normale est également de 1) .

    Connexe (pour les variantes) : Modifiez la valeur de l'étape de quantité d'entrée en fonction du poids de variation sélectionné dans WooCommerce

    répondre
    0
  • Annulerrépondre