Pour une raison quelconque, mon crochet d’activation ne crée pas de nouvelle table de base de données.
Code:
function mm_booking_activate() {
global $wpdb;
$mm_booking_table_name = $wpdb->prefix . "mm_booking";
$mm_booking_db_version = '1.0';
$charset_collate = $wpdb->get_charset_collate();
if ( $wpdb->get_var( 'SHOW TABLES LIKE ' . $mm_booking_table_name ) != $mm_booking_table_name ) {
$sql = "CREATE TABLE $mm_booking_table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
first_name varchar(255),
last_name varchar(255),
address varchar(255),
lat decimal(10, 8) NOT NULL,
lng decimal(11, 8) NOT NULL,
field enum('option1', 'option2', 'option3'),
phone_number varchar(255),
email varchar(255),
date_time_from datetime DEFAULT CURRENT_TIMESTAMP,
date_time_to datetime DEFAULT CURRENT_TIMESTAMP,
status enum('pending', 'approved', 'rejected') DEFAULT 'pending',
modification_time datetime ON UPDATE CURRENT_TIMESTAMP,
creation_time datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
add_option( 'mm_booking_db_version', $mm_booking_db_version );
}
}
register_activation_hook( __FILE__, 'mm_booking_activate' );
Le nom de la table doit figurer entre guillemets sur la ligne sur laquelle vous vérifiez son existence. Je l'ai testé, et après que cela ait été corrigé, la table a été créée avec succès. Voici le code complet:
function mm_booking_activate() {
global $wpdb;
$mm_booking_table_name = $wpdb->prefix . "mm_booking";
$mm_booking_db_version = '1.0';
$charset_collate = $wpdb->get_charset_collate();
if ( $wpdb->get_var( "SHOW TABLES LIKE '{$mm_booking_table_name}'" ) != $mm_booking_table_name ) {
$sql = "CREATE TABLE $mm_booking_table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
first_name varchar(255),
last_name varchar(255),
address varchar(255),
lat decimal(10, 8) NOT NULL,
lng decimal(11, 8) NOT NULL,
field enum('option1', 'option2', 'option3'),
phone_number varchar(255),
email varchar(255),
date_time_from datetime DEFAULT CURRENT_TIMESTAMP,
date_time_to datetime DEFAULT CURRENT_TIMESTAMP,
status enum('pending', 'approved', 'rejected') DEFAULT 'pending',
modification_time datetime ON UPDATE CURRENT_TIMESTAMP,
creation_time datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
add_option( 'mm_booking_db_version', $mm_booking_db_version );
}
}
register_activation_hook( __FILE__, 'mm_booking_activate' );