Добавить пользовательское поле Checkout на основе веса корзины в Woocommerce

На странице оформления заказа я хотел бы добавить настраиваемое поле, если содержимое корзины весит более 1000 кг.

Есть ли способ добавить оператор if (в form-checkout.php?), который получает вес корзины, а затем я могу добавить в поле выбора?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
116
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала прочтите также официальная соответствующая документация для настройки полей оформления заказа или эта документация.

Вот пример, который добавит пользовательское поле выбора оплаты, когда вес корзины превышает 1000 кг (1 тонна) на странице оформления заказа:

add_filter( 'woocommerce_checkout_fields' , 'customizing_checkout_fields', 10, 1 );
function customizing_checkout_fields( $fields ) {

    if ( WC()->cart->get_cart_contents_weight() > 1000 ) {

        // Custom Select field
        $fields['billing']['billing_custom'] = array(
            'type'     => 'select',
            'label'    => __("Cart weight over 1 Ton", "woocommerce"),
            'class'    => array('form-row-wide'),
            'options'  => array(
                ''         => __("Choose an option please…", "woocommerce"),
                'option-1' => __("Option 1", "woocommerce"),
                'option-2' => __("Option 1", "woocommerce"),
                'option-3' => __("Option 1", "woocommerce"),
            ),
            'priority' => '120',
            'required' => true,
        );
    }

    return $fields;
}

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

Идеально, спасибо!

devHensh 30.05.2019 10:10

Другие вопросы по теме