[英]Wordpress Contact form 7 set recipient from custom shortcode
我不能讓它工作。 而且似乎不可能獲得該過程的任何真實文檔。
我的functions.php 中有一個自定義短代碼,它從外部API 獲取電子郵件地址。 我想在 WPCF7 的“TO”(即收件人)字段中使用此短代碼。 但它不斷給我一個“語法錯誤”的錯誤警告。
我需要找到一種方法讓收件人字段接受我的 functions.php 文件中的自定義短代碼。
我試過動態文本插件,但它不起作用。
這是我的短代碼示例
function single_email() {
global $contact;
return $contact->email;
}add_shortcode( 'contact_email', 'single_email' );
也許沿着使用“wpcf7_special_mail_tags”和“do_shortcode()”的路線? 雖然不太確定它是如何工作的。
使用 WPCF7 4.4.2 版。
你能檢查下面的代碼嗎?
wpcf7_add_shortcode('contact_email', 'single_email', true);
function single_email(){
global $contact;
return $contact->email;
}
您可以像這樣在wp_options
表中創建新字段並像這樣使用。
在您的聯系方式頁面上
<div class="contant">
<div class="section">
<div class="contact_pannel">
<h1>You can find us literally anywhere, just push a button and we’re there</h1>
<div class="lf_pannel">
<form action="" method="" id='myForm' onsubmit=" return pretendValidation(); ">
<h2>Use this form to send us a message:</h2>
<div class="fild">
<label class="label">Name</label>
<input name="Name" type="text" class="input">
</div>
<div class="fild">
<label class="label">Email</label>
<input name="Email" type="email" class="input" required=required >
</div>
<div class="fild">
<label class="label">Company</label>
<input name="Company" type="text" class="input">
</div>
<div class="fild">
<label class="label">Subject</label>
<input name="Subject" type="text" class="input">
</div>
<div class="fild">
<label class="label">Message</label>
<textarea class="input" style="height:90px;" id='Message'></textarea>
</div>
<input name="submitt" type="submit" id="submitt" style="display:none;">
<a href="javascript:void(0);" class="send_button margin_right23" onclick="document.getElementById('mailed').style.display = 'none'; document.getElementById('submitt').click();" >Send Message</a>
</form>
<div class=" wpcf7-display-none " id="mailed" role="alert">Your message was sent successfully. Thanks.</div>
</div>
<div class="rg_pannel">
<?php echo html_entity_decode( get_option('admin_address') );?>
</div>
</div>
</div>
</div>
<script>
function pretendValidation(){
jQuery(document).ready(function($) {
// We'll pass this variable to the PHP function example_ajax_request
var fruit = 'Banana';
// console.log($( "#myForm" ).serialize());
// This does the ajax request
$.post( "<?=get_template_directory_uri () ;?>/contact_ajax.php",
{ myForm: $( "#myForm" ).serialize(), Message: $( "#Message" ).val() },
function( data ) {
console.log( data ); // John
});
$('#myForm')[0].reset();
$( "#mailed" ).show( "slow" );
});
return false;
}
</script>
之后你必須像這樣創建ajax頁面
contact_ajax.php
<?php
/** Load WordPress Bootstrap */
require_once ( '../../../wp-load.php' );
// echo "1232".site_url();
// print_r($_REQUEST);
$params = array();
parse_str($_REQUEST['myForm'], $params);
$params['Message']= $_REQUEST['Message'];
// print_r($params);
$to = get_option('your_email_field_name');
// $to = "demo@youremail.in";
$subject = 'Fokus Tech Contact Form';
$message = "Hello,\n"
."Name: ".$params ['Name']."\n"
."Email: ". $params ['Email']."\n"
."Company: ".$params ['Company']."\n"
."Subject: ". $params ['Subject']."\n"
."Message: ".$params['Message'] ."\n"
;
$headers = 'From: no-repaly@you.com' . "\r\n" .
'Reply-To: no-repaly@you.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.