Question

J'ai créé des méta-options utilisateur à l'aide de ce tutoriel. Maintenant, je veux savoir comment permettre aux utilisateurs de modifier (mettre à jour) certaines méta-options utilisateur personnalisées que j'ai créées.

Les utilisateurs ont déjà une page de compte de modèle où ils ont accès à certaines méta-options utilisateur. J'ai ajouté la fonction A à la page des utilisateurs pour mettre à jour le champ de méta en cliquant sur le bouton de mise à jour sur la page.

Je suis en utilisant des champs d'entrée de texte pour les nouveaux métas utilisateur. C'est le code que j'ai utilisé pour mettre à jour les options:

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

function my_save_extra_user_fields( $userId ) {

    if ( !current_user_can( 'edit_user', $userId ) )
        return false;

    update_usermeta( $userId, 'address2', $_POST['address2'] ); // Custom meta 1
    update_usermeta( $userId, 'address3', $_POST['address3'] ); // Custom meta 2
    update_usermeta( $userId, 'hours', $_POST['hours'] ); // Custom meta 3
}

Mais lorsque je met à jour la page, il affiche les valeurs précédentes enregistrées dans la section back-end (admin) de WordPress. Bien sûr, toutes les valeurs enregistrées à l'arrière sont enregistrées correctement et affichées sur le frontal. Je voulais économiser de toute façon, du back-end et du front-end.

Qu'est-ce que je fais mal? Comment puis-je réparer ça?

Merci

METTRE À JOUR:

Voici le code de la page de modèle que les utilisateurs utilisent pour mettre à jour leurs méta-informations existantes:

<?php get_header(); ?>

<script src='../js/states-n-cities.js'></script>


<?php 

$user_info = get_userdata($current_user->ID); 
$userId = $userdata->ID;

$location = $userdata->jabber;
$lsplit = explode('**',$location);
$full_location =  ''.$lsplit[2]. ', ' .$lsplit[3]. ' ' .$lsplit[1]. ' ' .$lsplit[4]. ''; // 0 = Country; 1 = State; 2 = Address; 3 = City; 4 = Zip Code; 5 = Phone Number
$statesplit = explode(', ', $lsplit[1]); // State split: 0 = State name; 1 = State Abbreviation
$location_pt1 =  $lsplit[2];
$location_pt2 =  ''.$lsplit[3]. ', ' .$statesplit[1]. ' ' .$lsplit[4]. '';

?>


<?php echo $PPTDesign->GL_ALERT($GLOBALS['error_msg'],$GLOBALS['error_type']); ?>

<div id="My" style="display:visible;">

<h1 class="page-title">My Account</h1>

<div class="middleSidebar left padding-form" style="width: 710px;">


