Support » Allgemeine Fragen » wp_usermeta import und export

  • Hallo,

    leider hat die Sufu nichts ergeben, deshalb versuche ich es mal über einen Eintrag.
    Ich steige derzeit von einem Moodleportal in ein wordpress unterstütztes Schulungsportal um. Klappt auch soweit mit einigen Anpassungen die schnell umgesetzt waren. Ich habe eine sehr große Anzahl an Nutzern die ich auch ohne Probleme inkl. Passwörtern in die wp_users importieren konnte. Jetzt kommt mein großes Problem , die Struktur bzw. der Aufbau der wp_usermeta in der Datebank von WordPress. Um es kurz zu fassen, wie bekomme ich meine Nutzer Mata Daten (liegen derzeit als ganz normale Exceltabelle vor) in das WordPress, habe schon einige Plugins probiert, leider waren alle nicht in der Lage (Cimy User Manager, Export User Data, Import User Meta Data from CSV, Import Users from CSV, Import users from CSV with meta), das umwandeln in csv wäre möglich, für mich wäre sehr wichtig (auf Grund der großen Anzahl an Nutzern und deren Metadaten), dass die Form als Tabelle (1 Spalte beinhaltet alle Informationen des jeweiligen Nutzers) beibehalten wird. Außer es gibt einen usermeta generator,indem ich einfach alle Daten reinkopieren kann. Für Hilfe wäre ich sehr dankbar, vielleicht gibt es ja jemanden, der schon einmal eine große Anzahl an Meta Daten für die jeweiligen Nutzer eines Portals importiert hat.

    Gruß

    Manuel

Ansicht von 1 Antwort (von insgesamt 1)
  • Persönlich würde ich das eher selber schreiben, weil es auch nicht so schwer ist (ich habe in Deinem Profil gesehen, dass Du Entwickler bist) und sich das Resultat viel besser steuern lässt. Am besten bringst Du die ganze Geschichte in einem separaten Plugin unter, dann kannst Du das leicht wieder nach dem Import deaktivieren. Hier mal die Teile von einem meiner Imports, die sich verallgemeinern lassen…

    Upload von CSV in Media erlauben…

    namespace REALLOC\my_import;
    
    function upload_mimes( $existing_mimes = array() ) {
        $existing_mimes['csv'] = 'text/csv';
        return $existing_mimes;
    }
    add_filter( 'upload_mimes', __NAMESPACE__ . '\\upload_mimes' );

    … und wenn dann CSV abgeladen wird, darauf reagieren:

    function analyse_attachment( $media ) {
        if ( 'text/csv' == $media['type'] ) {
            if ( false !== ( $handle = fopen( $media['file'], 'r' ) ) ) {
                $row = 0;
                while ( false !== ( $data = fgetcsv( $handle ) ) ) {
                    /**
                     * Dein Code hier
                     */
                    $row++;
                }
            }
            fclose( $handle );
        }
        return $media;
    }
    add_action( 'wp_handle_upload', __NAMESPACE__ . '\\analyse_attachment' );

    In der Funktion vorher, wird die CSV-Datei Zeile für Zeile abgearbeitet. Um den User zu erstellen und ihm Metadaten zuzuweisen, mache ich in etwa so etwas hier:

    $user_id = username_exists( $username );
    if ( ! $user_id ) {
        // existiert nicht und wird angelegt
        $user_id = wp_create_user( $username, $password, $email );
        add_user_meta( $user_id, 'abc', $abc, true );
    }
    else {
        // existiert und wird aktualisiert
        $user = get_user_by( 'id', $user_id );
        update_user_meta( $user_id, 'abc', $abc );
    }

    Cheers,
    Dennis.

Ansicht von 1 Antwort (von insgesamt 1)
  • Das Thema „wp_usermeta import und export“ ist für neue Antworten geschlossen.