В WooCommerce стандартная форма оформления заказа включает базовые поля, необходимые для доставки и оплаты. Однако иногда возникает необходимость добавить дополнительные поля, например, поле для комментария к заказу. Это полезно, если вы хотите получать от клиентов дополнительные инструкции или пожелания к заказу.
Почему важно добавить поле комментария к заказу
Дополнительное поле для комментария помогает улучшить коммуникацию с клиентами. Вы сможете получать важную информацию, которую не всегда удобно передавать по телефону или в письмах. Например, клиент может указать особые требования к упаковке, время доставки или дополнительные пожелания.
Кроме того, наличие такого поля позволяет автоматизировать обработку заказов, если вы интегрируете эти данные с внутренними системами или плагинами управления заказами.
Добавление пользовательского поля комментария в форму заказа WooCommerce
Для добавления нового поля в форму оформления заказа используйте хук woocommerce_checkout_fields. В нашем случае мы добавим поле textarea для комментария с названием wporders_order_comment.
add_filter('woocommerce_checkout_fields', 'wporders_add_order_comment_field');
function wporders_add_order_comment_field($fields) {
$fields['order']['wporders_order_comment'] = array(
'type' => 'textarea',
'label' => __('Комментарий к заказу', 'woocommerce'),
'placeholder' => __('Введите ваши пожелания к заказу', 'woocommerce'),
'required' => false,
'class' => array('form-row-wide'),
'priority' => 120,
);
return $fields;
}Этот код добавит новое поле в секцию заказа под стандартными полями. Параметр priority определяет порядок вывода поля.
Сохранение значения пользовательского поля в метаданные заказа
Чтобы сохранить введенный комментарий, нужно использовать хук woocommerce_checkout_update_order_meta. Это позволит сохранить данные в метах заказа и потом отображать их в админке и в письмах.
add_action('woocommerce_checkout_update_order_meta', 'wporders_save_order_comment_field');
function wporders_save_order_comment_field($order_id) {
if (!empty($_POST['wporders_order_comment'])) {
update_post_meta($order_id, '_wporders_order_comment', sanitize_textarea_field($_POST['wporders_order_comment']));
}
}Отображение комментария в админке WooCommerce
Чтобы видеть комментарии клиентов при просмотре заказа в админке, добавим вывод мета-поля в блок информации о заказе. Для этого используем хук woocommerce_admin_order_data_after_billing_address.
add_action('woocommerce_admin_order_data_after_billing_address', 'wporders_display_order_comment_admin', 10, 1);
function wporders_display_order_comment_admin($order) {
$comment = get_post_meta($order->get_id(), '_wporders_order_comment', true);
if ($comment) {
echo '<p><strong>Комментарий к заказу:</strong> ' . esc_html($comment) . '</p>';
}
}Вывод комментария в письмах с заказом
Для отображения комментария в email уведомлениях подключимся к фильтру woocommerce_email_order_meta_fields. Это позволит добавить поле в таблицу с мета-данными заказа.
add_filter('woocommerce_email_order_meta_fields', 'wporders_add_order_comment_to_email', 10, 3);
function wporders_add_order_comment_to_email($fields, $sent_to_admin, $order) {
$comment = get_post_meta($order->get_id(), '_wporders_order_comment', true);
if ($comment) {
$fields['wporders_order_comment'] = array(
'label' => __('Комментарий к заказу'),
'value' => $comment,
);
}
return $fields;
}Дополнительные рекомендации и плагины для расширения функциональности
Если вы хотите более гибко управлять дополнительными полями, можно использовать плагины, такие как Clearfy Pro, который расширяет возможности WooCommerce по настройке полей и оптимизации оформления заказа.
Также полезен плагин WPRemark для улучшения работы с отзывами и комментариями, что может быть полезно при обработке заказов.
Тестирование и отладка
После добавления кода обязательно проверьте, что поле корректно выводится на странице оформления заказа. Попробуйте оформить тестовый заказ с комментариями, убедитесь, что данные сохраняются и отображаются в админке и в письмах.
Если поле не отображается, проверьте, нет ли конфликтов с активными темами или плагинами. Для отладки используйте режим WP_DEBUG и инструменты разработчика браузера.
Итог
Добавление поля комментария к заказу — простой способ улучшить сбор информации от клиентов и повысить удобство работы с заказами в WooCommerce. Используйте предложенный код, чтобы быстро внедрить эту функциональность на вашем сайте wporders.ru и получать больше полезных данных с каждого заказа.