Contact Form][
WordPressのメールフォームプラグイン。こちらからダウンロードできる。
インストール方法は、圧縮ファイルを解凍、できたフォルダを/wp-content/plugins/にアップロード。管理画面のプラグインから有効化する。メールフォームを挿入したいところに「[CONTACT-FORM]」と書けば、メールフォームが挿入される。
日本語化ファイルのwpcf-ja.moは、wp-config.phpでの言語設定(WPLANG)が'ja'ではなく'ja_UTF'の場合は、wpcf-ja_UTF.moとファイルネームを変更する必要がある。
初期設定ではフォーム項目は「名前」「メールアドレス」「題名」「メッセージ」だが、/wp-content/plugins/wp-contact-form/wp-contactform.phpの中を書き換えることで、変更はできる。
変更箇所は
/wp-content-plugins/wp-contact-form/wp-contactform.php, line14-
$wpcf_strings = array( 'name' => '<div class="contactright"><input type="text" name="wpcf_your_name" id="wpcf_your_name" size="30" maxlength="50" value="' . $_POST['wpcf_your_name'] . '" /> (required)</div>', 'email' => '<div class="contactright"><input type="text" name="wpcf_email" id="wpcf_email" size="30" maxlength="50" value="' . $_POST['wpcf_email'] . '" /> (required)</div>', 'subject' => '<div class="contactright"><input type="text" name="wpcf_subject" id="wpcf_subject" size="30" maxlength="50" value="' .$_POST['wpcf_subject'] . '" /> (required)</div>', 'msg' => '<div class="contactright"><textarea name="wpcf_msg" id="wpcf_msg" cols="'.get_option('wpcf_textarea_cols').'" rows="'.get_option('wpcf_textarea_rows').'" >' . $_POST['wpcf_msg'] . '</textarea></div><br />', 'carbon_copy' => '<div class="contactright" id="carbon_copy"><input type="checkbox" name="carbon_copy" value="true" /></div>', 'error' => '');
line143-
$name = $_POST['wpcf_your_name']; $email = $_POST['wpcf_email']; $carbon_copy = $_POST['wpcf_carbon_copy']; $subject = $_POST['wpcf_subject']; $msg = $_POST['wpcf_msg']; $browser = $_SERVER['HTTP_USER_AGENT']; if ($_POST['carbon_copy'] == 'true') { $headers = "MIME-Version: 1.0\n"; $headers .= "From: $name <$email>\n"; $headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n"; $headers .= "Bcc: $recipient\n"; $fullmsg .= wordwrap($msg, 76, "\n") . "\n\n"; $fullmsg .= "\n----------------------------------------------------------------------------\n"; $fullmsg .= "Sender info:\n\n"; $fullmsg .= "IP: " . getip(). " <http://ws.arin.net/whois/?queryinput=".getip().">\n"; $fullmsg .= "Browser/OS: " . wordwrap($browser, 76, "\n\t ") . "\n"; $fullmsg .= "----------------------------------------------------------------------------\n"; wp_mail($email, $subject ." ". $subj_suffix, $fullmsg, $headers); } else { $headers = "MIME-Version: 1.0\n"; $headers .= "From: $name <$email>\n"; $headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n"; $fullmsg .= wordwrap($msg, 76, "\n") . "\n\n"; $fullmsg .= "\n----------------------------------------------------------------------------\n"; $fullmsg .= "Sender info:\n\n"; $fullmsg .= "IP: " . getip(). " <http://ws.arin.net/whois/?queryinput=".getip().">\n"; $fullmsg .= "Browser/OS: " . wordwrap($browser, 76, "\n\t ") . "\n"; $fullmsg .= "----------------------------------------------------------------------------\n"; wp_mail($recipient, $subject ." ". $subj_suffix, $fullmsg, $headers); }
に追加した項目を書き加える。
実際のフォーム表示はline180以降
<form action="' . get_permalink() . '#c_form_2" method="post"> <div class="contactleft"><label for="wpcf_your_name">' . __('Your Name: ', 'wpcf') . '</label></div>' . $wpcf_strings['name'] . ' <div class="contactleft"><label for="wpcf_email">' . __('Your Email:', 'wpcf') . '</label></div>' . $wpcf_strings['email'] . ' <div class="contactleft"><label for="wpcf_subject">' . __('Subject:', 'wpcf') . '</label></div>' . $wpcf_strings['subject'] . ' <div class="contactleft"><label for="wpcf_msg">' . __('Your Message: ', 'wpcf') . '</label></div>' . $wpcf_strings['msg'] . ' <div class="contactleft"><label for="carbon_copy">' .__('Send a copy to yourself?', 'wpcf') . '</label></div>'. $wpcf_strings['carbon_copy'] . ' <div class="contactright"><input type="submit" name="Submit" value="Send Message" id="contactsubmit" /><input type="hidden" name="wpcf_stage" value="process" /></div> </form>
なので、こちらも追加が必要。
以上。
必須項目チェックはline69以降のwpcf_check_input()で行われているので、変更した項目が必須の場合はこちらの変更も必要になります。
また、送信されたメールが文字化けする場合は、nippon pluginを利用すると、文字化け回避できる場合もあるようです。
セレクトボックスなど通常valueに直接値を書き込むものの場合、そのまま設定すると文字化けする原因になるので、
例えば
$optionvalue_1 = "設定値1"; $optionvalue_2 = "設定値2"; $wpcf_strings = array( 'approachstart' => '<div class="contactright" id="selectbox"><select name="wpcf_selectbox" id="wp_selectbox"> <option value="' . $optionvalue_1 . '">設定値1 <option value="' . $optionvalue_2 . '">設定値2</select></div>', 'error' => '');
のようにすると文字化けを回避できるっぽい。