Я хочу змінити функцію в плагіні. Він оголошується в головному файлі плагіна так:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Додати дзвінки звідти так:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Я думаю, можна було б замінити його, якби мав доступ до класу у function.php. Тоді я міг би написати щось подібне:
$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') );
Моя думка отримати доступ до класу у файлі function.php полягала в тому, щоб включити файл, де клас оголошений у function.php:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Але це не працює, оскільки файл плагіна входить, коли плагін ініціалізується в WordPress, я думаю.
Чи є спосіб переписати функцію, не торкаючись файлів плагіна?