Обновление (для Аргентины и Колумбии)
Я пересмотрел ваш код и заставил его работать только для Колумбии с минимальным весом 20 кг. Вам нужно будет проверить единицу измерения веса: « кг » (в килограммах).
Код:
add_action( 'woocommerce_check_cart_items', 'checkout_required_min_weight_country_based' );
function checkout_required_min_weight_country_based() {
// Only on Cart or Checkout pages
if( ! ( is_cart() || is_checkout() ) ) return;
// Get the shipping country
$country = WC()->session->get('customer')['shipping_country'];
if( empty($country) ){
$country = WC()->session->get('customer')['billing_country'];
}
// For Colombia and Argentina shipping countries
if( in_array( $country, array('CO', 'AR') ) ){
// HERE Set the minimum weight
$minimum_weight = 20; // 20 kg
// Get the Cart's content total weight
$total_weight = WC()->cart->get_cart_contents_weight();
// If total weight is lower than minimum, we avoid checkout and display an error notice
if( $total_weight < $minimum_weight ) {
// Display an dynamic error notice
wc_add_notice( sprintf(
'<strong>A Minimum Weight of %s is required before checking out.</strong>'
. '<br />Current cart weight: %s',
wc_format_weight($minimum_weight),
wc_format_weight($total_weight)
), 'error' );
}
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Когда Колумбия является обнаруженной страной (или определенной страной), вы получите что-то вроде:
Один и тот же код для всех стран:
add_action( 'woocommerce_check_cart_items', 'checkout_required_min_weight' );
function checkout_required_min_weight() {
// Only on Cart or Checkout pages
if( ! ( is_cart() || is_checkout() ) ) return;
// HERE Set the minimum weight
$minimum_weight = 20; // 20 kg
// Get the Cart's content total weight
$total_weight = WC()->cart->get_cart_contents_weight();
// If total weight is lower than minimum, we avoid checkout and display an error notice
if( $total_weight < $minimum_weight ) {
// Display an dynamic error notice
wc_add_notice( sprintf(
'<strong>A Minimum Weight of %s is required before checking out.</strong>'
. '<br />Current cart weight: %s',
wc_format_weight($minimum_weight),
wc_format_weight($total_weight)
), 'error' );
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.