Fügen Sie bedingt einen Rabatt programmatisch zu Woocommerce 3 hinzu

Lesezeit: 1 Minute

Benutzer-Avatar
Herr Jo

Ich suche nach einer Möglichkeit, einen Gutschein während des Bezahlvorgangs programmgesteuert zu erstellen und ihn nach Abschluss des Bezahlvorgangs zu löschen. Dies muss auf der Grundlage eines Bonussystems erfolgen, bei dem ich überprüfe, ob der Kunde einen Bonus erhalten darf oder nicht. Wichtig ist, dass ich es nicht als normalen Coupon machen möchte, da Kunden ihn nicht anhängen können sollen, indem sie den Code kennen.

Ich habe nur eine Lösung gefunden, um einen Gutschein anzuhängen oder programmgesteuert zu erstellen. Ich habe nichts über einen temporären Gutschein während eines Checkouts gefunden.

Wichtig ist auch, dass dieser Gutschein nur mit einem anderen Gutschein kombiniert werden kann und nicht mit mehr.

Das ist mein Code:

if ( get_discount_points() < 100 ) {
    //Customer has bonus status 1
} elseif ( get_discount_points() < 200 ) {
    //Customer has bonus status 2
} else {
    //Customer has bonus status x

um den Rabattprozentsatz }

Also ist das überhaupt möglich?

Um etwas Einfaches zu erhalten, könnten Sie stattdessen eine negative Gebühr verwenden (wobei jeder Schrittpunkt den Rabattprozentsatz erhöht) wie:

function get_customer_discount(){
    if( $points = get_discount_points() ){
        if ( $points < 100 ) {
            return 1; // 1 % discount
        } elseif ( $points < 200 ) {
            return 2; // 2.5 % discount
        } else {
            return 4; // 5 % discount
        }
    } else {
        return false;
    }
}


add_action( 'woocommerce_cart_calculate_fees', 'custom_discount', 10, 1 );
function custom_discount( $cart ){
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Only for 2 items or more
    if( $percentage = get_customer_discount() ){
        $discount = WC()->cart->get_subtotal() * $percentage / 100;

        // Apply discount to 2nd item for non on sale items in cart
        if( $discount > 0 )
            $cart->add_fee( sprintf( __("Discount %s%%"), $percentage), -$discount );
    }
}

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

1353600cookie-checkFügen Sie bedingt einen Rabatt programmatisch zu Woocommerce 3 hinzu

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

Privacy policy