Другой вариант — все остальные роли WordPress, которые обязаны оплатить доставку в размере 5 евро, если общая сумма их корзины составляет 40 евро или меньше.
Я настроил доставку в WooCommerce, я создал два метода бесплатной доставки с минимальной суммой заказа: один в 40 евро, а другой в 90 евро.
Проблема в том, что пользователь с Роль «wholesale_customer», когда он достигает суммы в 40 евро, также включается для этого метода бесплатной доставки, чего не должно происходить, поскольку для этой роли пользователя («wholesale_customer») доставка бесплатна, если покупка превышает минимальную сумму в 90 евро.
Я настроил поставки в WooCommerce следующим образом, создав 2 метода доставки:
- у одного есть «Требуемое минимальное количество» в 90 евро
- у другого указано «Необходимое минимальное количество» — 40 евро
- и у одного стоимость доставки — 0 евро.
Я показываю часть кода, который я использовал, чтобы попытаться сделать то, что мне нужно, поскольку я провел много тестов. Только у меня не было возможности добавить текст, который я упоминаю в презентации для роли «оптовый_клиент».
Показать изображения настройки WooCommerce
Код: Выделить всё
function custom_shipping_methods_visibility( $available_methods ) {
$subtotal = WC()->cart->subtotal;
$user = wp_get_current_user();
$user_roles = $user->roles;
// Check user role and cart subtotal to show/hide shipping methods
if ( in_array( 'wholesale_customer', $user_roles ) && $subtotal subtotal;
// Gets the role of the current user
$user = wp_get_current_user();
$user_roles = $user->roles;
//Check user role and cart subtotal to adjust shipping methods
if ( in_array( 'wholesale_customer', $user_roles ) && $subtotal < 70 ) {
foreach ( $available_methods as $method_id => $method ) {
// Hide the shipping methods if the user is a wholesaler and the subtotal is less than €70
unset( $available_methods[ $method_id ] );
}
// Show a warning message
wc_add_notice( 'Debes alcanzar un mínimo de 70€ en tu carrito para realizar el pedido.', 'error' );
}
return $available_methods;
}
add_filter( 'woocommerce_package_rates', 'custom_shipping_methods', 10, 1 );

Config-2:

Config-3:

Config-4:

Подробнее здесь: https://stackoverflow.com/questions/765 ... tal-amount
Мобильная версия