Voglio modificare una funzione in un plugin. È dichiarato nel file principale del plugin in questo modo:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Aggiungi chiamato da lì in questo modo:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Immagino che sarebbe possibile sostituirlo se avesse accesso alla classe in Functions.php. Quindi sarei in grado di scrivere qualcosa del genere:
$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') );
Il mio pensiero di ottenere un accesso alla classe nel file Functions.php era di includere il file in cui la classe è dichiarata in Functions.php:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Ma questo non funziona perché il file del plug-in è incluso quando il plug-in viene inizializzato in WordPress, immagino.
C'è un modo per riscrivere la funzione senza toccare i file del plugin?