adrenalinik
@adrenalinik
Верстальщик

Как изменить пароль на WP?

Нужно изменить пароль при заполнении формы состоящей из 2-х полей(новый пароль и его подтверждение), на jquery отбираются данные и делается ajax запрос к файлу function.php где благополучно получаем ошибку:
Call to undefined function chengePassword() in /home/p317367/public_html/wp-content/themes/vault-theme/chengePassword.php
Код function.php:
if (!empty($_POST['password'])) {
$password = $_POST['password'];
$userId = $_POST['user'];

chengePassword($userId, $password);

echo 'pass '.$password.'user '.$userId;
}

add_action( 'init', 'chengePassword' );

function chengePassword($user, $pass){
wp_set_password( $pass, $user );
}
Подскажите в чем проблема?
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 3
MetaDone
@MetaDone
Хорошо сформулированный вопрос - 50% решения
ajax - запросы в wordpress желательно посылать на "/wp-admin/admin-ajax.php", и не забывайте передавать nonce
В итоге выйдет примерно так:
add_action("wp_ajax_nopriv_chenge_password","chenge_password"); //для неавторизованных пользователей
add_action("wp_ajax_chenge_password","chenge_password"); //для авторизованных пользователей
function chenge_password(){
if (!empty($_POST['password'])) {
$password = $_POST['password'];
$userId = $_POST['user'];
wp_set_password( $password, $userId );
}
Ответ написан
Комментировать
@mr_ko
Javascript, Node.js. React.js, Vue.js, Wordpress
Вот же вам написало проблему
Call to undefined function chengePassword()
Ответ написан
Комментировать
HoHsi
@HoHsi
Во превых у WP есть хук для AJAX запросов, зачем вы велосипедите то?
function nameOfFunc(){

    exit;
}
add_action('wp_ajax_nameOfFunc', 'nameOfFunc');
add_action('wp_ajax_nopriv_nameOfFunc', 'nameOfFunc');


Во вторых, что делает вот этот кусок?
add_action( 'init', 'chengePassword' );

А ошибка гласит, что вы не определили функцию, хотя по коду все ОК
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы