Bonjour à tous !

Je suis bloqué depuis une journée sur un code dans Wordpress, vous êtes mon dernier espoir.

J'ai créé un plugin dont l'une des premières actions est de créer une table dans ma base de données.

Voici mon code :

//Creating Database
register_activation_hook( FILE, 'create_mysql_table' );

$table_name = "ABCD";

function create_mysql_table()
{
global $wpdb;
global $table_name;

$sql = "CREATE TABLE IF NOT EXISTS $table_name (
          id int(11) NOT NULL AUTO_INCREMENT,
          email varchar(50) NOT NULL,
          civilite varchar(10) NOT NULL,
          nom varchar(50) NOT NULL,
          prenom varchar(50) NOT NULL,
          societe varchar(150) NOT NULL,
          telephone varchar(50) NOT NULL,
          telephone2 varchar(50) NOT NULL,
          dateCreation varchar(20) NOT NULL,
          dateModification varchar(20) NOT NULL,
          source varchar(20) NOT NULL,
          ipAddress varchar(20) NOT NULL,
          PRIMARY KEY (id)
    )DEFAULT CHARSET=utf8;";

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );

}

?>

Mon problème : aucune table ne se crée en raison de $table_name ! Il le considère comme une variable vide ou inexistante.
Lorsque je teste en mettant :

....CREATE TABLE IF NOT EXISTS "blabla"...

Là ma table est bien créée !

Je pensais avoir mal manipulé la variable globale... Pourtant, quelques lignes plus loin, j'ai une autre fonction :

function subscribers_panel(){
global $wpdb;
global $table_name;
?>
<div class="wrap theme-options-page">
<h1>Inscriptions <?=$table_name;?></h1>
Etc...

Là mon $table_name est bien affiché : "ABCD" !!!

Je ne comprends plus rien.

Aidez-moi please !!!!

Aucune réponse