Meta des utilisateurs de l'utilisateur frontal pour les utilisateurs
-
31-10-2019 - |
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