entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Extender una clase de un theme de Wordpress usando un plugin

Hola y gracias por adelantado.

Mi problema está al querer extender una clase de un theme (algo complejo) que tiene incorporado un page-builder. Lo que necesito es crear un nuevo módulo de este builder pero usando un plugin, sin tocar el theme origial.

Los módulos del builder son clases extendidas de otra de esta forma:

class ET_Builder_NuevoModulo extends ET_Builder_Module {...}

Muy bien, el problema es que al intentar extender la clase desde el plugin me salta un Fatal Error:

Fatal error: Class 'ET_Builder_Module' not found in ... on line 4

Según tengo entendido, en Wordpress primero se cargan los plugins y luego los themes, por lo que el error tenía lógica ya que la clase aún no había sido declarada por el theme, para solucionar esto, en el archivo principal del plugin, tengo:

function include_new_module() {
    require '.../new-module.php';
}

add_action( 'after_setup_theme', 'include_new_module');

Que supuestamente lograría que el require se haga hasta que la clase esté declarada, pero al volver a probar, nuevamente me salta el mismo Fatal error:

Fatal error: Class 'ET_Builder_Module' not found...

Por lo que parece que la clase aún no se logra declarar antes de la ejecución del plugin ni usando esa función. He intentado hacer un include en mi plugin en el archivo "new-module.php" del archivo original del theme donde se declara la clase, pero entonces me saltan otros muchos errores de funciones aún no declaradas, clases no declaradas, etc. Ya que como decía, es un theme algo complejo de cientos de archivos.

Lo que necesito entonces es hacer que el plugin se cargue después del theme para evitar el error original y entonces si poder extender la clase y poder crear mi módulo personalizado.

Espero que me puedan ayudar. Gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta