为我的登录创建主题并更新用户元

时间:2014-07-07 作者:nadir

我是法国人,我使用插件“主题我的登录”。我想知道如何在基本页面中更新用户的元。谢谢你的帮助。

在我的页面模板中,我有以下代码:

    $user_adresse_key = \'user_adresse\';
            $user_adresse = get_user_meta( $user_id, $user_adresse_key, $single );
            ?>
            <form id="form_livraison" action="#formulaire" method=\'post\'>
                <input type=\'text\' name=\'user_adresse\' value="<?php echo $user_adresse;?>" />
                <input type=\'submit\' value=\'mettre à jour\' name=\'submit_form\' />
            </form>
            <?php
            update_user_meta($user_id, \'user_adresse\', $_POST[\'user_adresse\']);
            ?>

1 个回复
SO网友:Bysander

这应该放在页面上PHP脚本的顶部附近,以侦听提交的数据。

<?php
if (isset($_POST[\'user_adresse\'])) {
    $userID = get_current_user_id();
    $userADRESSE = $_POST[\'user_adresse\'];
    update_user_meta($userID , \'user_adresse\' , $userADRESSE ); #\'user_adresse\' should be the name of the meta key
} ?>
表格应该是这样的

<?php $user_adresse = get_user_meta(get_current_user_id(), \'user_adresse\', true ); ?>
<form id="form_livraison" action="#formulaire" method=\'post\'>
<input type=\'text\' name=\'user_adresse\' value="<?php echo $user_adresse;?>" />
            <input type=\'submit\' value=\'mettre à jour\' name=\'submit_form\' />
        </form>
我还建议为任何前端用户交互在表单中添加nonce。

详细信息可以是found here 第节下Adding a nonce to a form

我没有测试过这段代码,所以请检查是否有拼写错误等!!

编辑

    <?php
  if ( is_user_logged_in() )
{
 $user_id = get_current_user_id();
 $user_login = get_user_meta( $user_id, \'user_login\', true );
 $user_email = get_user_meta( $user_id, \'user_email\', true );
 $first_name = get_user_meta( $user_id, \'first_name\', true );
 $last_name = get_user_meta( $user_id, \'last_name\', true );
 $user_societe = get_user_meta( $user_id, \'user_societe\', true );
 $user_adresse = get_user_meta( $user_id, \'user_adresse\', true );
 $user_code_postal = get_user_meta( $user_id, \'user_code_postal\', true );
 $user_ville = get_user_meta( $user_id, \'user_ville\', true );
 $user_url = get_user_meta( $user_id, \'user_url\', true );

echo $_POST[\'user_adresse\']; // This will only show what is posted previously on the page - if you want to dsiplay the saved address use echo $user_adresse
if (isset($_POST[\'user_adresse\'])) {
    $userADRESSE = $_POST[\'user_adresse\'];
    update_user_meta($user_id , \'user_adresse\' , $userADRESSE ); #\'user_adresse\' should be the name of the meta key
}
 ?>
<form id="form_livraison" action="#formulaire" method=\'post\'>
<h2>Récapitulatif de vos coordonnées</h2>
<br />
<table style="width:320px">
<tr>
<td>Nom</td>
<td><?php echo $last_name; ?></td>
</tr>
<tr>
<td>Prénom</td>
<td><?php echo $first_name; ?></td>
</tr>
<tr>
<td>Adresse</td>
<td>
<?php  if (isset($_POST[\'user_adresse\'])) { ##This means that if you have just updated the post it will show what the post is updated to - otherwise the original meta is displayed.
        echo $_POST[\'user_adresse\']; } else { echo $user_adresse; }?></br><input type=\'text\' name=\'user_adresse\' placeholder="Ajouter/Changez votre adresse" /></td>
</tr>
<tr>
<td>Code postal</td>
<td><?php echo $user_code_postal; ?></td>
</tr>
<tr>
<td>Ville</td>
<td><?php echo $user_ville; ?></td>
</tr>
<tr>
<td>Web Adresse</td>
<td><input type=\'text\' name=\'url\' value="<?php echo $user_url;?>" /></td>
</tr>
</table>
<br />
<input type=\'submit\' value=\'mettre à jour\' name=\'submit_form\' />
</form>
Happy Code Result!

结束

相关推荐

Updates for a private plugin?

如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点