اعداة تعين كلمة المرور عند نسيان كلمة المرور

PHOTO EMBED

Sun Feb 18 2024 00:01:17 GMT+0000 (Coordinated Universal Time)

Saved by @mebean #html #wordpress #api

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);
    }
}
content_copyCOPY