Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei einer Meta-Box in Wordpress

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem bei einer Meta-Box in Wordpress

    Hallo,

    habe ein Problem mit einem PHP-Skript. Irgendwie funktioniert das Abschicken über den Submit Button nicht ganz. Das Skript wird in einem Wordpress CMS genutzt. Das Skript befindet sich in der functions.php

    PHP-Code:
    function email_build_meta_box( ){

        echo 
    sprintf '<input type="%s" value="%s" />'submitEinreichen );    
        echo 
    sprintf '<input type="%s" name="%s" value="%s" />'hiddenbutton_pressed1);    

        if(isset(
    $_POST['button_pressed'] ))
        {
            global 
    $post;    
            echo 
    "Willst du den Bericht zu <strong>"get_the_title() . "</strong> einreichen?";

            
    $to "test@gmx.de";
            
    $subject "***Tests.DE*** - Vergleich freischalten";
            
    $post_type ucfirst get_post_type$post->ID ) );    
            
    $author_id $post->post_author;
            
    $author_firstname get_the_author_meta'first_name'$author_id); // Vorname des Autors
            
    $author_lastname get_the_author_meta'last_name'$author_id);

            
    $headers  "MIME-Version: 1.0\r\n";
            
    $headers .= "Content-type: text/html; charset=utf-8 \r\n";
            
    $headers .= "From: Freigabe@test.de";
            
    $message "<html>";
            
    $message .= "<head>";
            
    $message .= "<hr /><h1>Neuen Vergleich freischalten</h1><hr />";
            
    $message .= "<h2>Name der Produkt-Kategorie: " $post_type "</h2><hr />";
            
    $message .= "</head>";
            
    $message .= "<body>";    
            
    $message .= "<h3>Name des Vergleichs: " get_the_title() . "</h3><hr />";
            
    $message .= "<h4>Eingereicht / Erstellt von: " $author_firstname " " $author_lastname "</h4>";        
            
    $message .= "</body>";
            
    $message .= "</html>";    

            
    mail($to$subject$message$headers);
        }    


    Vielen Dank im Voraus.

    VG

  • #2
    Zitat von cmi89 Beitrag anzeigen
    Irgendwie funktioniert das Abschicken über den Submit Button nicht ganz.
    Geht das auch genauer??

    PHP-Code:
    echo sprintf '<input type="%s" value="%s" />'submitEinreichen );    
        echo 
    sprintf '<input type="%s" name="%s" value="%s" />'hiddenbutton_pressed1); 
    Und das ist völliger Quatsch.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Ja, klar =)

      Nach der Betätigung des "Submit-Buttons" lädt die Wordpress-Seite neu und in einer Info-Box steht dann nur "Beitrag aktualisiert". Allerdings müsste zumindest das
      PHP-Code:
      echo "Willst du den Bericht zu <strong>"get_the_title() . "</strong> einreichen?"
      ausgeführt werden...

      Der ganze
      PHP-Code:
      if(isset($_POST['button_pressed'] )) 
      - Teil wird übesprungen

      Kommentar


      • #4
        Aber nur dann, wenn
        PHP-Code:
        $_POST['button_pressed'
        auch tatsächlich gesetzt ist, und das sehe ich nicht.
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          Ok, wie kann ich das Problem lösen? Ich drücke doch "Submit", dann ist es doch gesetzt oder nicht?

          Kommentar


          • #6
            Drehe mal das Error-Reporting hoch und/oder sieh' dir mal den HTML-Code an, den der Browser bekommt.

            Und noch mal Posting #2 lesen.
            Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

            Kommentar


            • #7
              HTML-Code:
              <form action="" method="post">
              <input type="text" name="button_pressed" />
              <input type="Submit" value="Absenden" />
              </form>
              Mein Lösungsvorschlag =)

              Kommentar


              • #8
                Wenn du unbedingt das button_pressed übermitteln musst als gesetzter Wert, dann mach es doch gleich als Hidden:

                HTML-Code:
                <input type ="hidden" name="button_pressed">
                oder einfacher wäre der direkte Weg:

                HTML-Code:
                <input type="Submit" name="button_pressed" value="Absenden">
                .

                Kommentar


                • #9
                  Hallo,

                  ja habe bereits beide Alternative versucht. Ich glaube mein Problem liegt nicht am Button, sondern am Wordpress. Es speichert keinen Wert - habe es mir mal mit
                  PHP-Code:
                  print_r($_POST); 
                  ausgeben lassen und der Array bleibt immer leer! Ich muss
                  PHP-Code:
                  $_POST['button_pressed'
                  zwischenspeichern, da diese "Variable" beim Neuladen der Seite einfach gelöscht wird. Das Problem soll wohl bekannt sein, nur habe ich noch keine vernünftige Lösung gefunden.

                  Gibt es da eine elegante Lösung den Inhalt irgendwie zwischenzuspeichern, sodass ich eine Abfrage mit
                  PHP-Code:
                  if(isset($_POST['button_pressed'] )) 
                  (oder soetwas ähnlichem) durhcführen kann? Wie gesagt der Array
                  PHP-Code:
                  print_r($_POST); 
                  ist immer
                  leer.

                  Kommentar


                  • #10
                    http://forum.wpde.org/plugins-und-wi...es-script.html

                    Doppelpost

                    Kommentar


                    • #11
                      Und wie da schon drauf hingewiesen, nutze eine Mailerklasse, wie bspw. PHPMailer oder SwiftMailer.

                      [MOD: Thread geschlossen, CrossPost]
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar

                      Lädt...
                      X