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.
Ya está disponible la versión 2.2 de Contact Form 7 – Integración con RedSys, y…
El comercio electrónico español, que se encuentra en pleno crecimiento y transformación, vive actualmente un…
Hasta ahora, la integración de Contact Form 7 con RedSys solo sabía cobrar pagos únicos:…
El pago fraccionado de RedSys para WooCommerce lleva un tiempo permitiendo dividir el precio de…
Ya está disponible la versión 1.24 de Contact Form 7 - Integración con RedSys, y…
Hasta ahora, cobrar una suscripción en WooCommerce significaba aceptar una regla muy simple: eliges un…