Добавление пользовательских полей в WooCommerce на странице оформления заказа — это отличный способ собрать дополнительную информацию от покупателей. Вы можете добавить текстовые поля, выпадающие списки, чекбоксы и другие элементы формы. Вот подробная инструкция о том, как добавить поле в WooCommerce. Способ 1: Использование плагинов для добавления полей Наиболее простой способ добавить поле — это использовать специальные плагины, которые позволяют управлять полями без программирования. Популярные плагины для добавления полей: Checkout Field Editor for WooCommerce: ? Легкий и удобный инструмент для добавления новых полей на страницу оформления заказа. ? Позволяет добавлять текстовые поля, чекбоксы, выпадающие списки и т.д. WooCommerce Checkout Manager: ? Плагин для управления полями на странице оформления заказа. ? Позволяет добавлять новые поля, изменять обязательность существующих, изменять их порядок и стили. Как добавить поле с помощью плагина: Установите и активируйте плагин Checkout Field Editor for WooCommerce или WooCommerce Checkout Manager. Перейдите в WooCommerce > Checkout Field Editor или в настройки плагина. Нажмите «Добавить поле». Выберите тип поля (текстовое, выпадающий список, чекбокс и т.д.). Настройте название поля, его обязательность и другие параметры. Сохраните изменения. Теперь новое поле будет отображаться на странице оформления заказа. Способ 2: Добавление пользовательского поля с помощью кода Для более гибкой настройки полей вы можете добавить пользовательское поле на страницу оформления заказа с помощью кода. Ниже представлен пример добавления текстового поля. Пример добавления нового текстового поля: Откройте файл functions.php вашей темы или дочерней темы. Добавьте следующий код: // Добавление нового текстового поля на страницу оформления заказа add_action( 'woocommerce_after_order_notes', 'custom_checkout_field' ); function custom_checkout_field( $checkout ) { echo '<div id="custom_checkout_field"><h2>' . __('Дополнительная информация') . '</h2>'; woocommerce_form_field( 'custom_field', array( 'type' => 'text', 'class' => array('form-row-wide'), 'label' => __('Введите ваш комментарий'), 'placeholder' => __('Комментарий к заказу'), ), $checkout->get_value( 'custom_field' )); echo '</div>'; } // Сохранение значения пользовательского поля add_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta' ); function custom_checkout_field_update_order_meta( $order_id ) { if ( ! empty( $_POST['custom_field'] ) ) { update_post_meta( $order_id, 'custom_field', sanitize_text_field( $_POST['custom_field'] ) ); } } // Отображение пользовательского поля в админке add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_custom_field_in_admin_order', 10, 1 ); function display_custom_field_in_admin_order( $order ){ echo '<p><strong>'.__('Комментарий к заказу').':</strong> ' . get_post_meta( $order->get_id(), 'custom_field', true ) . '</p>'; } Описание кода: Добавление поля: Функция woocommerce_form_field добавляет текстовое поле в раздел дополнительных заметок при оформлении заказа. Сохранение поля: Функция woocommerce_checkout_update_order_meta сохраняет введенное значение в мета-данные заказа. Отображение в админке: Значение поля выводится на странице заказа в админ-панели. Способ 3: Добавление поля с кастомным типом Помимо текстовых полей, вы можете добавить и другие типы полей, такие как выпадающие списки, чекбоксы и т.д. Пример добавления выпадающего списка: // Добавление выпадающего списка на страницу оформления заказа add_action( 'woocommerce_after_order_notes', 'custom_checkout_select_field' ); function custom_checkout_select_field( $checkout ) { echo '<div id="custom_checkout_field"><h2>' . __('Выберите вариант доставки') . '</h2>'; $options = array( '' => __( 'Выберите вариант', 'woocommerce' ), 'express' => __( 'Экспресс-доставка', 'woocommerce' ), 'standard' => __( 'Стандартная доставка', 'woocommerce' ), ); woocommerce_form_field( 'custom_select_field', array( 'type' => 'select', 'class' => array( 'form-row-wide' ), 'label' => __( 'Выберите вариант доставки' ), 'options' => $options, ), $checkout->get_value( 'custom_select_field' )); echo '</div>'; } // Сохранение значения поля add_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_select_update_order_meta' ); function custom_checkout_select_update_order_meta( $order_id ) { if ( ! empty( $_POST['custom_select_field'] ) ) { update_post_meta( $order_id, 'custom_select_field', sanitize_text_field( $_POST['custom_select_field'] ) ); } } // Отображение значения выпадающего списка в админке add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_custom_select_field_in_admin_order', 10, 1 ); function display_custom_select_field_in_admin_order( $order ){ echo '<p><strong>'.__('Вариант доставки').':</strong> ' . get_post_meta( $order->get_id(), 'custom_select_field', true ) . '</p>'; } Этот код добавляет выпадающий список с выбором варианта доставки на страницу оформления заказа. Способ 4: Изменение обязательности поля Если вы хотите сделать новое поле обязательным для заполнения, можно указать это при его создании: woocommerce_form_field( 'custom_field', array( 'type' => 'text', 'class' => array('form-row-wide'), 'label' => __('Введите ваш комментарий'), 'placeholder' => __('Комментарий к заказу'), 'required' => true, // Обязательное поле ), $checkout->get_value( 'custom_field' )); Добавление пользовательских полей в WooCommerce на страницу оформления заказа — это полезная функция, которая позволяет собирать дополнительную информацию о заказах. Вы можете использовать плагины для простоты или добавить поле вручную с помощью кода. Выбор зависит от уровня гибкости и специфических требований к функциональности вашего магазина.