Question

I have installed WordPress and the plugin contact form 7 in it.

To make it a multi-page contact form I have installed Contact Form 7 Multi-Step Forms as well. Everything works fine until yet. Even the mail gets sent.

The problem I am having is, that I want to run some PHP-code before the emails get sent.

I have inserted this code to try the ability of the plugin to run it.

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);

The function even works fine when I run it outside of the plugin in an extra php-file.

Now I cannot figure out why the function does not work when inserted in the plugin?

Was it helpful?

Solution 2

wordpress create tabel using this way not in php structure for connect:

More info hear for create, get table data for 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 );
}

OTHER TIPS

Query database in wordpress using it's global wpdb object like this way

Refer this

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

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

+1 for Rave Patel

I only suggest that you check if the table exists before trying to create it everytime.

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 );
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top