2013-03-24 4 views
1

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

Я пытаюсь сделать вызов EXEC в одном из Contact Form 7 по классам:

сор-содержание/плагины/контакт-форма-7/включает/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 очень несчастной (она просто вращается, когда я нажимаю кнопку отправки).

+0

Вы уверены, вы отправляете правильную ссылку на скрипт? Вы уверены, что у скрипта нет ошибок? –

+0

Вы просто пытаетесь обойти любую проблему, с которой столкнулись, когда вы пытались добавить функцию в 'classes.php'? Если это так, я предлагаю попытаться решить эту проблему, а не пытаться исправить обходной путь. – ultranaut

+0

Да, да. Сценарий печатает на stdout с помощью print_r и записывает в файл журнала с помощью error_log./usr/bin/php /var/www/html/record_subscription_change.php -s subject -r получатель Array ( [s] => субъект [r] => получатель ) –

ответ

0

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

0

Вы не должны взломать контактную форму 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; 
}