add_action('rest_api_init', 'register_reset_password_route');
function register_reset_password_route() {
register_rest_route('wp/v1', '/users/resetpassword', array(
'methods' => 'POST',
'callback' => 'reset_password_callback',
'permission_callback' => '__return_true',
));
}
function reset_password_callback($request) {
$user_data = $request->get_params();
if (empty($user_data['email'])) {
return new WP_REST_Response(array(
'success' => false,
'message' => 'البريد الإلكتروني مطلوب',
), 400);
}
$user = get_user_by('email', $user_data['email']);
if (!$user) {
return new WP_REST_Response(array(
'success' => false,
'message' => 'المستخدم غير موجود',
), 404);
}
$reset = wp_generate_password(12, false);
$result = wp_set_password($reset, $user->ID);
if (is_wp_error($result)) {
return new WP_REST_Response(array(
'success' => false,
'message' => $result->get_error_message(),
), 500);
} else {
wp_mail($user->user_email, 'إعادة تعيين كلمة المرور', 'تمت إعادة تعيين كلمة مرورك بنجاح. كلمة مرورك الجديدة هي: ' . $reset);
return new WP_REST_Response(array(
'success' => true,
'message' => 'تم إعادة تعيين كلمة المرور بنجاح. يرجى التحقق من بريدك الإلكتروني للحصول على كلمة المرور الجديدة.',
), 200);
}
}