最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Wordpress Rest API- Allow creation of users with identical email addresses when only using rest api

programmeradmin3浏览0评论

I'am working on a new wordpress website, and I would like to create multiple users with the same exact email address. The purpose of this is to route several customer service accounts to a common email as means of consolidation.

I started by registering an email field in the rest api, as email field is not included in the default rest api settings.

Hence the following code was added in my functions.php file:

register_rest_field( 'user', 'user_email',
                        array(
                            'get_callback'    => function ( $user ) {
                                return get_userdata($user['id'])->user_email;
                            },
                            'schema'          => null,
                        )
                    );
                

Then I issue 2 simple post requests using python to create 2 accounts with the same email,as follows:

import base64
import requests
import json

url=''

from Load_Credentials import user,password

credentials = user + ':' + password
token = base64.b64encode(credentials.encode())
header = {'Authorization': 'Basic ' + token.decode('utf-8'),'Content-Type': 'application/json','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}


#first POST request with same email
x1={"username": "newuser1","email":"[email protected]","password":"check123"}
x1=json.dumps(x1)
x1=json.loads(x1)
r1=requests.post(url+'?status=publish',headers=header,json=x1)

#second post request with same email
x2={"username": "newuser2","email":"[email protected]","password":"check123"}
x2=json.dumps(x2)
x2=json.loads(x2)
r2=requests.post(url+'?status=publish',headers=header,json=x2)

This is the response I'am getting:

{'code': 'existing_user_email', 'message': 'Sorry, that email address is already used!', 'data': None}

Is there a way to allow creating 2 accounts with the same email ONLY when using the rest api. (normal registration procedure should continue to flag duplicate emails)

I appreciate your support on this matter.

I'am working on a new wordpress website, and I would like to create multiple users with the same exact email address. The purpose of this is to route several customer service accounts to a common email as means of consolidation.

I started by registering an email field in the rest api, as email field is not included in the default rest api settings.

Hence the following code was added in my functions.php file:

register_rest_field( 'user', 'user_email',
                        array(
                            'get_callback'    => function ( $user ) {
                                return get_userdata($user['id'])->user_email;
                            },
                            'schema'          => null,
                        )
                    );
                

Then I issue 2 simple post requests using python to create 2 accounts with the same email,as follows:

import base64
import requests
import json

url='https://mywebsite.com/wp-json/wp/v2/users'

from Load_Credentials import user,password

credentials = user + ':' + password
token = base64.b64encode(credentials.encode())
header = {'Authorization': 'Basic ' + token.decode('utf-8'),'Content-Type': 'application/json','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}


#first POST request with same email
x1={"username": "newuser1","email":"[email protected]","password":"check123"}
x1=json.dumps(x1)
x1=json.loads(x1)
r1=requests.post(url+'?status=publish',headers=header,json=x1)

#second post request with same email
x2={"username": "newuser2","email":"[email protected]","password":"check123"}
x2=json.dumps(x2)
x2=json.loads(x2)
r2=requests.post(url+'?status=publish',headers=header,json=x2)

This is the response I'am getting:

{'code': 'existing_user_email', 'message': 'Sorry, that email address is already used!', 'data': None}

Is there a way to allow creating 2 accounts with the same email ONLY when using the rest api. (normal registration procedure should continue to flag duplicate emails)

I appreciate your support on this matter.

Share Improve this question asked Feb 18, 2022 at 7:05 The OracleThe Oracle 971 silver badge12 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 0

I don't think it's possible. Using rest API or not do not change the fact WordPress is preventing it AT https://github.com/WordPress/wordpress-develop/blob/5.9/src/wp-includes/user.php#L2032

发布评论

评论列表(0)

  1. 暂无评论