Eu quero modificar uma função em um plugin. É declarado no arquivo principal do plug-in assim:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Adicione chamadas de lá assim:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Eu acho que seria possível substituí-lo se tivesse acesso à classe em functions.php. Então eu seria capaz de escrever algo como isto:
$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') );
Meu pensamento para obter um acesso à classe no arquivo functions.php era incluir o arquivo em que a classe é declarada no functions.php:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Mas isso não funciona porque o arquivo do plug-in é incluído quando o plug-in está sendo inicializado no WordPress, eu acho.
Existe uma maneira de reescrever a função sem tocar nos arquivos do plug-in?