Nuestro último proyecto fue un Woocommerce, donde me tocó modificar varias funcionalidades del propio Woocommerce para adaptarlas al especial funcionamiento que debía tener la tienda.
Para evitar que una actualización de Woocommerce, se cargue todas las modificaciones que yo hago, debía sobreescribir los archivos en una carpeta especial del Theme que estábamos utilizando y después deshabilitar el widget original, para que cargase el modificado por mí. Os digo cómo hacerlo:
1. Copio el archivo de la clase donde está el widget.
2. Dentro de la carpeta de mi Theme, habrá un directorio llamado «woocommerce», debo crear una carpeta nueva dentro llamada «widgets» si no la hay ya: woocommerce/widgets.
3. Cambio el nombre al archivo (por ejemplo custom_elnombreoriginal.php).
4. Lo abro, extiendo mi nueva clase de la que ya existe, y sólo dejo la función widget():
Ej:
}
}
5. En mi archivo functions.php deshabito el que viene por defecto y activo el mío.
Ej:
function override_woocommerce_widgets() {
include_once( ‘woocommerce/widgets/custom-wc-widget-brand-nav.php’ );
register_widget( ‘Custom_WC_Widget_Brand_Nav’ );
}
}
Listo!