WooCommerce voor Waaghalzen – 5 gevorderde tips voor WooCommerce (deel 2)

Nog drie tips om WooCommerce zelf aan te passen

WooCommerce voor Waaghalzen

Zoals beloofd, in de serie ‘WooCommerce voor Waaghalzen’ bij deze nog een drietal andere tips hoe je met enkele regels code interessante aanpassingen aan WooCommerce door kunt voeren.

Tip 3: De ‘Doorgaan met winkelen’ knop

Eén van de kleine minpuntjes van WooCommerce is dat het niet standaard een ‘Doorgaan met winkelen’ knop heeft. Wanneer de details van een product hebt bekeken en hebt besloten, dat dit niet is wat je wilt, dan wil je graag terug naar het overzicht van de eerdere zoekopdracht. Natuurlijk. Dat kan makkelijk met de ‘back’ knop van je browser, maar het zal je verbazen (of, indien niet, het verbaasde mij wel) hoeveel mensen die knop niet weten te vinden. Bovendien is de ‘back’ functie op een telefoon of tablet nog beter verstopt.

Wil je de bezoeker van je webwinkel een beetje terwille zijn, dan is het goed om zo’n ’terug’ knop in de pagina op te nemen.

Dit kan in principe met een eenvoudig stukje javascript. Maar het nadeel van deze code is, dat indien je op de vorige pagina een formulier hebt ingevuld (zoals het zoek formulier) zal je browser altijd om bevestiging vragen. Een storende extra handeling dus.

Met onderstaande code kan het allemaal net iets gebruikersvriendelijker.

<?php 
add_action( 'woocommerce_single_product_summary', 'jans_woo_continue_shopping_button', 31 );
 
function jans_woo_continue_shopping_button() {
  if ( wp_get_referer() ) echo '<a class="button continue" href="' . wp_get_referer() . '>Doorgaan met winkelen</a>';
}

Weet je nog? Het stukje ‘jans_woo’  vervang je door je eigen unieke voorvoegsel.

Tip 4 : Algemene voorwaarden voor specifieke producten

Wanneer je business to consumeer werkt, dan heeft je klant in principe 14 dagen de tijd om zich te bedenken, wanneer hij in je webwinkel koopt. Een aantal producten is wettelijk uitgesloten van deze bedenktijd (zoals op maat gemaakte producten, dagverse producten en bepaalde gebruiksartikelen) en een aantal producten zijn uitgesloten mits dit nadrukkelijk en duidelijk wordt vermeld. Zoals bijvoorbeeld downloads. Op het moment, dat je een specifiek product hebt, wat niet voor retouren in aanmerking komt, dan kun -uitsluitend als dat product wordt gekocht- extra voorwaarden in beeld brengen, waarmee de gebruiker ook akkoord zal moeten gaan.

Onderstaande code is een simpel voorbeeld hoe dit kan. Wil je een meer uitgebreide versie hebben, zal je er zelf toch aan moeten ‘knutselen’.

<?php 
add_action('woocommerce_review_order_before_submit', 'jans_woo_add_checkout_tickbox', 9);
   
function jans_woo_add_checkout_tickbox() {
 
// Show Terms 1
$product_id_1 = 999; //Hier vullen we het specifieke product ID in. Heb je veel producten, is dit niet de handigste oplossing.
$product_cart_id_1 = WC()->cart->generate_cart_id( $product_id_1 );
$in_cart_1 = WC()->cart->find_product_in_cart( $product_cart_id_1 );
 
if ( $in_cart_1 ) {
      
?>;
  
<p class="form-row terms wc-terms-and-conditions">
<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">;
<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox 
      input-checkbox" name="terms-1" 
      <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms-1'] ) ), true ); ?>
     id="terms-1"> <span>Ik stem in met de voorwaarden voor <a href="/voorwaarden/product/1" target="_blank">product-1</a></span> 
<span class="required">*</span>;
</label>
<input type="hidden" name="terms-1-field" value="1">
</p>
  
<?php  
}
 
// Show Terms 2
$product_id_2 = 888;  //Zie aantekening bij 'terms 1'
$product_cart_id_2 = WC()->cart->generate_cart_id( $product_id_2 );
$in_cart_2 = WC()->cart->find_product_in_cart( $product_cart_id_2 );
 
if ( $in_cart_2a ) {
      
?>
 
<p class="form-row terms wc-terms-and-conditions">
<label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox">
<input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" 
   name="terms-2" 
<?php checked( apply_filters( 'woocommerce_terms_is_checked_default', 
   isset( $_POST['terms-2'] ) ), true ); ?> id="terms-2"> 
  <span>Ik stem in met de voorwaarden voor <a href="/link/naar/product/2" target="_blank">Product 2</a></span>
  <span class="required">*</span>
</label>
<input type="hidden" name="terms-2-field" value="1">
</p>
  
<?php
 
}
 
}
  
