Контактная форма 7 - не может запустить 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-файле.
Теперь я не могу понять, почему функция не работает при вставке в плагин?
3 ответа
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 );
}
Запросите базу данных в WordPress, используя ее глобально wpdb
объект как этот путь
Отослать это
function testfunc( $cf7 )
{
global $wpdb;
$wpdb->query("CREATE TABLE `aaaaaaaaaaa` ( test VARCHAR(30))");
}
add_action( 'wpcf7_before_send_mail', 'testfunc', 1);
+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 );
}
}