Промышленные поля (custom industrial fields) в WordPress — это мощный способ расширения возможностей стандартных форм регистрации, обратной связи или любых других форм, которые вы хотите добавить на сайт. В этой статье мы подробно рассмотрим, как создавать и использовать такие поля, чтобы настраивать формы под специфические требования бизнеса или проекта.
Что такое промышленные поля и зачем они нужны в WordPress
Промышленные поля — это разновидность пользовательских мета-полей, которые используются для хранения специфической информации, не предусмотренной стандартным набором WordPress. Например, если вы собираете заявки, и вам нужно добавить в форму поле "Номер заказа", "Код клиента" или "Тип оборудования", то именно промышленные поля позволят это сделать без хака ядра.
Использование таких полей позволяет:
- Собрать более точную и релевантную информацию;
- Автоматизировать обработку данных;
- Интегрировать WordPress с внешними системами CRM или ERP;
- Гибко управлять контентом и пользовательскими данными.
В WordPress промышленные поля реализуются через пользовательские мета-поля, которые можно создавать программно или с помощью плагинов.
Создание промышленных полей программно: пример кода для добавления поля в форму регистрации
Для примера создадим поле "Промышленный код" в стандартной форме регистрации WordPress и сохраним его в метаданных пользователя.
Добавим поле в форму регистрации с помощью хука register_form:
function wpkeys_add_industrial_code_field() {
<p><label for="industrial_code">Промышленный код<br><input type="text" name="industrial_code" id="industrial_code" class="input" value="" size="25" /></label></p>
}
add_action('register_form', 'wpkeys_add_industrial_code_field');Теперь необходимо проверить данные при отправке формы через хук registration_errors:
function wpkeys_validate_industrial_code($errors, $sanitized_user_login, $user_email) {
if (empty($_POST['industrial_code']) || !preg_match('/^[A-Z0-9]{5,10}$/', $_POST['industrial_code'])) {
$errors->add('industrial_code_error', '<strong>Ошибка</strong>: Промышленный код должен содержать 5-10 заглавных букв или цифр.');
}
return $errors;
}
add_filter('registration_errors', 'wpkeys_validate_industrial_code', 10, 3);И, наконец, сохраним поле в метаданных пользователя после регистрации с помощью user_register:
function wpkeys_save_industrial_code($user_id) {
if (!empty($_POST['industrial_code'])) {
update_user_meta($user_id, 'industrial_code', sanitize_text_field($_POST['industrial_code']));
}
}
add_action('user_register', 'wpkeys_save_industrial_code');Таким образом, мы добавили новое поле в форму регистрации, проверили его корректность и сохранили в базе.
Отображение и использование промышленных полей в админке и на сайте
Чтобы видеть введённые промышленные поля в админке, можно добавить колонки в список пользователей или вывести данные на странице профиля.
Добавление поля в профиль пользователя в админке
Для этого используем хуки show_user_profile и edit_user_profile:
function wpkeys_show_industrial_code_field($user) {
?>
<h3>Промышленные данные</h3>
<table class="form-table">
<tr>
<th><label for="industrial_code">Промышленный код</label></th>
<td>
<input type="text" name="industrial_code" id="industrial_code" value="<?php echo esc_attr(get_user_meta($user->ID, 'industrial_code', true)); ?>" class="regular-text" />
</td>
</tr>
</table>
<?php
}
add_action('show_user_profile', 'wpkeys_show_industrial_code_field');
add_action('edit_user_profile', 'wpkeys_show_industrial_code_field');И сохраняем изменения:
function wpkeys_save_industrial_code_profile($user_id) {
if (!current_user_can('edit_user', $user_id)) {
return false;
}
if (!empty($_POST['industrial_code'])) {
update_user_meta($user_id, 'industrial_code', sanitize_text_field($_POST['industrial_code']));
}
}
add_action('personal_options_update', 'wpkeys_save_industrial_code_profile');
add_action('edit_user_profile_update', 'wpkeys_save_industrial_code_profile');Вывод поля в шаблоне темы
Чтобы вывести промышленный код пользователя на сайте, используйте:
echo esc_html(get_user_meta(get_current_user_id(), 'industrial_code', true));Это позволит отображать уникальные данные, введённые пользователем, например, на странице профиля или в личном кабинете.
Плагины для работы с промышленными полями и формами
Если вы предпочитаете работать с плагинами, рекомендую следующие решения:
- Advanced Custom Fields (ACF) — позволяет создавать любые пользовательские поля и встраивать их в формы и страницы.
- WPForms — удобный конструктор форм с возможностью добавления пользовательских полей и интеграции с CRM.
- Clearfy Pro — помогает оптимизировать и настроить WordPress, включая работу с пользовательскими полями.
Например, с помощью WPForms вы сможете визуально создавать формы с промышленными полями без кодинга.
Автоматизация обработки данных промышленных полей: пример интеграции с внешним API
Часто нужно отправлять данные из промышленных полей в CRM или другие системы. Рассмотрим пример отправки данных после регистрации пользователя на внешний API.
function wpkeys_send_industrial_code_to_api($user_id) {
$industrial_code = get_user_meta($user_id, 'industrial_code', true);
if (!$industrial_code) {
return;
}
$response = wp_remote_post('https://example-crm.com/api/save', [
'body' => json_encode(['user_id' => $user_id, 'industrial_code' => $industrial_code]),
'headers' => ['Content-Type' => 'application/json'],
'timeout' => 10
]);
if (is_wp_error($response)) {
error_log('Ошибка отправки промышленного кода: ' . $response->get_error_message());
}
}
add_action('user_register', 'wpkeys_send_industrial_code_to_api');Этот код автоматически отправит данные после регистрации, обеспечив интеграцию без дополнительных действий.
Рекомендации по безопасности и производительности при работе с промышленными полями
Не забывайте про важные моменты:
- Всегда используйте
sanitize_text_fieldи другие функции очистки данных, чтобы предотвратить XSS и SQL-инъекции. - Проверяйте права пользователя перед сохранением или отображением данных.
- Кэшируйте часто используемые данные, чтобы снизить нагрузку на базу.
- Используйте nonce-поля в формах для защиты от CSRF-атак.
Соблюдение этих рекомендаций обеспечит надежную и безопасную работу с пользовательскими полями.
Заключение
Промышленные поля в WordPress — это универсальный инструмент для настройки и расширения функционала форм и пользовательских данных. С помощью программных методов и плагинов можно быстро и надежно реализовать любые задачи по сбору и обработке специфичной информации.
Для более сложных проектов рекомендую ознакомиться с инструментами Clearfy Pro и WPForms, которые значительно упростят работу с пользовательскими формами и полями.