[英]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結構中進行連接:
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.