Multisite – Neuen Blog und User mit PHP anlegen

Manchmal muss man einen User programmatisch anlegen. z.B. wenn der Kunde mit PayPal bezahlt hat und du dann über IPN über die erfolgreiche Zahlung informiert wirst.

Bei einem Multisite Projekt musste ich einen neuen Blogseite mit einen User anlegen.
Dieser Artikel zeigt dir wie das geht.

User anlegen

Zuerst legst du den User an.  Dazu verwendest du den Befehl wpmu_create_user (für Singlesite wp_create_user). Als Parameter  wird der Username, das Passwort und die E-Mail angegeben.
Zurück bekommst du die Id des neuen Datensatzes oder im Fehlerfall ein FALSE. Eine genaue Fehlermeldung erhältst du in diesem Fall nicht. Bei wp_create_user bekommst du im Fehlerfall ein WP_Error Object mit einer detailierten Fehlermeldung zurück.

$result = wpmu_create_user($user_name,$password,$user_email);
if (is_int($result))
{
  $user_id = $result;
}
else
{
  echo "User {$user_name} konnte nicht angelegt werden."
}

Blog anlegen

Als nächstes wird der neue Blog angelegt. Dazu verwendest du den Befehl wpmu_create_blog.

Hast du bei der Installation deiner Multisite Unterverzeichnis gewählt, dann muss $domain die Domain der Multisite und $path das Unterverzeichnis des neuen Blogs sein (z.B. ‚meine-seite.de‘ und ‚/blog1/‘). Bei einer Subdomain Installation muss $domain die Subdomain + deiner Multisitedomain (z.B. ‚blog1.meine-seite.de‘) und $path ‚/‘ sein.

Als Titel gibst du die Überschrift an, die in der Kopfzeile des neuen Blogs erscheinen soll.

Bei $user_id kannst du die Id des Kunden oder  1 angeben, wenn der Superadministrator Zugriff auf den neuen Blog haben soll.

Über $meta kannst du Metainformationen wie Vorname, Nachname, etc. als Key-Value Array übergeben.

Die $site_id bestimmt welche Multisite die Elternseite sein soll. Sie ist normalerweise immer 1 (~ die Domain der Multisite).

Als Rückgabewert erhältst du die Id des neuen Datensatzes oder im Fehlerfall ein WP_Error Object.

$domain = 'blog1.meine-seite.de';
$path = '/';
$title = 'blog1';
$user_id = 1;
$meta = '';
$site_id = 1;
$result = wpmu_create_blog($domain,$path,$title,$user_id,$meta,$site_id);
if (is_int($result))
{
  $site_id = $result;
}
else
{
  echo $result->get_error_message();
}

User und Blog verbinden

Wenn du bei  wpmu_create_blog als $user_id=1 angegeben hast, musst du den Blog noch mit dem User verknüpfen. Dies geschieht mit dem Befehl add_user_to_blog.

Mit $role bestimmst du welche Rechte der User für den Blog bekommen soll. Mögliche Werte sind ‚subscriber‘, ‚contributor‘, ‚author‘, ‚editor‘ und ‚administrator‘

Als Rückgabewert erhältst du die Id des neuen Datensatzes oder im Fehlerfall ein WP_Error Object.

$role = 'administrator';
$result = add_user_to_blog($site_id,$user_id,$role);
if (is_int($result))
{
  $user_blog_id = $result;
}
else
{
  echo $result->get_error_message();
}

 

Hinterlassen Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *