Cuando estamos desarrollando una tienda online es muy frecuente que el cliente nos pida: quiero que los pedidos gratuitos, lo sean a partir de una cantidad establecida del carrito. Hasta ahí es normal. Pero a veces también incluyen: esa cantidad variará en base a si es un cliente normal o un mayorista.
Así que bueno, la cosa se complica un poco y no se puede hacer a base de interfaz gráfica. Seguro que hay algún plugin por ahí para hacerlo, pero francamente, somos enemigos de usar plugins para esas tareas tan concretas. No tiene sentido cargar tu sistema con una cantidad tan enorme de código extra para resolver un problema que puedes resolver con una función sencilla.
Os dejo el tip de código, para que le echéis un vistazo por si podéis aprovecharlo. Si tenéis dudas, ya sabéis, sólo preguntad.
add_filter( 'woocommerce_shipping_free_shipping_is_available', 'cod_woocommerce_shipping_free_shipping_is_available', 9999, 3 );
function cod_woocommerce_shipping_free_shipping_is_available( $is_available, $package, $shipping_method ){
$rol_actual = cod_get_role_current_user();
switch ( $rol_actual ) {
case 'mayorista':
$min_amount = 300;
break;
default:
$min_amount = 100;
break;
}
$total = WC()->cart->get_displayed_subtotal();
$has_met_min_amount = false;
if ( WC()->cart->display_prices_including_tax() ) {
$total = round( $total - ( WC()->cart->get_discount_total() + WC()->cart->get_discount_tax() ), wc_get_price_decimals() );
} else {
$total = round( $total - WC()->cart->get_discount_total(), wc_get_price_decimals() );
}
if ( $total >= $min_amount ) {
$has_met_min_amount = true;
}
return $has_met_min_amount;
} Así que os comento rápidamente el código:
Tan sencillo como práctico, mañana os dejo el código de cómo obtener el rol de un usuario, con la función esa que indico ahí: cod_get_role_current_user().Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.
Por qué falla Bizum WooCommerce: detecta errores de credenciales, firma, entorno y pedidos para recuperar…
Elige un plugin gratuito Redsys WordPress con criterio: compatibilidad, seguridad, configuración bancaria y límites para…
¿Qué necesito para activar CECA Online? Revisa contrato bancario, datos del terminal, seguridad, pruebas y…
Aprende a elegir una pasarela para suscripciones en WordPress: revisa recurrencia, compatibilidad, seguridad y soporte…
Elige un plugin Bizum WordPress compatible con tu flujo de venta, configura la pasarela bancaria…
Aprende cómo aceptar CECA en reservas WordPress, configurar pagos seguros y confirmar cada reserva sin…