Tengo una categoría de productos que tienen un precio de $15. Cuando el usuario compre entre 10 y 20 productos de esta categoría, debería recibir un precio con descuento de $10. Cuando el usuario compra más de 20, el precio cambia nuevamente a $5. El usuario no puede tener asignado un rol personalizado (como mayorista). Creé un código vagamente basado en el código LoicTheAztec de otra pregunta y agregué mis propias modificaciones y código. Parece que debería funcionar. No recibo errores pero no funciona.
add_action('woocommerce_before_cart', 'check_product_category_in_cart');
function check_product_category_in_cart() {
// HERE set your product categories in the array (can be IDs, slugs or names)
$categories = array('surfacing-adhesives');
$found = false; // Initializing
$count = 0;
// Loop through cart items
foreach ( WC()->cart->get_cart() as $cart_item ) {
// If product categories is found
if ( has_term( $categories, 'product_cat', $cart_item['product_id'] ) ) {
$count++;
}
}
if (!current_user_can('wholesaler')) {
// Discounts
if ($count > 10 && $count < 20) {
// Drop the per item price
$price = 10;
} else if ($count > 20) {
// Drop the per item price
$price = 5;
} else {
// Did not qualify for volume discount
}
}
}