2016-04-28 5 views
1

私はユーザープロファイルページを作成するためのプラグインを作成しました。これにより、ユーザーはフォームを通じてカスタムメタ情報を更新できます。ここに私の機能は次のとおりです。ワードプレスアップデートユーザーメタフロントエンドプロファイル

// Function to edit User Meta 

function personalfragebogen_konto_bearbeiten() { 

global $current_user; 

// Get User Meta 

$strasse = get_user_meta($current_user->ID, '_strasse', true); 

// Create Form 

<form name="personalfragebogen" action="" method="POST"> 

    <span class="full" > 
     <span class="two_fifth first"> 
      <h3><?php _e('Straße:', 'themesdojo'); ?></h3> 
     </span> 

     <span class="three_fifth"> 
      <input type="text" name="strasse" id="strasse" value="<?php echo $strasse; ?>" class="input-textarea"/> 
     </span> 
    </span> 

<button type="submit">Speichern</button> 

</form> 

// Get New User Meta 

$strasse = $_POST['strasse']; 

// Update/Create User Meta 

update_user_meta($current_user->ID, '_strasse', $strasse); 

// Add Hook 

add_action('personalfragebogen_init', 'personalfragebogen_konto_bearbeiten'); 

function personalfragebogen_init() { 
    do_action('personalfragebogen_init'); 
} 

1つのこと以外はすべて正常に動作します。フォームを送信すると、データがデータベースに保存され、ページが更新されます。しかし、今私のリフレッシュされたページにフォームは空です。ページを再度リフレッシュすると、データが表示されます。これについての問題は何ですか?

ありがとうございます!働くことができ、このような

+0

あなたが最初にすべきことは、フォームがメタを更新する前に投稿されたチェックです。 isset($ _ POST ['strasse'])などを使用してください。フォームを出力する前にそのアップデートを実行してください。 –

答えて

1

何か...

<?php 
// Function to edit User Meta 
function personalfragebogen_konto_bearbeiten() { 

    global $current_user; 

    // Get New User Meta 
    if(isset($_POST['strasse'])) { 
     $strasse = $_POST['strasse']; 
     // Update/Create User Meta 
     update_user_meta($current_user->ID, '_strasse', $strasse);  
    else { 

     // Get User Meta 
     $strasse = get_user_meta($current_user->ID, '_strasse', true); 
    } 


?> 

    <form name="personalfragebogen" action="" method="POST"> 

     <span class="full" > 
      <span class="two_fifth first"> 
       <h3><?php _e('Straße:', 'themesdojo'); ?></h3> 
      </span> 

      <span class="three_fifth"> 
       <input type="text" name="strasse" id="strasse" value="<?php echo $strasse; ?>" class="input-textarea"/> 
      </span> 
     </span> 

    <button type="submit">Speichern</button> 

    </form> 
<?php 
    } 

// Add Hook 

add_action('personalfragebogen_init', 'personalfragebogen_konto_bearbeiten'); 

function personalfragebogen_init() { 
    do_action('personalfragebogen_init'); 
} 
+0

ありがとうございます!今は私が望むように働いています。 :) – NieCon

+0

偉大なもの、それを聞いてうれしい:) –