Wordpress Contact Form 7 взлом

Я процедурный парень php, который быстро теряется в сложности Wordpress и кода ООО. Я пробую то, что, как я думаю, представляет собой простой взлом плагина Contact Form 7, работающего на сайте, и у меня ничего не получается.

Я пытаюсь выполнить вызов exec в одном из классов контактной формы 7:

wp-content / plugins / contact-form-7 / includes / classes.php (строка 549):

if ( $send ) {
    exec ("/usr/bin/php /var/www/html/record_subscription_change.php  -s $subject -r $recipient -b $body");
    return @wp_mail( $recipient, $subject, $body, $headers, $attachments );
}

По сути, я пытаюсь вызвать внешний скрипт php и передать ему переменные. Я попытался создать свою собственную функцию в classes.php, и это очень огорчило контактную форму 7 (она просто вращается, когда я нажимаю кнопку отправки).


person rusty_it    schedule 24.03.2013    source источник
comment
Вы уверены, что отправляете правильную ссылку на скрипт? Вы уверены, что в скрипте нет ошибок?   -  person What have you tried    schedule 25.03.2013
comment
Вы просто пытаетесь обойти проблему, с которой столкнулись, когда пытались добавить функцию в classes.php? Если это так, я бы посоветовал попытаться решить эту проблему, а не пытаться исправить обходной путь.   -  person ultranaut    schedule 25.03.2013
comment
Да, я сделал. Сценарий выводит на стандартный вывод с помощью print_r и записывает в файл журнала с помощью error_log. / usr / bin / php /var/www/html/record_subscription_change.php -s subject -r Массив получателей ([s] = ›subject [r] =› получатель)   -  person rusty_it    schedule 25.03.2013


Ответы (2)


Проблема в том, что проблема заключалась в праве собственности / разрешениях. Wordpress под apache не имеет разрешения на выполнение сценария или запись в файл журнала. Как только эти разрешения были исправлены, все заработало.

person rusty_it    schedule 25.03.2013

Вам вообще не нужно взламывать Contact Form 7, просто используйте крючок CF7 ...

http://hookr.io/plugins/contact-form-7/#index=a

functions.php

add_action('wpcf7_mail_sent', 'action_wpcf7_mail_sent', 10, 1);
function action_wpcf7_mail_sent($contact_form) { 
    $submission = WPCF7_Submission::get_instance();
    if($submission) {
        $mail_temp = $contact_form->prop('mail');
        $mail = wpcf7_mail_replace_tags($mail_temp);
        $subject = $mail['subject'];
        $recipient = $mail['recipient'];
        $body = $mail['body'];
        exec ("/usr/bin/php /var/www/html/record_subscription_change.php  -s $subject -r $recipient -b $body");
    }
    return $contact_form;
}
person Scotty G    schedule 17.01.2018