Die Menge des WooCommerce-Warenkorbs ändert sich nach der Warenkorbaktualisierung nicht

Lesezeit: 3 Minuten

Die Menge des WooCommerce Warenkorbs andert sich nach der Warenkorbaktualisierung nicht
Benutzer14847965

Ich verwende das folgende Snippet, um die WooCommerce-Regeln zum Hinzufügen zum Warenkorb zu ändern.

add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 10, 2 );

function custom_quantity_input_args( $args, $product ) {
$custom_qty_product_ids = array(27345, 27346);
if (!in_array($product->get_id(), $custom_qty_product_ids)) {
    $args['input_value']    = 25;

$args['max_value']  = 500;
$args['min_value']  = 25;
$args['step']       = 25;
} else {
    if (in_array($product->get_id(), $custom_qty_product_ids)){
        $args['input_value']    = 26;

$args['max_value']  = 260;
$args['min_value']  = 26;
$args['step']     = 26;
    }
}
return $args;
}

Es funktioniert auf meiner Produktseite, aber die Warenkorbmenge ändert sich nach der Warenkorbaktualisierung nicht, hier ist das Screenshot-Beispiel.

wc-cart-Beispiel-Screenshot

Der folgende Ausschnitt (ursprünglicher Codeschnipsel) funktioniert einwandfrei, aber ich möchte eine andere Regel auf Produkt 27345, 27346 anwenden.

add_filter('woocommerce_quantity_input_args', 'c_qty_input_args', 10, 2);

function c_qty_input_args($args, $product) {
if(is_singular('product')) {
    $args['input_value'] = 25;
}
    $args['max_value']  = 500;
    $args['min_value']  = 25;
    $args['step']       = 25;

return $args;
}

Wie kann ich das Snippet ändern und das Problem beheben?

Danke!

Damit es überall mit unterschiedlichen Einstellungen basierend auf bestimmten Produkten funktioniert, versuchen Sie stattdessen Folgendes:

// General quantity settings
add_filter( 'woocommerce_quantity_input_args', 'custom_quantity_input_args', 10, 2 );
function custom_quantity_input_args( $args, $product ){
    $product_ids = array(27345, 27346);
    $condition   = in_array( $product->get_id(), $product_ids );

    if( ! is_cart() ) {
        $args['input_value'] = $condition ? 25 : 26; // Starting value
    }

    $args['min_value'] = $condition ? 25 : 26; // Minimum value
    $args['max_value'] = $condition ? 500 : 260; // Maximum value
    $args['step']      = $condition ? 25 : 26; // Step value

    return $args;
}

// For Ajax add to cart button (define the min and max value)
add_filter( 'woocommerce_loop_add_to_cart_args', 'custom_loop_add_to_cart_quantity_arg', 10, 2 );
function custom_loop_add_to_cart_quantity_arg( $args, $product ) {
    $product_ids = array(27345, 27346);
    $condition   = in_array( $product->get_id(), $product_ids );
    
    $args['quantity'] = $condition ? 25 : 26; // Min value

    return $args;
}

// For product variations (define the min value)
add_filter( 'woocommerce_available_variation', 'custom_available_variation_min_qty', 10, 3);
function custom_available_variation_min_qty( $data, $product, $variation ) {
    $product_ids = array(27345, 27346);
    $condition   = in_array( $product->get_id(), $product_ids );
    
    $args['min_qty'] = $condition ? 25 : 26; // Min value
    $args['max_qty'] = $condition ? 500 : 260; // Max value

    return $data;
}

Der Code wird in die Datei functions.php des aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert.

  • Ich habe getestet und alles funktioniert einwandfrei, perfekte Lösung!!

    – Benutzer14847965

    15. Januar 2021 um 7:59 Uhr

  • Hallo, danke für Ihre Antwort, ich habe ein variables Produkt mit der ID 27525 und vielen Variationen, und ich möchte eine andere Regel auf dieses Produkt anwenden, Mindestmenge 1, Höchstmenge 24, Schritt 1. Ich habe versucht, Ihren Code zu ändern, aber er hat gewonnen funktioniert nicht, gibt es dafür eine Lösung?

    – Benutzer14847965

    24. Februar 2021 um 7:36 Uhr

  • @user14847965 Wenn Sie eine andere Frage haben, stellen Sie bitte eine neue detaillierte Frage, danke.

    – LoicTheAztec

    24. Februar 2021 um 10:42 Uhr

  • Entschuldigung, ich poste hier eine weitere Frage Link, hoffe, Sie können etwas helfen, danke.

    – Benutzer14847965

    25. Februar 2021 um 2:30 Uhr

  • @user14847965 beantwortet Hier … Wenn diese Antwort Ihre Frage beantwortet, können Sie die Antwort bitte akzeptieren, und wenn Sie möchten/möchten, können Sie die Antwort auch positiv bewerten, danke.

    – LoicTheAztec

    25. Februar 2021 um 10:39 Uhr

Verwenden Sie die Aktion “woocommerce_update_cart_action_cart_updated” und deaktivieren oder entfernen oder ersetzen Sie den Abschnitt “Menge” durch schreibgeschützten Text.

add_action('woocommerce_update_cart_action_cart_updated','action_cart_updated_quantity', 20, 1 );
function action_cart_updated_quantity( $cart_updated_quantity ){

    // apply action with Your Quantity after updating cart.
 }

1004840cookie-checkDie Menge des WooCommerce-Warenkorbs ändert sich nach der Warenkorbaktualisierung nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy