Kontaktformular 7 – PHP kann nicht ausgeführt werden

Lesezeit: 2 Minuten

Benutzer-Avatar
Friedrich

Ich habe WordPress und das Plugin installiert contact form 7 drin.

Dazu habe ich ein mehrseitiges Kontaktformular eingebaut Contact Form 7 Multi-Step Forms auch. Bis jetzt funktioniert alles einwandfrei. Sogar die Post wird verschickt.

Das Problem, das ich habe, ist, dass ich PHP-Code ausführen möchte, bevor die E-Mails gesendet werden.

Ich habe diesen Code eingefügt, um die Fähigkeit des Plugins zu testen, ihn auszuführen.

function testfunc( $cf7 )
{
    mysql_connect("localhost", "user_name", "password") or die(mysql_error());
    mysql_select_db("db_name") or die(mysql_error());
    mysql_query("CREATE TABLE `aaaaaaaaaaa` ( test VARCHAR(30))");
}

add_action( 'wpcf7_before_send_mail', 'testfunc', 1);

Die Funktion funktioniert sogar gut, wenn ich sie außerhalb des Plugins in einer extra php-Datei ausführe.

Jetzt kann ich nicht herausfinden, warum die Funktion nicht funktioniert, wenn sie in das Plugin eingefügt wird?

  • Haben Sie überprüft, ob die Tabelle aaaaaaaaaaa ist bereits vorhanden?

    – Dreher

    6. Mai 2014 um 7:53 Uhr

  • Ja, das möchte ich erreichen und deshalb weiß ich, dass es nicht funktioniert, weil die Tabelle nach dem Ausführen des Skripts nicht existiert

    – Friedrich

    6. Mai 2014 um 7:55 Uhr

  • versuchen Sie es hinzuzufügen or die(mysql_error()); nach mysql_query.

    – Dreher

    6. Mai 2014 um 7:56 Uhr

  • Das Problem ist, dass ich nicht einmal solche Antworten vom Server bekomme. Ich bekomme nichts zurück, weil ich das Ganze in WordPress laufe, während ich ein Formular absende.

    – Friedrich

    6. Mai 2014 um 7:58 Uhr

  • Ist der Parameter $cf7 obligatorisch? Das könnte das Problem sein.

    – Kanischk Dudeja

    14. Mai 2014 um 13:15 Uhr

Benutzer-Avatar
shyammakwana.me

Datenbank in WordPress mit ihrer globalen Datenbank abfragen wpdb Objekt so

Verweisen Sie darauf

function testfunc( $cf7 )
{
    global $wpdb;
    $wpdb->query("CREATE TABLE `aaaaaaaaaaa` ( test VARCHAR(30))");
}

add_action( 'wpcf7_before_send_mail', 'testfunc', 1);

Benutzer-Avatar
Ravi Patel

WordPress erstellt eine Tabelle auf diese Weise nicht in der PHP-Struktur für die Verbindung:

Weitere Informationen hören für erstellen, erhalten Tabellendaten für wp

function testfunc( $cf7 )
{
    global $wpdb;

    $table_name = $wpdb->prefix . 'tablename';

    $sql = "CREATE TABLE IF NOT EXISTS ".$table_name."(
      id int(11) NOT NULL AUTO_INCREMENT,
      name varchar(255) DEFAULT NULL,
      UNIQUE KEY id (id)
    );";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}

+1 für Rave Patel

Ich schlage nur vor, dass Sie jedes Mal überprüfen, ob die Tabelle existiert, bevor Sie versuchen, sie zu erstellen.

function testfunc( $cf7 )
{

    global $wpdb;

    $table_name = $wpdb->prefix . 'tablename';

    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {

        $sql = "CREATE TABLE $table_name (
            id int(11) NOT NULL AUTO_INCREMENT,
            name varchar(255) DEFAULT NULL,
            UNIQUE KEY id (id)
        )";

        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        dbDelta( $sql );
    }
}

1370720cookie-checkKontaktformular 7 – PHP kann nicht ausgeführt werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy