繁体   English   中英

替换来自functions.php的插件函数

[英]Replace a plugin function from functions.php

我有使用此功能发送电子邮件的插件

    function em_event_added_email($EM_Event){
    if( !$EM_Event->get_status() && get_option('dbem_bookings_approval') && get_option('dbem_event_submitted_email_admin') != '' ){
        $admin_emails = explode(',', get_option('dbem_event_submitted_email_admin')); //admin emails are in an array, single or multiple
        $subject = $EM_Event->output(get_option('dbem_event_submitted_email_subject'));
        $message = $EM_Event->output(get_option('dbem_event_submitted_email_body'));
        //Send email to admins
        $EM_Event->email_send( $subject,$message, $admin_emails);
    }
}
add_action('em_event_added','em_event_added_email', 10, 1);

我希望能够从主题functions.php替换此功能,以便我可以自定义$message输出,目的是将HTML数据添加到此插件发送的所有电子邮件的页脚中,因此,除了替换该功能外,还有其他方法会更好

插件有那个功能吗? 如果插件没有过滤器(请在插件中查找apply_filters),则可以通过删除原始钩子来替换它:

remove_action('em_event_added','em_event_added_email', 10, 1);

然后在主题的php(函数或包含项)中创建自己的函数,并用您自己的函数名称替换函数名称,并将其以相同的优先级粘贴在同一钩子中。

function yourprefix_new_em_event_added_email($EM_Event){
    if( !$EM_Event->get_status() && get_option('dbem_bookings_approval') && get_option('dbem_event_submitted_email_admin') != '' ){
        $admin_emails = explode(',', get_option('dbem_event_submitted_email_admin')); //admin emails are in an array, single or multiple
        $subject = $EM_Event->output(get_option('dbem_event_submitted_email_subject'));
        $message = $EM_Event->output(get_option('dbem_event_submitted_email_body'));
        //Send email to admins
        $EM_Event->email_send( $subject,$message, $admin_emails);
    }
}
add_action('em_event_added','yourprefix_new_em_event_added_email', 10, 1);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM