Bir eklenti bir işlevi değiştirmek istiyorum. Eklentinin ana dosyasında şöyle bildirilir:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
Oradan böyle ekle ekleyin:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
Fonksiyonlar sınıfına erişim olsaydı değiştirmek mümkün olurdu sanırım. Sonra böyle bir şey yazabilirim:
$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') );
Benim sınıflar function.php dosyasında bir erişim elde etmek benim düşüncem sınıf function.php içinde bildirildiği dosyayı dahil etmek oldu:
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
Ama bu çalışmıyor çünkü eklenti WordPress'te başlatıldığında eklentinin dosyası dahil, sanırım.
Eklentinin dosyalarına dokunmadan işlevi yeniden yazmanın bir yolu var mı?