Je souhaite modifier une fonction dans un plugin. Il est déclaré dans le fichier principal du plugin comme ceci:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Ajoutez appelé à partir de là comme ceci:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Je suppose qu'il serait possible de le remplacer s'il avait un accès à la classe dans functions.php. Ensuite, je serais en mesure d'écrire quelque chose comme ça:
$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') );
Ma pensée pour obtenir un accès à la classe dans le fichier functions.php était d'inclure le fichier où la classe est déclarée dans functions.php:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Mais cela ne fonctionne pas parce que le fichier du plugin est inclus lorsque le plugin est initialisé dans WordPress, je suppose.
Existe-t-il un moyen de réécrire la fonction sans toucher aux fichiers du plugin?