I installed the “JWT Authentication for WP REST API” plugin for user authentication through an Ionic app. Although authentication was successful, attempting to find a way to register users from the mobile app proved to be a particularly difficult task.

Is there a way to register users from the API given by WordPress? Or is there some preferred way to implement this on the admin console to enable this behavior?

I’m completely helpless here. The data is ‘POST’ed through query parameters to the base url, and gives a 302 response, but when I resend the request through Fiddler it gives a 200 OK. And when I attempt to replicate the request on Postman it also gives a 200 OK.

I considered the JSON API plugin with the JSON API USER plugin route, but these don’t seem to be under active development. I’ve read somewhere this gets done with GET and a cookie or something?

2 Answers
2

This does not use the API, but it’s a script I’ve used a hundred times over the years, always works. Simply drop it in the root of your install and then access the file directly. Remember to delete the file immediately afterward. I do not remember where I originally obtained this script.

<?php
// ADD NEW ADMIN USER TO WORDPRESS
// ----------------------------------
// Put this file in your WordPress root directory and run it from your browser.
// Delete it when you're done.
require_once('wp-blog-header.php');
require_once('wp-includes/registration.php');
// ----------------------------------------------------
// CONFIG VARIABLES
// Make sure that you set these before running the file.
$newusername="your_username";
$newpassword = 'youer_password';
$newemail="email@youremail.com";
// ----------------------------------------------------
// This is just a security precaution, to make sure the above "Config Variables" 
// have been changed from their default values.
if ( $newpassword != 'YOURPASSWORD' &&
     $newemail != 'YOUREMAIL@TEST.com' &&
     $newusername !='YOURUSERNAME' )
{
    // Check that user doesn't already exist 
    if ( !username_exists($newusername) && !email_exists($newemail) )
    {
        // Create user and set role to administrator
        $user_id = wp_create_user( $newusername, $newpassword, $newemail);
        if ( is_int($user_id) )
        {
            $wp_user_object = new WP_User($user_id);
            $wp_user_object->set_role('administrator');
            echo 'Successfully created new admin user. Now delete this file!';
        }
        else {
            echo 'Error with wp_insert_user. No users were created.';
        }
    }
    else {
        echo 'This user or email already exists. Nothing was done.';
    }
}
else {
    echo 'Whoops, looks like you did not set a password, username, or email';
    echo 'before running the script. Set these variables and try again.';
}

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *