Prijzen verbergen voor niet ingelogde gebruikers

Hoe verberg je de WooCommerce prijzen voor niet ingelogde gebruikers?

Wil je direct een mail ontvangen wanneer nieuwe snippets zijn toegevoegd?

Vul dan onderstaand formulier in en je krijgt direct na het toevoegen van nieuwe snippets een email. Zo blijf je altijd bij!

Meestal wil je in je webshop de prijzen tonen, omdat je natuurlijk hoopt, dat mensen mede door de prijs bij je willen kopen.

Wanneer je echter een webshop hebt, die aan een exclusief publiek levert, dan wil je die prijzen juist niet tonen.

Je kan hier bijvoorbeeld denken aan groothandels, of wanneer je jouw producten alleen levert aan leden van een bepaalde organisatie.

Configuratie

Het eerste wat je dan natuurlijk wilt is het aanmelden van nieuwe klanten beperken. En daarvoor hebben we geen plugins nodig, maar kijken we eerst naar de instellingen van WooCommerce zelf. En daarvoor gaan we naar WooCommerce->Instellingen->Accounts en Privacy

| Prijzen verbergen voor niet ingelogde gebruikers

Hierboven zie je de instellingen, zoals ik ze zou aanbevelen. Maar dit is duidelijk niet wat je in moet vullen.

Wat wel goed is om te voorkomen, dat mensen een account aan kunnen maken is :

Gastenbestelling

  • Sta klanten toe een bestelling te plaatsen zonder account : geen check
  • Klanten toestaan in te loggen op een bestaand account tijdens het afrekenen : check

Account aanmaken

  • Sta klanten toe een account te maken tijdens het afrekenen : geen check
  • St klanten toen een account te maken op de ‘Mijn Account’ pagina : geen check
  • Bij het aanmaken van een account wordt automatisch een gebruikersnaam voor de klant genegereerd… etc… : maakt niet uit voor de functionaliteit, persoonlijk advies : check.
  • Stuur de nieuwe gebruiker bij het aanmelden van het account een link om een wachtwoord in te stellen : maakt niet uit voor de functionaliteit, persoonlijk advies : check.

Nu kan niemand meer ‘zomaar’ een account aanmaken. Dat zal je eerst zelf moeten doen. Hier zijn natuurlijk ook alternatieven voor, en die zal ik later waarschijnlijk ook nog bespreken.

Maar niet ingelogde gebruikers mogen geen prijzen zien en geen producten bestellen. Hoe doen we dat?

De code is eigenlijk vrij eenvoudig. Nou ja, terwijl ik dit type denk ik net, dat ik dit toch wel heel vaak schrijf. Als het echt eenvoudig zou zijn, zou je deze site niet nodig hebben. Maar aan de andere kant, het is ook geen ‘rocket science’.

<?php
add_filter( 'woocommerce_get_price_html', 'wxp_logged_in_only', 100, 2 );
 
function wxp_logged_in_only( $price, $product ) {
   if ( ! is_user_logged_in() ) { 
      $price = '<div><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Inloggen voor de prijs</a></div>';
      remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
      remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
   }
   return $price;
}

Als het geen kinderarbeid zou zijn, zou ik zeggen ‘kind kan de was doen’.

Het enige wat je hier doet, is -op het moment dat de gebruiker niet is ingelogd- in plaats van de prijs de tekst ‘inloggen voor de prijs’ te laten zien.

En om te voorkomen, dat iemand toch nog stiekem het product -zonder de prijs te weten- in de winkelwagen doet, haal je de knoppen ‘add to cart’ op alle pagina’s ook weg.

Is dit 100% waterdicht?

Nee. Slechts 99,99%. Want je kan nog steeds ‘stiekem’ de prijs laten tonen, wanneer je een ‘add to cart’ URL intikt in de browser bar. Maar zo’n add to cart URL moet de product ID van het product bevatten. En dat is niet zo makkelijk boven water te halen, tenzij je een toch wel heel verouderde URL structuur gebruikt.

Laten we eens kijken naar ‘Instellingen->Permalinks’

| Prijzen verbergen voor niet ingelogde gebruikers

De twee instellingen die je hier moet vermijden zijn ‘Eenvoudig’ en ‘Numeriek’, omdat hierbij de ID van het product naar boven komt, en dit gebruikt kan worden om alsnog de prijzen te tonen.

Maar dit zijn ook de slechtste instellingen voor SEO, het is dus niet waarschijnlijk dat je deze instellingen sowieso gebruikt.

Codesnippet verbeteren

Het doel van deze code snippet is een probleem op te lossen in een specifieke situatie. Daarom zie je regelmatig voorbeelden waar je specifiek tekst moet aanpassen om te krijgen wat je wilt.Ā 

Wil jij leren hoe je complete plugins zelf kunt programmeren inclusief ‘admin’ schermen voor het instellen en de output in de gewenste taal, dan is misschien de cursus ‘Introductiecursus Plugins Programmeren‘ iets voor jou.Ā 

Wil je als ‘full stack’ WordPress programmeur aan de gang gaan, dan biedt WordXPression ook een compleet traject ‘WordPress Developer‘ aan. Dit is een traject wat deels online, deels klassikaal wordt gegeven.

WordPress Developer worden?

Wil je leren hoe je zelf plugins, thema's, shortcodes, widgets, Gutenberg blocks en meer kan maken?
Schrijf je dan in voor de cursus WordPress Developer.

Meer snippets

In WooCommerce de prijs psychologisch aantrekkelijk tonen
Enkele handige code snippets om je productprijs te formatteren.
Custom fields in Elementor gebruiken
Elementor is natuurlijk een prachtige page- en theme builder, maar is toch een aantal kleine uitdagingen...
WooCommerce tabbladen onder elkaar zetten
Heb je wel eens een grote webshop gezien met product tabs? Precies. En daarom willen wij onze WooCommerce...
Een shortcode om de winkelwagen inhoud te tonen
Soms wil je de inhoud van een winkelwagen laten zien. Met behulp van deze shortcode kan je de inhoud...
De webwinkel is op zondag gesloten
Het voordeel van een webshop is dat hij 24/7 open is. Maar wat nu, wanneer je op zon- en feestdagen principieel...
Een 'terug' knop voor je webpagina
Stel, je bezoeker is op een pagina en je wilt dat die bezoeker eenvoudig terug kan gaan naar de voorgaande...

Veiligheid voor alles!

Met betrekking tot de code die je hier aantreft een aantal waarschuwingen, voordat je deze code snippets toepast op je eigen website.

  1. Voer de code nooit direct uit op je eigen website, maar probeer deze eerst op een staging omgeving of een locale kopie van je website.Ā 
  2. Voor je de geteste code installeert op je website, maak eerst een back up van je website.
  3. Zorg altijd voor alle zekerheid, dat je voor je een aanpassing live zet, je ook de FTP gegevens van je website bij de hand hebt.Ā Ā 
Ā 
Voel je je onvoldoende vertrouwd met het toepassen van een dergelijke code snippet, bedenk dat je dit ook door een professional kan laten doen. De WordXPression support strippenkaart is een voordelige manier om dit soort aanpassingen teĀ laten doen.
Heeft dit artikel je geholpen je probleem op te lossen?
Deel het met je vrienden via je favoriete social media.

Heb je vragen bij, of opmerkingen over deze code snippet, stel deze bij de commentaren hieronder.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

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

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.