WordPress — заменить функцию плагина из функций. Переполнение стека

У меня есть плагин, который отправляет электронную почту с помощью этой функции

    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 в нижний колонтитул всех писем, отправленных этим плагином, так что если есть другой способ, чем замена функции, было бы лучше

0

Решение

Плагин имеет эту функцию? Если плагин не имеет фильтра (ищите 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);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector