[英]How can I override function of plugin 's class in Wordpress ?
I want to override function get_post() in class EM_Tickets of plugin Event Manager 我想在插件事件管理器的EM_Tickets类中覆盖函数get_post()
class EM_Tickets extends EM_Object implements Iterator{
/**
* Retrieve multiple ticket info via POST
* @return boolean
*/
function get_post(){
// something here
return apply_filters('em_tickets_get_post', count($this->errors) == 0, $this);
}
}
so I create my own plugin and put below codes but no luck, don't know why it's not working although I read and follow some manuals likes Is it possible to replace a function within a PHP class? 所以我创建了自己的插件,并在下面的代码中放上了代码,但是没有运气,尽管我阅读并遵循了一些类似手册,但不知道为什么它不起作用? 是否可以在PHP类中替换函数?
class EM_Tickets_Child extends EM_Tickets implements Iterator{
public function get_post(){
file_put_contents('log.txt', 'in child class', FILE_APPEND | LOCK_EX);
//something here
}
}
You have a filter (apply_filters) on the original code. 您在原始代码上有一个过滤器(apply_filters)。 You just need to hook and create a function to override the returns value, no needs to extends the plugin class, but it's another way to do.
您只需要钩子并创建一个函数来覆盖返回值,无需扩展插件类,但这是另一种方法。
add_action('em_ticket_get_posts', array('Em_tickets', 'my_new_get_post), 10, 2);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.