Support » Plugins » Autoren-Name anzeigen bei selbsterstelltem PlugIn

  • Hallo an alle,

    ich habe ein Problem, für das ich Hilfe benötige, da ich selbst keine Lösung finden kann.

    Ich habe eine Seite übernommen, auf der ein selbst erstelltes Plugin von jemandem vorher erstellt wurde.
    Mit dem Standard-Plugin „Contact Form 7“ kann man auf der Seite Beiträge erstellen. ( https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )
    Über das selbst erstellte Plugin „Contact Form 7 extender“, wird der Beitrag im Hintergrund über einen PHP-Code generiert. (https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)

    So sollte es funktionieren:
    Wenn ein Benutzer nicht eingeloggt ist, wird der Autor zu „Hyperspace_Bot“.
    Ist ein Benutzer eingeloggt, wird der Autorenname des Benutzers angezeigt.

    Nun das Problem:
    Wenn ein eingeloggter Benutzer einen Beitrag über das Kontaktformular erstellt, wird kein Autor angezeigt….
    (https://gyazo.com/b51653a1c5fc08b875a50b926c7565d3)
    (https://gyazo.com/54e4067ecf1227831898a79e1577affa)
    Wie Sie auf den Screenshots sehen können, ist wieder kein Autor eingetragen. Derzeit muss ich sie immer nachträglich manuell eingeben.

    Hier ist der wichtige Teil des Codes des Plug-ins:

    add_action('wpcf7_before_send_mail', 'createPostData' );
    
    function createPostData() {
             //get user id
             //$user = get_userdatabylogin('myusername');
             //$user = get_user_by('login', $user_login);
             //$udi = $user->ID;
    
             get_currentuserinfo();
    
             if ($_POST['aut'] == '') {
                     // Create post object
                     $my_post = array(
                             'post_title' => $_POST['title'],
                             'post_content' => $_POST['Description'],
                             'post_status' => 'pending',
                             'post_author' => 3,
                             'post_category' => array($_POST['postcategory'])
                     );
             } else {
                     $my_post = array(
                             'post_title' => $_POST['title'],
                             'post_content' => $_POST['Description'],
                             'post_status' => 'publish',
                             //'post_author' => $user,
                             'post_author' => $user_ID,
                             'post_category' => array($_POST['postcategory'])
                     );
             }

    Das Problem ist mit ‚post_author‘ => $user_Id $User_ID im zweiten Teil denke ich…. Ich habe schon verschiedene Möglichkeiten mit get_current_user_id() oder $author_id = get_the_author_meta( ‚ID‘ ) ausprobiert, kann aber keine Lösung finden.

    Wenn jemand eine Idee hat, wäre ich sehr dankbar!

    Vielen Dank im Voraus.

    Mit freundlichen Grüßen
    Fabian`

    Ganze Plugin: https://pastebin.com/8RFRPRLw

    • Dieses Thema wurde geändert vor 9 Monaten, 1 Woche von fabian296.
    • Dieses Thema wurde geändert vor 9 Monaten, 1 Woche von fabian296.
    • Dieses Thema wurde geändert vor 9 Monaten, 1 Woche von fabian296.
    • Dieses Thema wurde geändert vor 9 Monaten, 1 Woche von fabian296.
    • Dieses Thema wurde geändert vor 9 Monaten, 1 Woche von fabian296.
    • Dieses Thema wurde geändert vor 9 Monaten, 1 Woche von fabian296.
    • Dieses Thema wurde geändert vor 9 Monaten, 1 Woche von fabian296.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Gibt es die Möglichkeit, das ganze Plugin zu sehen – als GitHub-Repo oder auf Pastebin?

    Thread-Starter fabian296

    (@fabian296)

    Ich habe es hier hochgeladen und nochmals im Post hinzugefügt. Ich hoffe es ist richtig so, da ich vorher noch nie pastebin benutzt habe. Danke!
    https://pastebin.com/8RFRPRLw

    Ui. Die Eingabe wird aus $_POST direkt übernommen, ohne die zu escapen?
    Da würde ich nochmal jemand drüber schauen lassen.

    Auch dass Veröffentlichung oder Einreichung von einem $_POST-Parameter abhängt, halte ich für eine sehr fragwürdige Methode.

    Bei der Zeile 'post_author' => $user_ID, ergibt sich die Frage, wo die Variable $user_ID gefüllt wird.

    Ich würd da wie gesagt nochmal jemand draufschauen lassen, der sich ein bisschen mit PHP (idealerweise vielleicht auch mit WordPress) auskennt. Du hast sicher Verständnis, dass es nicht unser Ziel hier ist, auf Zuruf Plugins zu erstellen. Aber darum hast du ja auch nicht gebeten.

    @fabian296 wie ich dir schon auf stackexchange geschrieben habe. Dein Code ist ein Sicherheitsalbtraum und erlaubt es recht easy deine Seite zu manipulieren und sehr wahrscheinlich auch zu übernehmen.

    Ich empfehle dir dringend auf ein Plugin wie https://de.wordpress.org/plugins/post-my-contact-form-7/ zu wechseln

    Thread-Starter fabian296

    (@fabian296)

    Ohje, das klingt nicht gut. Schonmal danke euch beiden!
    Leider kenne ich mich mit PHP bzw. Programmieren nur sehr wenig aus…
    Die Seite baue ich für jemanden, der sich noch weniger auskennt und wie schon erwähnt wurde das Plug-In von jemanden anderes erstellt.

    @pixolin Ja genau das ist das Problem bei Post_Author, dass ich versuche zu lösen. Wenn ich diese Variable mit dem tatsächlichen Authoren-Name füllen könnte, würde es denke ich funktionier, dass der richtige Autor angezeigt wird.

    @michi91 Ich denke früher oder später werde ich auf das Plug-In wechseln müssen! Nur ist die Frage wann, da ich das Problem schnell lösen muss und ich vermute die Seite etwas umbauen müsste, falls ich das PlugIn benutze

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Das Thema „Autoren-Name anzeigen bei selbsterstelltem PlugIn“ ist für neue Antworten geschlossen.