我在我的网上商店中使用wordpress以及woocommerce,还在woocommerce REST API中使用Android app

我已经使用WP REST APIJWT Authentication for WP-API插件进行用户身份验证和通过rest api登录。

现在,当我使用下面的api更改密码时

https://www.my-domain.com/wp-json/wp/v2/users/<id>

低于错误



我不知道为什么在登录时进行一次身份验证会收到此错误。谁能帮帮我吗?

最佳答案

创建您的自定义api

URL

https://yourdomain/api/change_password.php

参数

user_id:10
password:123456  //current password
new_password:123456

在根目录中创建文件夹和api 并创建文件change_password.php

change_password.php
<?php
include '../wp-load.php';

$user_id = $_REQUEST['user_id'];
$user = get_user_by( 'id', $user_id );

$password = $_REQUEST['password'];
$new_password = $_REQUEST['new_password'];

if(empty($user_id)){
    $json = array('code'=>'0','msg'=>'Please enter user id');
    echo json_encode($json);
    exit;
}
if(empty($password)){
    $json = array('code'=>'0','msg'=>'Please enter old password');
    echo json_encode($json);
    exit;
}
if(empty($new_password)){
    $json = array('code'=>'0','msg'=>'Please enter new password');
    echo json_encode($json);
    exit;
}
$hash = $user->data->user_pass;
$code = 500; $status = false;
if (wp_check_password( $password, $hash ) ){
    $msg = 'Password updated successfully';
    $code = 200; $status = true;
    wp_set_password($new_password , $user_id);
}else{
    $msg = 'Current password does not match.';
}




$json = array('code'=>$code,'status'=>$status,'msg'=>$msg);
echo json_encode($json);
exit;

?>

它对我来说工作100%尝试一下

关于android - Wordpress-如何使用REST API更新用户密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42994905/

10-12 00:25
查看更多