Методы доставки WooCommerce в зависимости от ролей пользователей и промежуточной суммы.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Методы доставки WooCommerce в зависимости от ролей пользователей и промежуточной суммы.

Сообщение Anonymous »

Мне нужно добавить два разных тарифа на доставку, в зависимости от роли пользователя, совершающего покупку. У меня есть роль «оптовый_клиент», и я не должен оплачивать расходы по доставке. Однако покупку необходимо предотвратить и добавить сообщение при оформлении заказа, если промежуточная сумма корзины равна или меньше 90 евро. (помните, что вы должны достичь суммы в 90 евро)
Другой вариант — все остальные роли WordPress, которые обязаны оплатить доставку в размере 5 евро, если общая сумма их корзины составляет 40 евро или меньше.
Я настроил доставку в WooCommerce, я создал два метода бесплатной доставки с минимальной суммой заказа: один в 40 евро, а другой в 90 евро.
Проблема в том, что пользователь с Роль «wholesale_customer», когда он достигает суммы в 40 евро, также включается для этого метода бесплатной доставки, чего не должно происходить, поскольку для этой роли пользователя («wholesale_customer») доставка бесплатна, если покупка превышает минимальную сумму в 90 евро.
Я настроил поставки в WooCommerce следующим образом, создав 2 метода доставки:
- у одного есть «Требуемое минимальное количество» в 90 евро
  • у другого указано «Необходимое минимальное количество» — 40 евро
  • и у одного стоимость доставки — 0 евро.
Я пытался добавить следующую функцию, чтобы получить то, что мне нужно, но все способы доставки всегда включены, поэтому метод розничной доставки «Минимум» 40 евро за бесплатную доставку», также активируется для пользователя с ролью Wholesale_customer. Этого не должно происходить, поскольку пользователи с этой ролью получат преимущества, которые им не принадлежат.
Я показываю часть кода, который я использовал, чтобы попытаться сделать то, что мне нужно, поскольку я провел много тестов. Только у меня не было возможности добавить текст, который я упоминаю в презентации для роли «оптовый_клиент».
Показать изображения настройки 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-1
Изображение

Config-2:
Изображение

Config-3:
Изображение

Config-4:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/765 ... tal-amount
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»