Nano Hash - криптовалюты, майнинг, программирование

Калькулятор доставки корзины WooCommerce ограничен только определенными состояниями

Я использую woocommerce. На странице корзины есть калькулятор доставки. Я хочу установить собственное состояние в раскрывающемся поле штат / страна. Я хочу, чтобы он устанавливался автоматически, когда кто-то заходит на страницу корзины. Проверить это фото

Я нашел этот крючок и думаю, что его можно использовать здесь, но я не знаю, как его использовать

function custom_woocommerce_calculated_shipping(){ 
    // Do something here
} 

add_action('woocommerce_calculated_shipping', 'custom_woocommerce_calculated_shipping');

  • Мы будем очень признательны за некоторые отзывы о приведенном ниже ответе. 08.02.2021

Ответы:


1

Ловушка woocommerce_calculated_shipping не будет полезна для определения (ограничения) определенных состояний для конкретной страны.

Поскольку штаты Объединенных Арабских Эмиратов (AE) не определены в WooCommerce, вам необходимо:

  1. установите поле состояния для страны AE как обязательное раскрывающееся поле,
  2. определить все состояния для страны AE в массиве пар кодов состояний и имен меток состояний (осторожно, поскольку коды штатов должны быть западными буквами в верхнем регистре).

Код:

// Define all states For "AE" (United Arab Emirates)
add_filter( 'woocommerce_states', 'custom_uae_states', 10, 1 );
add_filter( 'woocommerce_countries_allowed_country_states', 'custom_uae_states', 10, 1 );
function custom_uae_states( $countries_states ) {
    $text_domain = "text_domain"; // Set your theme text domain for translations
    
    // Below define your array of state codes and state label names pairs (one state per line)
    $countries_states['AE'] = array(
        'DUB' => __("Dubai", $text_domain),
        'SN2' => __("State name 2", $text_domain),
        'SN3' => __("State name 3", $text_domain),
        'SN4' => __("State name 4", $text_domain),
        'SN5' => __("State name 5", $text_domain),
    );

    return $countries_states;
}

// Define state field For "AE" (United Arab Emirates) as a mandatory dropdown
add_filter( 'woocommerce_get_country_locale', 'custom_uae_country_locale_base', 10, 1 );
function custom_uae_country_locale_base( $locale ) {
    $text_domain = "text_domain"; // Set your theme text domain for translations

    $locale['AE']['state']['required'] = true;
    $locale['AE']['state']['type'] = 'state';
    $locale['AE']['state']['placeholder'] = __("Select a state", $text_domain);

    return $locale;
}

Код находится в файле functions.php активной дочерней темы (или активной темы). Проверено и работает.

Тогда на калькуляторе доставки у вас будет:

введите описание изображения здесь

А также на странице оформления заказа (и в разделе Моя учетная запись ›Изменить адреса) для выбранной страны Объединенных Арабских Эмиратов (AE)

07.02.2021
  • Привет loic, спасибо за тяжелую работу, но мне нужно, чтобы эти поля были автоматически настроены, когда я перейду на страницу корзины, чтобы не было калькулятора доставки и не нужно было нажимать на обновление, эти поля (страна, город, штат ) будет автоматически устанавливаться любым значением, например abc, и не нужно нажимать на обновление, когда я захожу в корзину, оно должно быть автоматически применено 09.02.2021
  • @EchoAsad Этот ответ отвечает на ваш первоначальный вопрос ... Так что это не то, что вы задаете в своем вопросе, и в этом случае вам вообще не следует отображать калькулятор доставки ... Какие значения требуются и для каких полей? 09.02.2021
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..