Support » Allgemeine Fragen » usermeta key hinzufügen, sofern nicht vorhanden

  • Gelöst bsdsupp

    (@bsdsupp)


    Hallo an alle,

    ich habe eine seite auf der sich user anmelden können.
    Ich habe kürzlich ein neues Plugin installiert.
    Vor der Installation waren bereits Mitglieder registriert; nach der Installation haben sich auch Mitglieder registriert.
    Jetzt ist es so dass die neu registrierten User ein key/value pair mehr in die blabla_usermeta-Datenbank gespeichert bekommen. Für dieses neue key/value pair ist das neue Plugin verantwortlich.
    Soweit so gut…

    Jetzt möchte gerne ein anderes (drittes) Plugin auf diesen Wert in der Datenbank zugreifen und schauen welchen Wert er hat.
    Bei Neuer-User, hat dieser Wert zum Beispiel „50“ (Beispiel Key „Kg“).
    Bei Alter-User, ist dieser Wert ja gar nicht in der Datenbank vorhanden.

    Das heißt dass das dritte Plugin jetzt berechtigt bei „alten Usern“ den Dienst verweigert.

    Gibt es nun die Möglichkeit alle User durchzulaufen und ein Key/Value Pair anzulegen sofern noch keiner existiert und diesen mit einem Standard-Value zu versehen?

    Damit würde das dritte Plugin problemlos weiterarbeiten können.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Moderator Michi91

    (@michi91)

    
    <?php
    $users = get_users( );
    // Array of WP_User objects.
    
    foreach ( $users as $user ) {
        if (!metadata_exists( 'user', $user->ID, "Kg" ) ) {
             add_user_meta($user->ID, 'Kg', '50', true);
         }
    }

    Mit diesem Codeschnipsel wäre das möglich. Mit heißer nadel gestrickt, geht sicher auch ohne das if, aber ich mache mir nun nicht die Mühe das zu testen 😀

    Thread-Starter bsdsupp

    (@bsdsupp)

    Hi Michi,
    danke dir für den Code. So einen ähnlichen habe ich bereits auch schon gefunden. Nur noch nicht wie du freundlicherweise (fast) fertig geschrieben.

    Nur stellt sich mir die Frage, wo verwende ich sodann solch einen Code?
    Extra ein eigenes Plugin schreiben, welches im Backend ein Button anzeigt der diesen code feuert?
    Ich wollte ungern so ein einen Overhead schreiben.
    Und irgendwo auf der Seite einbauen, erzeugt ja auch unnötig rechenaufwand. eigentlich müsste es nur einmal von mir kurz angetriggert werden.

    Aber wäre für zukünftige eventualitäten ganz cool wenn man solche codeschnipsel im backend speichern und bei bedarf manuell feuern könnte.

    Moderator Michi91

    (@michi91)

    Es reicht wenn du den Code einfach in ein Plugin packst und das Plugin aktivierst. Dann wird der Code ja direkt ausgeführt und der Metakey gesetzt. Danach kannst du das Plugin wieder deaktivieren.

    Thread-Starter bsdsupp

    (@bsdsupp)

    ah ok, das ist eine gute Möglichkeit…

    überlege ich mir mal oder vlt. doch etwas mehr mühe geben und gleich in cronjobs einbinden… hab auch grad simultan diese anleitung gefunden:
    https://tobier.de/wordpress-plugin-erstellen-so-einfach-geht-es/

    Danke dir für deine Hilfe!!

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Das Thema „usermeta key hinzufügen, sofern nicht vorhanden“ ist für neue Antworten geschlossen.