Verfasste Forenbeiträge

Ansicht von 15 Antworten - 31 bis 45 (von insgesamt 105)
  • 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.

    Man kann den beispielsweise einen eigenen Walker definieren. In einem anderen Forum gab’s dazu schon einen Thread. Alternativ kann man auch mit JavaScript ähnliche Ergebnisse erzielen…

    Cheers,
    Dennis.

    Kannst Du uns einen Link zur Verfügung stellen, wo wir das Plugin sehen können und vielleicht noch einen weiteren zu Deiner Website?

    Cheers,
    Dennis.

    Nein, nichts weiter. Plugins hast Du ja schon deaktiviert und die wp-config.php ausgetauscht. Da bleibt leider nicht mehr viel übrig…

    Sucuri meint zumindest, dass die Domain möglicherweise kompromittiert wurde. Siehe im unteren Teil nach den Fehlermeldungen (Payloads).

    Kannst Du uns den Link zu Deiner Seite geben?

    In welchem Format gespeichert wird, kann man meist im Editor einstellen. Welchen benutzt Du denn?

    Eventuell solltest Du auch einen Sicherheitscheck in Betracht ziehen: http://sitecheck.sucuri.net/

    Hi,

    let’s talk in German here. 😉

    Für mich sieht das so aus, als wenn Du im CSS nur die Selektoren anpassen musst:

    h1.archive-title, .archive-meta p {
        font-family: Oswald;
    }

    Cheers,
    Dennis.

    In den Fehlermeldungen beschweren sich einige Dateien über die wp-config.php. Schau mal, ob sich vor dem <?php noch Leerzeichen oder anderes befindet, da sollte nichts weiter sein. Wenn nicht, kontrolliere bitte, ob Du eventuell die wp-config.php als UTF-8 mit BOM gespeichert hast (sollte ohne BOM sein).

    Cheers,
    Dennis.

    Hast Du kürzlich was am Theme verändert? Wenn Du nach der Zeichenkette „wp_handle_upload“ in der functions.php suchst, findet sich da etwas?

    Wenn nicht, dann kontrolliere doch einmal mit dem FTP-Programm, ob die Dateien überhaupt im /wp-content/uploads-Ordner angekommen sind.

    Das kann ganz viele Gründe haben.

    Spontan fällt mir – durch die von Dir beschriebenen Symptome – ein Fehler ein, den ich kürzlich bei einem Projekt korrigiert habe. Da wurde versehentlich

    function my_analyse_attachment( $media ) {
        if ( 'text/csv' == $media['type'] ) {
            // ...
        }
    }
    add_action( 'wp_handle_upload', 'my_analyse_attachment' );

    verwendet. Aber es ist eigentlich ein Filter (und keine Aktion) und muss dementsprechend den ersten Parameter wieder zurückgeben:

    function my_analyse_attachment( $media, $upload_type ) {
        if ( 'text/csv' == $media['type'] ) {
            // ...
        }
        return $media;
    }
    add_filter( 'wp_handle_upload', 'my_analyse_attachment', 10, 2 );

    Vielleicht hilft das ja…

    Wird ein „Fatal Error“ ausgelöst stoppt das Script an der Stelle. Das ist natürlich nicht so Klasse, weil das bei einer Seite dazu führt, dass man nur einen Teil sieht oder nur die berühmte „weiße“ Seite dargestellt bekommt. Bei einer AJAX-Anfrage ist das ähnlich. Das JavaScript stoppt an der Stelle oder – weil ein Resultat fehlt – wird keine Aktualisierung oder ähnliches ausgeführt.

    PHP beschwert sich ja in Deinem Fall darüber, dass es die Funktion send_origin_headers() nicht finden kann. Die gibt es aber seit der Version 3.4 von WordPress. Ich nehme aber an, dass Deine Installation aktuell ist, oder?

    Ich hab mir eben mal die Seite angeschaut und die Console vom Firebug aufgemacht. Es werden 2 AJAX requests ausgelöst. Die erste Anfrage via GET macht WordFence, die 2. via POST macht WooCommerce. Beide erzeugen einen identischen Fatal Error:

    <br />
    <b>Fatal error</b>:  Call to undefined function send_origin_headers() in <b>/home/**********/public_html/wp-admin/admin-ajax.php</b> on line <b>22</b><br />

    Da würde ich persönlich vermutlich zuerst mal kontrollieren, was eigentlich Sache ist.

    Cheers,
    Dennis.

    Das Problem ist ja meist, dass jeder Hoster ein anderes Setup hat. Bei den meisten Anbietern muss man sich mit solchen Problemen gar nicht ‚rumärgern, das funktioniert halt einfach.

    Inzwischen gibt es ja genug Anbieter, die Dir den Zugang über ssh gestatten und wo DU dann selbst noch nacharbeiten kannst. Meiner bietet sogar einen Deploy mittels git an.

    Nein, true ist nur für Entwickler gedacht. Bei Dir sollte das aus sein.

    Cheers,
    Dennis.

    Kontrolliere einfach mal die Datei wp-config.php im Hauptverzeichnis. Gibt es da eine Zeile

    define( 'WP_DEBUG', true );

    dann ändere die bitte in

    define( 'WP_DEBUG', false );

    Dann ist der Spuk vorbei.

    Cheers,
    Dennis.

Ansicht von 15 Antworten - 31 bis 45 (von insgesamt 105)