WooCommerce: Laat prijzen alleen zien aan ingelogde gebruikers.

Soms wil je een B2B webshop, een webshop dus die enkel de ingelogde gebruikers de prijzen laat zien en de mogelijkheid zou geven om te bestellen. Met een kleine stukje code kan dat perfect.

beweeg de slider om het resultaat te zien.

Concreet komt het er op neer dat je de knoppen om een product toe te voegen aan het winkel wagentje alleen laat zien aan ingelogde gebruikers, ook moet de prijs verborgen zijn voor niet ingelogde gebruikers. Het enige wat je moet doen, is de volgende code in je functions.php plakken.

Letop: Je thema kan soms standaard functies overschrijven daarom kan de code some niet goed werken. Vraag mij advies voor aangepaste code.

/**
 * @snippet       Verberg prijzen en add to cart knoppen voor niet ingelogde gebruikers
 * @author        Peter Kuipers, WPMagazine.be
 * @testedwith    WP 5.6.1 WooCommerce 4.9.2
 * @help          https://wpwebzine.com/contact
 */
  
add_action( 'init', 'wpm_hide_price_add_cart_not_logged_in' );
  
function wpm_hide_price_add_cart_not_logged_in() {   
   if ( ! is_user_logged_in() ) {      
      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 );
      remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
      remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );   
      add_action( 'woocommerce_single_product_summary', 'wpm_print_login_to_see', 31 );
      add_action( 'woocommerce_after_shop_loop_item', 'wpm_print_login_to_see', 11 );
   }
}
  
function wpm_print_login_to_see() {
   echo '<a href="' . get_permalink(wc_get_page_id('myaccount')) . '">' . __('Login to see prices', 'theme_name') . '</a>';
}

Waar moet deze snippet geplaatst worden.

Deze snippets plaats je onderaan de functions.php van je childtheme (verwijder de ”?>” als dat er staat) CSS, plaat je altijd in de file style.css van je childtheme let op maak altijd een kopie van de originele file (back-up, back-up,back-up), ben je niet zeker dan kan je ons altijd om hulp vragen !

Werkt deze code nog?


We doen onze uiterste best om alle code van tijd tot tijd te controleren, maar helaas kunnen we niet altijd garanderen dat het bij u werkt, dat is afhankelijk van vele zaken. Laat het ons daarom in de reacties weten als code niet meer werkt (liefst met een screenshot). Wij testen onze code op https://examplesite.be met verzorgt door Kyzoe.be en op PHP versie 7.4 met het hello theme van Elementor.

Comments

  • No comments yet.
  • Add a comment

    Schrijf je in en mis niets meer.

    Krijg wekelijks op donderdagmorgen een overzicht van de laatste posts op WPMagazine.be, een nieuwsbrief boordevol tips tricks, en onze laatste artiekelen. Zo ben je altijd op de hoogte.