Ich möchte eine Funktion in einem Plugin ändern. Es wird in der Hauptdatei des Plugins wie folgt deklariert:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Add von dort wie folgt aufgerufen:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Ich denke, es wäre möglich, es zu ersetzen, wenn man Zugriff auf die Klasse in functions.php hätte. Dann könnte ich so etwas schreiben:
$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') );
Mein Gedanke, einen Zugriff auf die Klasse in der Datei functions.php zu erhalten, war, die Datei einzuschließen, in der die Klasse in functions.php deklariert ist:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Dies funktioniert jedoch nicht, da die Datei des Plugins enthalten ist, wenn das Plugin in WordPress initialisiert wird.
Gibt es eine Möglichkeit, die Funktion neu zu schreiben, ohne die Dateien des Plugins zu berühren?