联系表格7 - 无法运行php

时间:2014-05-06 07:49:08

标签: php wordpress plugins contact-form

我已在其中安装了WordPress和插件contact form 7

要使其成为多页联系表单,我也安装了Contact Form 7 Multi-Step Forms。 一切正常,直到现在。甚至邮件都会被发送。

我遇到的问题是,我希望在发送电子邮件之前运行一些PHP代码。

我已插入此代码以尝试插件运行它的能力。

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

当我在一个额外的php文件中运行插件外,该函数甚至可以正常工作。

现在我无法弄清楚插入插件后该功能无效的原因?

3 个答案:

答案 0 :(得分:3)

在wordpress中使用它的全局wpdb对象查询数据库

Refer this

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

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

答案 1 :(得分:2)

使用这种方式

wordpress创建表格不是用于连接的php结构:

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

答案 2 :(得分:0)

+1 Rave Patel

我建议您在每次尝试创建表之前检查表是否存在。

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