WordPress更新用户元前端配置文件


WordPress Update User Meta Front End Profiles

我创建了一个插件来创建用户个人资料页面。在此基础上,用户可以通过表单更新自定义元信息。这是我的函数:

// 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');
}

一切都很好,除了一件事。当我提交表单时,数据将保存到数据库,页面将刷新。但是现在在我刷新的页面上,表单是空的。再次刷新页面时,将显示数据。这有什么问题?

提前谢谢你!

这样

的事情可以工作...

<?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');
}