PHP Code Artikel ab Bestellwert X als Bonus in Warenkorb

Aktuell arbeiten wir noch im Hintergrund an der Foren-Struktur, daher kann es vorkommen das noch nicht alles zu 100% passt. Sowohl die Foren-Bereiche, Labels, Berechtigungen, Icons und das verschieben der Themen in die entsprechende Bereiche wird noch alles durchgeführt, sobald das abgeschlossen ist entfernen wir diesen Hinweis auch.
  • Dieser Code funktioniert nun und legt ab einem festgelegten Bestellwert einen wählbaren Artikel in den Warenkorb (ich habe den Artikel kopiert, die Kopie nicht sichbar im Shop gemacht und den Warenwert auf 0 gesetzt, so dass es ein kostenloser Bonus ist. Hier der Code und danach der noch offene Fehler:

    * goes in theme functions.php or a custom plugin
    **/
    // add item to cart on visit depending on cart total value
    add_action( 'init', 'add_product_to_cart' );
    function add_product_to_cart() {
    if ( ! is_admin() ) {
    global $woocommerce;
    $product_id = 479; [COLOR=#ff0000]EURE WOOCOMMERCE ARTIKEL ID[/COLOR]
    $found = false;
    $cart_total > 200; [COLOR=#ff0000]MINDESTBESTELLWERT[/COLOR]
    if( $woocommerce->cart->total >= $cart_total ) {
    //check if product already in cart
    if ( sizeof( $woocommerce->cart->get_cart() ) > 200 ) {
    foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
    $_product = $values['data'];
    if ( $_product->id == $product_id )
    $found = true;
    }
    // if product not found, add it
    if ( ! $found ){
    $woocommerce->cart->add_to_cart( $product_id );
    }} else {
    // if no products in cart, add it
    $woocommerce->cart->add_to_cart( $product_id );
    }
    }
    }
    }

    Jetzt zum Fehler: Wenn ich Artikel in den Warenkorb lege und auf 200 EUR komme, wird der Bonus Artikel in den Warenkorb gelegt. Wenn ich dann aber ein paar Artikel lösche und unter die 200 EUR rutsche, wird dieser nicht wieder automatisch gelöscht. Kann hier jemand den Code dementsprechend erweitern?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    Wenn du Fragen hast, kannst du dich gerne jederzeit an @Maximilian Rupp wenden

    Hinweis: folgt noch

  • Das Script legt dir aber _immer_ ein Produkt in den Wartenkorb.

    PHP
    } else { 
     // if no products in cart, add it
     $woocommerce->cart->add_to_cart( $product_id );
     }

    würde für den Anfang löschen.

    und was soll dies werden?

    PHP
    $cart_total > 200; MINDESTBESTELLWERT

    verwende evtl.


    PHP
    $cart_total = 200; // MINDESTBESTELLWERT


    was ist dies?

    PHP
    if( $woocommerce->cart->total >= $cart_total ) {
    //check if product already in cart
    if ( sizeof( $woocommerce->cart->get_cart() ) > 200 ) {


    verwende evtl.

    PHP
    if( $woocommerce->cart->total >= $cart_total ) {
    //check if product already in cart


    PHP
    foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
         $_product = $values['data'];
         if ( $_product->id == $product_id )
         $found = true;
    }


    ist nicht cart_contents gemeint?

    PHP
    if ( is_array( $woocommerce->cart->cart_contents() ) ) {
       foreach ( $woocommerce->cart->cart_contents() as $cart_item_key => $values ) {
           $_product = $values['data'];
           if ( $_product->id == $product_id )
           $found = true;
       }
    }


    Jetzt zu deiner eigentlich Frage. mit der $product_id kannst du leider kein Produkt aus dem Warenkorb mehr löschen.

    du benötigst für das Löschen die $cart_item_key


    Wenn du $found = true; und

    Mit offenen Augen träumen

  • Ich wäre auch interessiert an dieser Lösung, da ich derzeit das gleiche Problem habe!
    Bin für Eure Tipps dankbar.
    Vielen Dank schon im Voraus!

    Liebe Gruesse, Pepi

  • ich mach hier mal zu

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!