WordPress no reconoce la función durante la activación del complemento

1 minuto de lectura

Recibo este error cuando intento activar mi complemento:

call_user_func_array() espera que el parámetro 1 sea una devolución de llamada válida, la función ‘fancy_lists_create_table’ no se encuentra o el nombre de la función no es válido en /Applications/XAMPP/xamppfiles/htdocs/intranet/wp-includes/plugin.php en la línea 525

Este fue el resultado de un complemento que depura el error “xxx caracteres de salida inesperada” que se ve comúnmente. No entiendo por qué la función no es válida. Código a continuación:

namespace fancy_lists; 
register_activation_hook( __FILE__, 'fancy_lists_create_table' );

function fancy_lists_create_table(){
    global $wpdb;

    $table_name = $wpdb->prefix.'fancy_lists';

    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {

        $charset_collate = $wpdb->get_charset_collate();

        $sql = "CREATE TABLE $table_name (
          id mediumint(9) NOT NULL AUTO_INCREMENT,
          created datetime DEFAULT NOW() NOT NULL,
          created_by text NOT NULL,
          list_name text NOT NULL,
          column_config text NOT NULL,
          permissions text NOT NULL,
          notifications text NOT NULL,
          UNIQUE KEY id (id)
        ) $charset_collate;";

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

}

avatar de usuario de wpclevel
nivelwpc

register_activation_hook() no es consciente del espacio de nombres. Debes especificarlo:

register_activation_hook( __FILE__, __NAMESPACE__ . '\fancy_lists_create_table' );

  • ¡Gracias, me salvaste el día! Tuve el mismo caso y WordPress no arrojó ningún error ni ninguna indicación para dar alguna pista. ¡Gracias de nuevo!

    – Diméntica

    16 de junio de 2022 a las 6:26

¿Ha sido útil esta solución?