// Show notice if customer does not tick either terms
 
add_action('woocommerce_checkout_process', 'jans_woo_not_approved_terms_1');
add_action('woocommerce_checkout_process', 'jans_woo_not_approved_terms_2');
  
function jans_woo_not_approved_terms_1() {
    if ( ! empty( $_POST['terms-1'] ) && empty( $_POST['terms-1'] ) ) {
        wc_add_notice( __( 'U dient met voorwaarden voor product 1 in te stemmen' ), 'error' );          }
}
 
function jans_woo_not_approved_terms_2() {
    if ( ! empty( $_POST['terms-2'] ) && empty( $_POST['terms-2'] ) ) {
        wc_add_notice( __( 'U dient met voorwaarden voor product 2 in te stemmen' ), 'error' );          }
}

Bovenstaande code heeft aardig wat aanpassingen nodig. Allereerst zal je de product id’s moeten vervangen door de ID’s van de daadwerkelijke producten. Ook de teksten zaal je mogelijk aan willen passen en natuurlijk dien je de urls te vervangen door URL’s op jouw site. Wil je dit ‘makkelijker gemaakt hebben’,  dan zal je het één en ander aan maatwerk uit moeten voeren.

Maar mocht je geinteresseerd zijn geraakt in het zelf maken van plugins, neem dan contact op via het contactformulier. Bij voldoende interesse, ben ik zeker bereid hier een cursus omtrent te organiseren.

Tip 5: Een productvideo tonen in plaats van een product afbeelding

Ok, nu gaan we iets doen, waar ik serieus veel vragen over heb gekregen en iets wat ik regelmatig ‘aanpas’ aan WooCommerce voor mijn klanten. Maar dit is ook een wat groter ‘projectje’ in de code. Dus maak je veiligheidsriemen alvast maar vast en maak in ieder geval eerst een kopie van je installatie.

Want hier laten we in plaats van de productafbeelding een productvideo zien. En daarvoor moeten we nog iets anders doen. Want we willen natuurlijk ook bijhouden per product welke video we willen tonen.

Wanneer ik iets dergelijks voor een klant bouw, dan zorg ik er altijd voor, dat er een keurig, goed beschreven veld in het product voorkomt, waar de klant dit in kan geven. Maar dan komen we eigenlijk al op het gebied van het ontwikkelen van een complete plugin, en dat kunnen we in één blogpost niet doen. Daarom een wat eenvoudiger voorbeeld. Minder gebruikersvriendelijk, maar het werkt wel!

Bovenin het scherm voor je producten vind je een knop ‘Scherminstellingen’. Als je hier op klikt, dan wordt een hele serie aankruisvakjes zichtbaar. Als ‘Aangepaste velden’ niet is aangevinkt doe je dat.

Onder het product is nu ergens een box bijgekomen voor ‘Aangepaste velden’. Hier kun je veld-namen en veld waarden ingeven. Bij geven hier bijvoorbeeld een veldnaam ‘video_code’ in en een veld waarde met de YouTube url van onze video.

In deze eerste stap, hebben we dus verteld, dat we bij een bepaald product een video willen hebben. Maar dat is nog iets anders, dan het ook zichtbaar maken. Dat doen we in de volgende stap:

<?php 
add_action( 'woocommerce_before_single_product', 'jans_woo_show_video_not_image' );
 
