Quiero modificar una función en un complemento. Se declara en el archivo principal del complemento de esta manera:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Agregue llamado desde allí así:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Supongo que sería posible reemplazarlo si tuviera acceso a la clase en functions.php. Entonces podría escribir algo como esto:
$wcpgsk = new WCPGSK_Main;
remove_action( 'woocommerce_email_after_order_table', array($wcpgsk, 'wcpgsk_email_after_order_table') );
function customized_wcpgsk_email_after_order_table($order) {
...
}
add_action( 'woocommerce_email_after_order_table', array($wcpgsk, 'customized_wcpgsk_email_after_order_table') );
Mi pensamiento para obtener acceso a la clase en el archivo functions.php era incluir el archivo donde se declara la clase en functions.php:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Pero esto no funciona porque el archivo del complemento se incluye cuando el complemento se inicializa en WordPress, supongo.
¿Hay alguna manera de reescribir la función sin tocar los archivos del complemento?