2

私は、Wordpress の複雑さと OOO コードにすぐに夢中になってしまう PHP 手続き型の男です。サイトで実行されている Contact Form 7 プラグインの単純なハックと思われるものを試していますが、成功していません。

Contact Form 7 のクラスの 1 つで exec 呼び出しを実行しようとしています:

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が、Contact Form 7 が非常に不満でした (送信ボタンを押すとスピンするだけです)。

4

2 に答える 2

0

問題は所有権/許可でした。Apache の下の Wordpress には、スクリプトを実行したり、ログ ファイルに書き込む権限がありませんでした。これらの権限が修正されると、正常に機能しました。

于 2013-03-25T05:43:02.430 に答える
0

Contact Form 7 をハックする必要はまったくありません。CF7 フックを使用するだけです ...

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

関数.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;
}
于 2018-01-17T21:13:07.253 に答える