я создал плагин для создания страницы профиля пользователя. При этом пользователь может обновлять пользовательскую мета-информацию через форму. Вот моя функция:
// 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');
}
Других решений пока нет …