web-dev-qa-db-fra.com

Rendre le champ de profil d'utilisateur requis

La page de profil de l'utilisateur contient une zone de texte URL du site.

  1. comment puis-je ajuster le champ de saisie du site à required ?

  2. comment puis-je valider que c'est un vrai site?

2
DrMosko

Ce que j’ai créé avec les champs et les validé: ajout de cette ligne de code pour que l’utilisateur sache qu’il s’agit de champs obligatoires

 <span class="description"><?php _e('(required)'); ?></span> 

ajouté ceci pour former comme ceci:

add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );

function extra_user_profile_fields( $user ) { ?>
<table class="form-table">
<tr>
<th><label for="address"><?php _e("address",'shabatkeeper'); ?> <span class="description"><?php _e('(required)'); ?></span></label></th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr( get_the_author_meta( 'address', $user->ID ) ); ?>" class="regular-text"  /><br />
<span class="description"><?php _e("Please enter your address.",'shabatkeeper'); ?>   </span>
</td>
</tr>

etc..

puis ajouté une validation si elle est vide et si vide faites msg erreur:

add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );

function save_extra_user_profile_fields( $user_id ) {

if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }
{
  if (!isset($_POST['address']) || empty($_POST['address'])  {
      wp_die( __('Error: you must fill all fields') );

  } else {
      // field was set and contains a value
      // do your action

      exit;
  }
}  
}

Peut-être y a-t-il un autre moyen court de le faire, donc si vous savez, faites-le moi savoir s'il vous plaît.

1
DrMosko