Ich möchte einen bedingten progressiven Rabatt basierend auf der Anzahl der Artikel im Warenkorb haben. Nachdem Sie 2 Produkte in den Warenkorb gelegt haben, erhalten Sie einen Rabatt. Mehr Produkte, die Sie hinzufügen, und mehr Rabatt, den Sie erhalten.
Zum Beispiel:
- 1 Produkt – voller Preis (kein Rabatt)
- 2 Produkte – Vollpreis mit 5 % Rabatt auf den Gesamtpreis
- 3 Produkte – Vollpreis mit 10 % Rabatt auf den Gesamtpreis
- 4 Produkte – Vollpreis mit 15 % Rabatt auf den Gesamtpreis
- Und so weiter …
Ich habe im Internet gesucht, ohne Erfolg. Bei der Suche nach Rabatten falle ich einfach auf die WooCommerce-Gutscheinfunktion oder ich erhalte einen alten falschen Code…
Irgendeine Idee? Wie kann ich es tun?
Ist es möglich?
Danke.
Aktualisierung – Oktober 2018 (Code verbessert)
Ja, es ist möglich, einen Trick anzuwenden, um dies zu erreichen. Normalerweise verwenden wir für Rabatte auf Warenkörbe WooCommerce-Coupons. Hier werden Coupons nicht angeeignet. Ich werde hier eine negative bedingte Gebühr verwenden, das wird ein Rabatt.
Die Berechnung:
— Die Anzahl der Artikel basiert auf der Menge pro Artikel und der Gesamtzahl der Artikel im Warenkorb
— Der Prozentsatz beträgt 0,05 (5 %) und wächst mit jedem weiteren Element (wie Sie gefragt haben).
— Wir verwenden die rabattierte Zwischensumme (um zu vermeiden, dass mehrere zusammenbrechende Rabatte durch Coupons hinzugefügt werden)
Der Code:
add_action( 'woocommerce_cart_calculate_fees', 'cart_progressive_discount', 50, 1 );
function cart_progressive_discount( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// For 1 item (quantity 1) we EXIT;
if( $cart->get_cart_contents_count() == 1 )
return;
## ------ Settings below ------- ##
$percent = 5; // Percent rate: Progressive discount by steps of 5%
$max_percentage = 50; // 50% (so for 10 items as 5 x 10 = 50)
$discount_text = __( 'Quantity discount', 'woocommerce' ); // Discount Text
## ----- ----- ----- ----- ----- ##
$cart_items_count = $cart->get_cart_contents_count();
$cart_lines_total = $cart->get_subtotal() - $cart->get_discount_total();
// Dynamic percentage calculation
$percentage = $percent * ($cart_items_count - 1);
// Progressive discount from 5% to 45% (Between 2 and 10 items)
if( $percentage < $max_percentage ) {
$discount_text .= ' (' . $percentage . '%)';
$discount = $cart_lines_total * $percentage / 100;
$cart->add_fee( $discount_text, -$discount );
}
// Fixed discount at 50% (11 items and more)
else {
$discount_text .= ' (' . $max_percentage . '%)';
$discount = $cart_lines_total * $max_percentage / 100;
$cart->add_fee( $discount_text, -$discount );
}
}
Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs eingefügt. Getestet und funktioniert.
Bei Verwendung der FEE-API für Rabatte (eine negative Gebühr) werden immer Steuern erhoben.
Verweise:
Hört sich an wie Dynamische Preisgestaltung
– Helgathewikinger
5. September 2016 um 19:37 Uhr