function jans_woo_show_video_not_image() {
   global $post;
 
   // Do this for product with video url only
   if ( get_meta_data('product',$post->ID,'video_code',true ) {
 
      remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_images', 20 );
      remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
      add_action( 'woocommerce_before_single_product_summary', 'jans_woo_show_product_video', 20 );
 
   }
 
}
 
function jans_woo_show_product_video() {
   global $post;
   echo '<div class="woocommerce-product-gallery">';
 
// get video embed HTML from YouTube 
   echo '<iframe width="560" height="315" src="' . get_metadata('product',$post->ID,'video_code', true) . '?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>';
 
   echo '</div>';
}

Ik hoop, dat je met bovenstaand voorbeeld uit de voeten kunt.

Mocht je overigens niet in de scherminstellingen de optie ‘Aangepaste velden’  kunnen vinden, dan is het mogelijk dat een andere plugin, zoals bijvoorbeeld ‘Advanced Custom Fields’  deze mogelijkheid heeft uitgeschakeld. In dat geval zal hetgeen hierboven besproken is niet werken, en zal er wat serieuzer geprogrammeerd moeten worden. Dat valt helaas buiten het bestek van dit blogartikel.

Binnenkort

Natuurlijk schrijf ik niet iedere week, ik werk vooruit. En hieronder zie je alvast een aantal artikelen die je binnenkort mag verwachten. Mis deze niet! Schrijf je onder aan de pagina in voor de WordXPression nieuwsbrief, zodat jij altijd op de hoogte blijft. De blogartikelen met een tijdsaanduiding, die komen volgens planning, de artikelen met 'binnenkort' er achter zijn nog bezig geschreven te worden.

Nog niet uitgelezen?

Vind je dit artikel interessant? Mooi! Want ik heb nog veel meer te bieden. Op deze site vind je letterlijke honderden artikelen over WordPress, marketing, e-commers, e-learning en nog veel meer onderwerpen. Op zoek naar meer informatie? Kies één van de trefwoorden hieronder of tik een zoekopdracht in.

Meest populaire blogposts
Wees eens aardig en deel dit met je vrienden
Enkele trefwoorden om vergelijkbare posts te vinden:

Word je website de baas. Neem vandaag nog contact op!

Contact Informatie

Helaas is telefoonspam een serieus probleem geworden. Omdat ik dagelijks tientallen ‘spam’ en ‘scam’ telefoontjes ontving, heb ik mijn telefoonnummer van de site verwijderd. 

Wanneer je echter het formulier hiernaast invult, en aangeeft dat je per telefoon contact op wilt nemen, maak ik graag een belafspraak met je op een moment wat ons beiden past. En krijg je gewoon het telefoonnummer van WordXPression, zodat je ieder moment kan bellen.

WordXPression 

Aardoliestraat 14-I 7553GT Hengelo

KVK : 75580152 

Stuur een bericht

Mocht je interesse hebben in een nieuwe WordPress of WooCommerce website, verzoek ik je niet onderstaand formulier in te vullen, maar gebruik te maken van het intake/offerte formulier

Deze post rapporteren

Wanneer deze post niet meer relevant is of verouderde informatie bevat, zou ik het op prijs stellen wanneer je dit door wilt geven., zodat ik dit eventueel bij kan werken. De persoonlijke gegevens die je hieronder invult worden alleen gebruikt om de mail te versturen en zal niet voor marketingdoeleinden worden gebruikt.

WordXPression is WP Digital Marketing Geworden

In oktober 2010 begon ik met WordXPression. De naam zei eigenlijk precies wat ik toen deed: dienstverlening rond WordPress. Websites bouwen, aanpassen, onderhouden en later ook steeds meer maatwerk ontwikkelen.

Maar WordXPression is in de loop van de jaren nooit alleen WordPress geweest. Voor klanten voerde ik ook andere werkzaamheden uit. Soms kwamen die rechtstreeks voort uit een WordPress-project, bijvoorbeeld wanneer een website gekoppeld moest worden aan een ander systeem. Soms lag de oorsprong heel ergens anders: in mijn jarenlange ervaring als system integrator uit de periode voordat ik met WordXPression begon.

Daarom besloot ik in 2017 de officiële naam van mijn bedrijf te veranderen in WP Digital Marketing. WordXPression bleef daarbij bestaan als handelsnaam en bleef ook de naam waaronder de website en het grootste deel van mijn dienstverlening naar buiten traden.

De afgelopen jaren is die verhouding steeds verder veranderd. Naast WordPress zijn vooral Laravel, maatwerkapplicaties en systeemintegraties een steeds belangrijker deel van mijn werkzaamheden geworden. WordPress blijft belangrijk, maar het is niet langer een goede paraplu voor alles wat ik doe.

Daarom wordt het tijd om de naam die al sinds 2017 boven het bedrijf staat, ook daadwerkelijk centraal te stellen.

Vanaf 1 oktober gaat WordXPression verder als WP Digital Marketing.