2016-12-21 3 views
0

ich ein benutzerdefiniertes Feld erstellt Firmennamen genannt, und ich verwende diese das Feld nach der Benutzerregistrierung auf meinem benutzerdefinierten Seiteändern Benutzer Benutzername auf Profil benutzerdefiniertes Feld basierend

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

anmelden zu aktualisieren und ich einfügen Benutzer dies mit

Code
  $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); 

, was ich will tun, ist, basierte Benutzerbenutzernamen zu erstellen, die auf $company_name, ich weiß, es so einfach wie 'user_login' => $email, zu 'user_login' => $company_name, aber Firmennamen sind manchmal zu lange zu ändern, einschließlich Symbole, Schrägstrich, Bindestrich, verknüpfende Wörter ... usw., und ich möchte nur die ersten 2 Wörter verwenden, die durch Unterstriche unterteilt sind ... also zum Beispiel wenn Benutzer Firmenname ist (The Stack & Überlauf), möchte ich den Benutzernamen werden Paketüberfluss.

Gibt es auch eine Möglichkeit, dies auf aktuelle Mitglieder anzuwenden?

+0

Verwenden Sie regulären Ausdruck –

Antwort

0

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

PHPs explodieren Funktion dieses Beispiel sehen:

<?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; // * 

?> 
+0

Es ist nicht fest, dass "" immer da –

0

Sonderzeichen entfernen & Raum ersetzen _

function removeSpecial($string) 
{ 
    $string = str_replace(' ', '_', $string); // Replaces all spaces with UnderScore. 

    return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. 
} 

Anruffunktion:

echo removeSpecial("stack & Overflow"); 

Zuerst ersetzen wir Unterstrich durch Leerzeichen und entfernen dann Sonderzeichen aus Zeichenfolge.

+0

Nun, wie kann ich das genau den obigen Code verwenden und die Anzahl der Wörter auf 2 begrenzen? –

+0

@Ali_k Sie können sagen, dass das Wort beginnt mit Leerzeichen rechts –

+0

Entschuldigung, ich habe nicht verstanden, sagen wir, ich werde diese '$ company_name = $ cp_name;' der Firmenname ist "Stack und Überlauf mit Firma X" Ich nur will es stack_overflow in der Variablen $ cp_name –

Verwandte Themen