MOM'S BASEMENT

Gave til dine WooCommerce kunder

16. december 2016

WooCommerce tips og tricks 5. del:

I forbindelse med lanceringen af en webshop jeg udviklede ville ejeren have, at de første tusind kunder i skulle have en gratis gave. Jeg tænker, at dette kan være en relevant feature for andre og specielt her i julemåneden 🙂

For at implementerer dette skal man først oprette et produkt/gaven i WooCommerce. Herefter skal man lave en funktion der tilføjer gaven hvis der er et produkt i kurven og en funktion der fjerner den hvis kurven er tom. Disse funktioner skal sættes ind functions.php eller i et plugin.

Herunder er koden der tilføjer gaven hvis kurven ikke er tom. Bemærk at værdien i variablen $product_id skal skiftes ud med id’et fra det produkt du vil give kunden.

PHP kode:

function add_gift_to_cart() {
  if ( ! is_admin() ) {
  	//Insert the product id of the gift
    $product_id = 418;
    $found = false;
    //This loop check of if the gidt already exists in the cart
    if ( sizeof( WC()->cart->get_cart()) > 0 ) {
      foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
        $_product = $values['data'];
        //Removes the product and insert it again to make shure it is 
        //always the last product in the card
        if ( $_product->id == $product_id ){
          $prod_unique_id = WC()->cart->generate_cart_id( $product_id );
          unset( WC()->cart->cart_contents[$prod_unique_id] );
          WC()->cart->add_to_cart( $product_id );
          return;
        }
      }
      // if product not found, add it
      WC()->cart->add_to_cart( $product_id );
    }
  }
}
add_action( 'template_redirect', 'add_gift_to_cart' );

Koden der fjerner gaven er stort set den samme.

PHP kode:

function remove_gift_from_cart() {
  if ( ! is_admin() ) {
    //Insert the product id of the gift
    $product_id = 418;
    $found = false;
    //check if the gift is the only product in the cart
    if ( sizeof( WC()->cart->get_cart() ) < 2 ) {
      foreach ( WC()->cart->get_cart() as $cart_item_key => $values ) {
        $_product = $values['data'];
        if ( $_product->id == $product_id ){
          $prod_unique_id = WC()->cart->generate_cart_id( $product_id );
          unset( WC()->cart->cart_contents[$prod_unique_id] );
          return;
        }
      }
    }
  }  
}
add_action( 'template_redirect', 'remove_gift_from_cart' );

Da jeg lavede funktionaliteten tilføjede jeg nogle små justeringer. Jeg fjernede f.eks. muligheden for, at slette gaven fra kurven. Koden jeg præsenterer her er dog den væsentlige del af implementering og har du spørgsmål eller forslag til evt. forbedringer kan du bare skrive en kommentar.


Min side bruger cookies. Ved at bruge siden accepterer du min brug af cookies.
Accepter Læs mere