Как добавить поля в регистрационную форму WooCommerce

Опубликовано: 2021-04-20

Добавить настраиваемые поля Регистрационная форма WooCommerce Вы ищете способ добавить поля регистрационной формы WooCommerce? В этом уроке я покажу вам, как добавить настраиваемые поля в регистрационную форму WooCommerce, чтобы запрашивать у клиентов дополнительную информацию перед регистрацией в вашем магазине WooCommerce.

WooCommerce по-прежнему популярен среди большинства владельцев магазинов, потому что он гибок в настройке. Вы можете использовать плагины или пользовательский код, чтобы добавить больше функциональности.

Как добавить поля в регистрационную форму WooCommerce

В этом посте вы увидите, как можно использовать пользовательские PHP-скрипты для добавления полей регистрационной формы WooCommerce. Рекомендуем создать дочернюю тему. Это гарантирует, что ваши изменения не будут потеряны во время обновления.

Прежде чем мы начнем, нам нужно убедиться, что регистрационные формы WooCommerce включены на странице входа в учетную запись.

Для этого перейдите в WooCommerce > Настройки > Учетные записи и установите флажок Включить регистрацию клиентов на странице « Моя учетная запись », как показано ниже: разрешить регистрацию

Это гарантирует, что регистрационная форма WooCommerce будет отображаться во внешнем интерфейсе.

Шаги по добавлению полей в регистрационную форму WooCommerce

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

Вот шаги, которые вам необходимо выполнить:

  1. Войдите на свой сайт WordPress и получите доступ к панели инструментов в качестве пользователя-администратора.
  2. В меню «Панель инструментов» нажмите «Меню внешнего вида» > «Меню редактора тем». Когда откроется страница Theme Editor, найдите файл функций темы, куда мы добавим функцию, которая добавит поля в регистрационную форму.
  3. Добавьте следующий код в файл functions.php:
 функция njengah_extra_register_fields() {?>

       <p class="form-row form-row-wide">

       <label for="reg_billing_phone"><?php _e('Телефон', 'woocommerce'); ?></метка>

       <input type="text" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php esc_attr_e( $_POST['billing_phone'] ); ?>" />

       </p>

       <p class="форма-строка форма-строка-первая">

       <label for="reg_billing_first_name"><?php _e('Имя', 'woocommerce'); ?><span class="required"></span></label>

       <input type="text" class="input-text" name="billing_first_name" id="reg_billing_first_name" value="<?php if ( ! empty( $_POST['billing_first_name'] ) ) esc_attr_e( $_POST[' billing_first_name'] ); ?>" />

       </p>

       <p class="форма-строка форма-строка-последняя">

       <label for="reg_billing_last_name"><?php _e('Фамилия', 'woocommerce'); ?><span class="required"></span></label>

       <input type="text" class="input-text" name="billing_last_name" id="reg_billing_last_name" value="<?php if ( ! empty( $_POST['billing_last_name'] ) ) esc_attr_e( $_POST[' биллинг_фамилия'] ); ?>" />

       </p>

       <div class="clear"></div>

       <?php

 }

 add_action('woocommerce_register_form_start', 'njengah_extra_register_fields');
  1. Это результат, когда вы обновляете страницу: регистрационная форма

Поля регистрационной формы такие же, как платежный адрес.

Мы включили префикс «billing_» перед названием поля.

Вот допустимые поля формы WooCommerce, которые можно добавить в регистрационную форму и связать с платежным адресом:

  • billing_first_name
  • billing_last_name
  • billing_company
  • Платежный адрес 1
  • биллинг_адрес_2
  • billing_city
  • billing_postcode
  • страной плательщика
  • billing_state
  • billing_email
  • billing_phone
  1. Теперь, когда формы созданы, нам нужно проверить их, используя следующий код, который нужно вставить в файл functions.php:
 /**

* Зарегистрируйте поля Validating.

*/

функция njengah_validate_extra_register_fields($username, $email, $validation_errors) {




      если ( isset( $_POST['имя_первого_биллинга'] ) && пусто( $_POST['имя_первого_биллинга'] )) {




             $validation_errors->add( 'billing_first_name_error', __( '<strong>Ошибка</strong>: требуется имя!', 'woocommerce' ) );

      }

      if ( isset( $_POST['billing_last_name'] ) && пусто( $_POST['billing_last_name'] )) {




             $validation_errors->add( 'billing_last_name_error', __( '<strong>Ошибка</strong>: требуется фамилия!.', 'woocommerce' ) );




      }

         вернуть $validation_errors;

}




add_action('woocommerce_register_post', 'njengah_validate_extra_register_fields', 10, 3);
  1. Последний шаг — сохранить эти значения в базе данных, добавив следующий код в файл fucntions.php:
 /**

* Ниже код сохраняет дополнительные поля.

*/

функция njengah_save_extra_register_fields ($customer_id) {

    если ( isset( $_POST['billing_phone'] ) ) {

                 // Файл ввода телефона, который используется в WooCommerce

                 update_user_meta($customer_id, 'billing_phone', sanitize_text_field($_POST['billing_phone'] ));

          }

      если ( isset( $_POST['имя_первого_выставления счета'] )) {

             // Поле имени, которое по умолчанию

             update_user_meta($customer_id, 'first_name', sanitize_text_field($_POST['billing_first_name'] ));

             // Поле имени, которое используется в WooCommerce

             update_user_meta($customer_id, 'имя_первого_для выставления счетов', sanitize_text_field($_POST['имя_для выставления счетов']));

      }

      если ( isset( $_POST['billing_last_name'] )) {

             // Поле Фамилия, которое по умолчанию

             update_user_meta($customer_id, 'last_name', sanitize_text_field($_POST['billing_last_name'] ));

             // Поле фамилии, которое используется в WooCommerce

             update_user_meta($customer_id, 'billing_last_name', sanitize_text_field($_POST['billing_last_name'] ));

      }




}

add_action('woocommerce_created_customer', 'njengah_save_extra_register_fields');

Теперь поля были добавлены, проверены и вставлены для будущего использования.

Когда вы переходите на страницу платежного адреса в своей учетной записи, вам нужно нажать «Изменить», чтобы перейти туда. Поля уже заполнены: проверить

Вывод

В этом посте вы узнали, как добавлять поля в регистрационную форму WooCommerce.

Если у вас возникнут проблемы с реализацией этого кода, обратитесь к квалифицированному разработчику WordPress.

Похожие статьи

  1. Перенаправление WooCommerce после выхода из системы [Полное руководство]