Ändern Sie den Schrittwert der Eingabemenge eines einfachen Produkts basierend auf dem Gewicht in WooCommerce
P粉351138462
P粉351138462 2023-09-04 21:55:45
0
1
570
<p>Ich möchte, dass sich der Wert der Mengenauswahl basierend auf dem Gewicht ändert, das wir unter Versand >Produktgewicht für ein einfaches Produkt festgelegt haben. Wie in der Abbildung unten gezeigt, beginnt die Auswahl der Produktmenge bei 0,5, wenn wir das Gewicht des Produkts auf 0,5 kg einstellen, und wenn wir es auf 1 kg einstellen, beginnt es bei 1. Wenn wir schließlich das Gewicht für jede Zahl festlegen, sollte der Mengenwähler basierend auf der von uns definierten Gewichtszahl ausgelöst werden. Ich habe den Code geändert, aber er funktioniert nicht für Werte unter 1. </p> <pre class="brush:php;toolbar:false;">/*Mengenauswahl basierend auf einfach*/ Funktion custom_quantity_selector_min_value( $min, $product ) { $weight = $product->get_weight(); if ( $weight > 0 ) { $min = $weight; } return $min; } add_filter( 'woocommerce_quantity_input_min', 'custom_quantity_selector_min_value', 10, 2 ); //Ändern Sie den Schrittwert der Mengenauswahl. Funktion custom_quantity_selector_step( $step, $product ) { $weight = $product->get_weight(); if ( $weight > 0 ) { $step = $weight; } return $step; } add_filter( 'woocommerce_quantity_input_step', 'custom_quantity_selector_step', 10, 2 ); //Aktualisieren Sie den Mengenauswahlwert dynamisch. Funktion custom_quantity_selector_value( $input_value, $product ) { $weight = $product->get_weight(); if ( $weight > 0 ) { $input_value = $weight; } return $input_value; } add_filter( 'woocommerce_quantity_input_value', 'custom_quantity_selector_value', 10, 2 );</pre></p>
P粉351138462
P粉351138462

Antworte allen(1)
P粉613735289

要使用的正确代码替换(更新):

  • 简单的产品,
  • 或可变产品(及其变体)。

它将按预期顺利工作:

  • 单一产品页面,
  • 还有购物车页面。
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;
}

请确保您也添加了(用于库存管理):

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

代码位于活动子主题(或活动主题)的functions.php 文件中。经过测试并有效。


加载包含 0.5 重量的产品的页面时:

在产品上设置正确的数量输入,并以 0.5 的步长增加(正常步长也是 1)

在购物车页面上,一切都按预期进行,步长为 0.5(正常步长也是 1)

相关(针对变体):根据 WooCommerce 中选定的变化权重更改输入数量步骤值

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage