为了账号安全,请及时绑定邮箱和手机立即绑定

WordPress API 传递电子邮件参数

WordPress API 传递电子邮件参数

PHP
慕姐4208626 2022-07-29 16:21:11
如何接收来自休息路线的电子邮件?我想用 register_rest_route 注册一个用户。我需要来自 API 路由的三个参数(用户名、密码、电子邮件)。电子邮件参数的真正正则表达式是什么?add_action('rest_api_init', function () {register_rest_route('user/v2', 'register/(?P<name>[a-zA-Z0-9-]+)/(?P<password>[a-zA-Z0-9-]+)/(?P<email>[a-zA-Z0-9-]+)', [    'method' => 'PUT',    'callback' => 'user_create_callback',    'args' => [        'nema', 'email', 'password'    ]    ]);});function user_create_callback($args){    //smoe validation for entries here    wp_create_user( $args['name'], $args['password'], $args['email'] );    return ['status' => 'user created successfuly'];}
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

据我所知,您的代码中有几个问题。

  1. 你有一个错字argsnema=>name

  2. 您正在使用PUTHTTP 方法,我们通常将其用于更新,在创建 REST 对象时,我们通常使用POST. (您也可以使用WP_REST_SERVER::CREATABLE常量

  3. 您通过查询字符串而不是使用请求正文(表单数据)传递参数

  4. 要验证电子邮件地址,您只需使用 WordPressis_email()功能。

将它们放在一起应该看起来像这样:

<?php


add_action('rest_api_init', function () {

    register_rest_route('user/v2', 'register', [

        'method' => WP_REST_SERVER::CREATABLE,

        'callback' => 'user_create_callback',

        'args' => array (

            'name' => array (

                'required' => true,

                'sanitize_callback' => 'sanitize_text_field'

            ),

            'password' => array (

                'required' => true,

                'sanitize_callback' => 'sanitize_text_field'

            ),

            'email' => array (

                'required' => true,

                'validate_callback' => 'is_email'

            )

        )

    ]);

});


function user_create_callback($args)

{

    wp_create_user( $args['name'], $args['password'], $args['email'] );

    return ['status' => 'user created successfuly'];

}


?>


查看完整回答
反对 回复 2022-07-29
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信