簡體   English   中英

聯系表格7 - 無法運行php

[英]contact form 7 - cannot run php

我已經在其中安裝了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文件中運行插件外,該功能甚至可以正常工作。

現在我無法弄清楚為什么函數插入插件時不起作用?

使用像這樣的全局wpdb對象在wordpress中查詢數據庫

請參閱此

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

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

wordpress使用這種方式創建tabel而不是在php結構中進行連接:

更多信息,了解創建,獲取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 );
}

Rave Patel為+1

我建議您在每次嘗試創建表之前檢查表是否存在。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM