WooCommerce tips og tricks 1. del:
I forbindelse med en webshop jeg lavede var et krav, at nogle kunder skulle have muligheden for, at købe produkter og efterfølgende få tilsendt en regning.
Måden at lave denne funktionalitet på er først, at aktiverer alle de betalingmetoder der skal være til rådighed i WooCommerce. Herefter laver man en user role man kan tildele de kunder der skal have den ekstra betalingsmetode tilgængelig.
Der findes både plugins der gør det nemt at administrere user roles og en lang række tutorials til hvordan man koder det selv, så dette vil jeg ikke gå ind i.
Når man har aktiveret betalingsmetoderne og lavet rollen skal man i functions.php (eller i et plugin) bruge et WooCommerce filter der filtrerer de betalingsmetoder man har aktiveret. Med et “if” tjek fjerner man så den givne betalingsmetode for alle user roles undtagen den der skal have betalingsmetoden tilgængelig.
I nedenstående kode fjerner vi f.eks. Cash on delivery for alle roller på nær ”Very Special Customers”.
PHP kode:
//Filters the activated payment methods. add_filter( 'woocommerce_available_payment_gateways', 'filter_gateways', 1); //Unset cash on delivery (cod) for all user roles except very special customers. function filter_gateways( $gateways ){ $user = wp_get_current_user(); if ( !in_array( 'very_special_customer', (array) $user->roles ) ) { unset($gateways['cod']); } return $gateways; }