Desarrollo de complementos de WordPress: ¿no se puede eliminar la tabla de la base de datos después de la desactivación del complemento?

1 minuto de lectura

avatar de usuario
jimmyatascado

Estoy tratando de eliminar la tabla de la base de datos creada cuando se activa mi complemento personalizado. Estoy usando básicamente el mismo código, solo una consulta de caída. Sin embargo, ¡la mesa no se caerá!

He confirmado lo siguiente:

  • El usuario de la base de datos de WP tiene privilegios para eliminar tablas (lo confirmé ejecutando la consulta sql en el banco de trabajo)
  • Se está llamando a la consulta y es correcta (utilicé ‘die ($ sql)’ para generar la consulta, luego la ejecuté en el banco de trabajo)

    function my_plugin_remove_database() {
         global $wpdb;
         $table_name = $wpdb->prefix . "my_plugin_table";
         $sql = "DROP TABLE IF EXISTS $table_name;";
         //die($sql);
         require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
         dbDelta( $sql );
         delete_option("my_plugin_db_version");
    }
    register_deactivation_hook( __FILE__, 'my_plugin_remove_database' );
    

avatar de usuario
Faishal

Usar $wpdb->query() en vez de dbDelta()

function my_plugin_remove_database() {
     global $wpdb;
     $table_name = $wpdb->prefix . "my_plugin_table";
     $sql = "DROP TABLE IF EXISTS $table_name;";
     $wpdb->query($sql);
     delete_option("my_plugin_db_version");
}

register_deactivation_hook( __FILE__, 'my_plugin_remove_database' );

dbDelta() no es compatible MESA PLEGABLE consulta.

  • ¡Excelente! Funcionó perfectamente, no sabía que dbDelta no admitía Drop. ¡Gracias!

    – JimmyJammed

    3 de junio de 2013 a las 17:31

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad