Tôi muốn sửa đổi một chức năng trong một plugin. Nó được khai báo trong tệp chính của plugin như thế này:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Thêm được gọi từ đó như thế này:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Tôi đoán nó sẽ có thể thay thế nó nếu có quyền truy cập vào lớp trong hàm.php. Sau đó, tôi sẽ có thể viết một cái gì đó như thế này:
$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') );
Tôi nghĩ rằng để có được quyền truy cập vào lớp trong tệp tin.php. Bao gồm tệp mà lớp được khai báo trong hàm.php:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Nhưng điều này không hoạt động vì tập tin của plugin được bao gồm khi plugin đang được khởi tạo trong WordPress, tôi đoán vậy.
Có cách nào để viết lại chức năng mà không cần chạm vào các tập tin của plugin không?