根据配置文件自定义字段更改用户用户名



我创建了一个名为Company Name的自定义字段,我用它在我的自定义注册页面上的用户注册后更新该字段

 update_usermeta($user_id, 'user_company_name', $company_name);

我使用此代码插入用户

            $userdata = array(
                'user_login' => $email,
                'user_email' => $email,
                'user_pass' => $random_password,
                'first_name' => $first_name,
                'last_name' => $last_name,
                'role' =>  $custom_role,
            );
  $user_id = wp_insert_user($userdata);

我想做的是基于$company_name创建用户用户名,我知道它就像将'user_login' => $email,更改为'user_login' => $company_name,一样简单但是公司名称有时太长了,包括符号,斜杠,破折号,链接单词等,我只想使用下划线传播的前2个单词...因此,例如,如果用户公司名称为(stack&amp&溢出),我希望用户名成为stack_overflow。

还可以将其应用于当前成员吗?

源:http://php.net/manual/en/function.explode.php

使用PHP的爆炸功能请参见此示例:

<?php
// Example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// Example 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>

删除特殊字符&amp;用_

替换空间
function removeSpecial($string) 
{
   $string = str_replace(' ', '_', $string); // Replaces all spaces with UnderScore.
   return preg_replace('/[^A-Za-z0-9-]/', '', $string); // Removes special chars.
}

呼叫功能:

   echo removeSpecial("stack & Overflow");

首先,我们用空间代替下划线,然后从字符串中删除特殊字符。

最新更新