WordPress REST API-发送重置密码链接

时间:2018-08-27 08:54:37

标签: xamarin wordpress-rest-api

我想从我的应用程序创建一个请求。 (iOS和Android-Xamarin编码)。

说明:

该请求应触发WordPress action=lostpassword。 -用户收到一封电子邮件,以在浏览器中重设密码。

OR

用户将能够设置新密码。 WordPress将链接发送到电子邮件-用户必须在其中验证他是否更改了密码。 是否有机会通过向REST API发出请求来做到这一点。

也许有任何类似的想法?

我已经尝试过:

  1. 在文档中提供了功能但对我不起作用的插件
  2. 通过正文手动调用wp-login.php?action=lostpassword
  

{          “ redirect_to”:“”,          “ user_login”:“ name@provider.de”,          “ wp-submit”:“ Neues + Passwort”       }

2 个答案:

答案 0 :(得分:3)

创建自定义api

URL

https://yourdomain/api/forgot_password.php

参数

login:manoj.infoways@gmail.com

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

forgot_password.php

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

$login = $_REQUEST['login']; 

if ( empty( $login ) ) {
    $json = array( 'code' => '0', 'msg' => 'Please enter login user detail' );
    echo json_encode( $json );
    exit;     
}

$userdata = get_user_by( 'email', $login); 

if ( empty( $userdata ) ) {
    $userdata = get_user_by( 'login', $login );
}

if ( empty( $userdata ) ) {
    $json = array( 'code' => '101', 'msg' => 'User not found' );
    echo json_encode( $json );
    exit;
}

$user      = new WP_User( intval( $userdata->ID ) ); 
$reset_key = get_password_reset_key( $user ); 
$wc_emails = WC()->mailer()->get_emails(); 
$wc_emails['WC_Email_Customer_Reset_Password']->trigger( $user->user_login, $reset_key );


$json = array( 'code' => '200', 'msg' => 'Password reset link has been sent to your registered email' );
echo json_encode( $json );
exit;

?>

登录时要记住参数名称。

它对我来说100%有效

答案 1 :(得分:1)

我认为this应该会为您提供帮助。

示例显示为wp_lostpassword_url()函数返回丢失的密码URL http://example.com/lostpassword/

add_filter( 'lostpassword_url', 'my_lost_password_page', 10, 2 );
function my_lost_password_page( $lostpassword_url, $redirect ) {
    return home_url( '/lostpassword/?redirect_to=' . $redirect );
}