Проверка нового поля регистрации пользователя Wordpress - PullRequest
0 голосов
/ 13 марта 2020

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

I ' мы сделали это, но шаблон не работает.

function add_field( $user ) {?>

  <h3><?php _e('Datos:'); ?></h3>

  <table class="form-table">
    <tr class="form-field form-required">
        <th scope="row">
            <label for="dni"><?php _e('DNI'); ?>
            <span class="description"><?php _e('(required)');?></span></label>
        </th>
        <td>
            <input type="text" name="dni" id="dni" class="regular-text"
            pattern="[0-9]{8}[A-Z]{1}" aria-required="true"
            maxlength="9" placeholder="Ej: 93691535T" 
              value="<?php echo esc_attr( get_the_author_meta( 'dni', $user->ID ) ); ?>">
        </td>
    </tr>
  </table>
}

Я использую следующие хуки:

add_action('user_new_form', 'add_field');
add_action('show_user_profile', 'add_field');
add_action('edit_user_profile', 'add_field');

И для сохранения в базе данных:

function save_field( $user_id ) {

  if ( !current_user_can( 'edit_user', $user_id ) ) {
    return false;
  }


  if( isset($_POST['dni']) ) {
    $dni = sanitize_text_field($_POST['dni']);
    update_user_meta( $user_id, 'dni', $dni );
  }
}


add_action('user_register' , 'save_field');
add_action('personal_options_update', 'save_field');
add_action('edit_user_profile_update', 'save_field');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...