<div class="fieldset">

    <div class="full clearfix border_t box"> <br />
    <p class="f_half left"> 
        <a href="javascript:void(0);" onClick="jQuery('#My').hide(); jQuery('#MyDetails').show()" title="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount2']) ?>">
        <img src="<?php echo IMAGE_PATH; ?>a1.png" style="float:left; padding-right:20px; margin-top:10px;" />
        <b><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount2']) ?></b><br />
        <?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount3']) ?>  
        </a>
    </p>
    <p class="f_half left"> 
        <a href="http://www.savingsulove.com/artwork" title="Savings U Love Artwork Approval">
        <img src="<?php echo IMAGE_PATH; ?>artwork1.png" style="float:left; padding-right:20px; margin-top:10px;" />
        <b>Artwork</b><br />
        Approve your artwork  
        </a> 
    </p>
    </div> 


    <div class="full clearfix border_t box"> <br />

    <p class="f_half left"> 
        <a href="<?php echo get_option("manage_url"); ?>" title="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount6']) ?>">
        <img src="<?php echo IMAGE_PATH; ?>a3.png" style="float:left; padding-right:20px; margin-top:10px;" />
        <b>Manage My Offers</b><br />
        <?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount7']) ?>
        </a>
    </p>
    <p class="f_half left"> 
        <a href="<?php echo get_option('submit_url'); ?>" title="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount8']) ?>">
        <img src="<?php echo IMAGE_PATH; ?>a5.png" style="float:left; padding-right:20px; margin-top:10px;" />
        <b>Create New Offers</b><br />
       <?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount9']) ?>
        </a> 
    </p>
    </div>  

    <div class="full clearfix border_t box"> <br />
    <p class="f_half left"> 
        <a href="<?php echo get_option("messages_url"); ?>" title="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount4']) ?>">
        <img src="<?php echo IMAGE_PATH; ?>a2.png" style="float:left; padding-right:20px; margin-top:10px;" />
        <b><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount4']) ?></b><br />
        <?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount5']) ?>  
        </a> 
    </p>  
    <p class="f_half left"> 
        <a href="<?php echo get_option("contact_url"); ?>" title="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount10']) ?>">
        <img src="<?php echo IMAGE_PATH; ?>a4.png" style="float:left; padding-right:20px; margin-top:10px;" />
        <b><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount10']) ?></b><br />
        <?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount11']) ?> 
        </a>

    </p>
    </div>

    <div class="full clearfix border_t box"> <br />

    <p class="f_half left"> 
        <a href="<?php  echo wp_logout_url(); ?>" title="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount12']) ?>">
        <img src="<?php echo IMAGE_PATH; ?>a6.png" style="float:left; padding-right:20px; margin-top:10px;" />
        <b><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount12']) ?></b><br />
        <?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount13']) ?>
        </a> 
    </p>

    </div>

</div> <!-- end fieldset -->

</div><!-- end middleSidebar -->          

</div>


<div id="MyDetails" style="display:none;">

<h1 class="page-title"> Account Details<?php // echo SPEC($GLOBALS['_LANG']['_tpl_myaccount1']) ?></h1>

<p class="return-link"><a href="<?php echo $GLOBALS['premiumpress']['dashboard_url']; ?>" title="<?php echo SPEC($GLOBALS['_LANG']['_head4']) ?>">Back</a></p> 

<div class="middleSidebar left padding-form" style="width: 710px;">   

<form action="" method="post" enctype="multipart/form-data"> 
<input type="hidden" name="action" value="1" />

<fieldset> 


<div class="full clearfix border_t box"> 
<p class="f_half left"> 
    <label for="name"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount15']) ?> <span class="required"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount16']) ?></span></label><br /> 
    <input type="text" value="<?php echo $userdata->user_login; ?>" disabled class="short" /><br /> 
</p> 
<p class="f_half left"> 
    <label for="email">Email <span class="required">*</span></label><br /> 
    <input type="text" name="form[user_email]" value="<?php echo $userdata->user_email; ?>" class="short" tabindex="10" /><br /> 
</p> 
</div> 


<div class="full clearfix border_t box"> 
<p class="f_half left"> 
    <label for="name"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount17']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="form[user_url]" value="<?php echo $userdata->user_url; ?>" class="short" tabindex="11" /><br /> 
</p> 
<p class="f_half left"> 
    <label for="comment2"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount18']) ?> <span class="required">*</span></label><br /> 
    <textarea tabindex="5" class="short" rows="4" name="form[description]"><?php echo $userdata->description; ?></textarea><br /> 

</p> 
</div>

</fieldset>                     

  <h3 class="inpage-header"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount19']) ?></h3>

<fieldset> 

<div class="full clearfix border_t box"> 
<p class="f_half left"> 
    <label for="name"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount20']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="form[first_name]" value="<?php echo $userdata->first_name; ?>" class="short" tabindex="12" /><br /> 

</p> 
<p class="f_half left"> 
    <label for="email"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount21']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="form[last_name]" value="<?php echo $userdata->last_name; ?>" class="short" tabindex="13" /><br /> 

</p> 
</div>  


 <div class="full clearfix border_t box"> 

