我创建了一个名为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");
首先,我们用空间代替下划线,然后从字符串中删除特殊字符。