私はこのワードプレスフロントエンドのプロファイルを更新しました。ユーザーはパスワードとメールのフロントエンドを更新できますが、更新を送信すると動作しますが、パスワードが2つのフィールド間で一致していないか、既存の電子メールを入力しています。フォームの更新時にエラーメッセージを表示することができません
global $current_user, $wp_roles;
$error = array();
/* If profile was saved, update profile. */
if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']
) && $_POST['action'] == 'update-user') {
/* Update user password. */
if (!empty($_POST['pass1']) && !empty($_POST['pass2'])) {
if ($_POST['pass1'] == $_POST['pass2'])
wp_update_user(array('ID' => $current_user->ID, 'user_pass' =>
esc_attr($_POST['pass1'])));
else
$error[] = __('The passwords you entered do not match. Your
password was not updated.', 'profile');
}
/* Update user information. */
if (!empty($_POST['url']))
wp_update_user(array('ID' => $current_user->ID, 'user_url' => esc_url($_POST['url'])));
if (!empty($_POST['email'])){
if (!is_email(esc_attr($_POST['email'])))
$error[] = __('The Email you entered is not valid. please try again.', 'profile');
elseif(email_exists(esc_attr($_POST['email'])) != $current_user->id)
$error[] = __('This email is already used by another user. try a different one.', 'profile');
else{
wp_update_user(array ('ID' => $current_user->ID, 'user_email' => esc_attr($_POST['email'])));
}
}
if (!empty($_POST['first-name']))
update_user_meta($current_user->ID, 'first_name', esc_attr($_POST['first-name']));
if (!empty($_POST['last-name']))
update_user_meta($current_user->ID, 'last_name', esc_attr($_POST['last-name']));
if (!empty($_POST['description']))
update_user_meta($current_user->ID, 'description', esc_attr($_POST['description']));
/* Redirect so the page will show updated info.*/
if (count($error) > 0) {
do_action('edit_user_profile_update', $current_user->ID);
wp_redirect(get_permalink());
exit;
}
}
なぜそれは私がわからないのよ、エラーメッセージが表示されていません。..
あなたはエラーをエコーしていません – inarilo