<p class="f_half left"> 
    <label for="email"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount25']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="address[address]" value="<?php echo $ADD[2]; ?>" class="short" tabindex="17" /><br /> 

</p>

<p class="f_half left"> 
    <label for="address[state]"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount23']) ?> <span class="required">*</span></label><br /> 
    <select type="text" name="address[state]" id="first" value="<?php echo $ADD[1]; ?>" class="short" tabindex="15"><option value=""></option></select><br />

</p>

</div>  


 <div class="full clearfix border_t box">

 <p class="f_half left"> 
    <label for="address[city]"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount24']) ?> <span class="required">*</span></label><br /> 
    <select type="text" name="address[city]" id="second" value="<?php echo $ADD[3]; ?>" class="short" tabindex="16"><option value=""></option></select><br /> 

</p>

<p class="f_half left"> 
    <label for="name"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount26']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="address[zip]" value="<?php echo $ADD[4]; ?>" class="short" tabindex="18" /><br /> 

</p> 

</div>


 <div class="full clearfix border_t box"> 
<p class="f_half left"> 
    <label for="email"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount27']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="address[phone]" value="<?php echo $ADD[5]; ?>" class="short" tabindex="19" /><br /> 

</p> 
</div>

<?php if ($current_user->ID == 1){ ?>


<div class="full clearfix border_t box"> 
  <p class="f_half left"> 
      <label for="address2">Address 2</label><br />
      <input type="text" name="address2" id="address2" value="<?php echo esc_attr( get_the_author_meta( 'address2', $userId ) ); ?>" class="short" /><br />
      <span class="description">E.g. Street Address, City, State Zipcode</span>
  </p>
</div> 

<div class="full clearfix border_t box"> 
  <p class="f_half left"> 
      <label for="address3">Address 3</label><br />
      <input type="text" name="address3" id="address3" value="<?php echo esc_attr( get_the_author_meta( 'address3', $userId ) ); ?>" class="short" /><br />
      <span class="description">E.g. Street Address, City, State Zipcode</span> 
  </p> 
</div>

<div class="full clearfix border_t box"> 
  <p class="f_half left"> 
      <label for="hours">Hours</label><br />
      <input type="text" name="hours" id="hours" value="<?php echo esc_attr( get_the_author_meta( 'hours', $userId ) ); ?>" class="short" /><br />
      <span class="description">Enter your hours of operation. (Optional)</span>
  </p> 
</div>

<?php } ?> 

</fieldset>

 <h3 class="inpage-header"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount30']) ?></h3>

<fieldset> 

<div class="full clearfix border_t box"> 

<p class="f_half left"> 
    <label for="name"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount31']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="password" class="short" tabindex="20" /><br /> 

</p> 
<p class="f_half left"> 
    <label for="email"><?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount32']) ?> <span class="required">*</span></label><br /> 
    <input type="text" name="password_r" class="short" tabindex="21" /><br /> 

</p> 
</div>                     


</fieldset>

<?php if ($current_user->ID == 1){ ?>

<?php 

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

function my_save_extra_user_fields( $userId ) {

    if ( !current_user_can( 'edit_user', $userId ) )
        return false;

    update_usermeta( $userId, 'address2', $_POST['address2'] );
    update_usermeta( $userId, 'address3', $_POST['address3'] );
    update_usermeta( $userId, 'hours', $_POST['hours'] );
}

?>

<?php } ?>                        

<div class="full clearfix border_t box"><p class="full clearfix"> 
<input type="submit" name="submit" id="submit" class="button grey" tabindex="15" value="<?php echo SPEC($GLOBALS['_LANG']['_tpl_myaccount33']) ?>" /> 
</p></div>

</form> 

</div>

</div> </div>

<?php get_footer(); ?>

Vous pouvez que j'ai créé trois champs de méta de test (adresse 1, adresse 2 et heures), mais je ne suis pas en mesure de les sauver de l'extrémité avant du site.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top