Modifier la valeur de l'étape de quantité d'entrée d'un produit simple en fonction du poids dans WooCommerce
P粉351138462
P粉351138462 2023-09-04 21:55:45
0
1
562
<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粉351138462
P粉351138462

répondre à tous(1)
P粉613735289

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal