实际上我想要做的是我想将自定义字段值发送到电子邮件。
我在帖子类型中创建了一个简单的表单,只有在这个表单的前端显示,用户可以输入电子邮件和电话号码。提交后,一封邮件发送给网站所有者,一封邮件发送给业主,一封邮件发送给该特定用户的电子邮件ID。
这三封邮件都有不同的内容
现在问题是
当我提交时,没有。每个人收到的邮件等于没有。的帖子 例如我有3个帖子&当我点击一个项目并提交时,它会发送所有项目的详细信息。我希望将其限制为一个。
网站所有者和业主获取正确的信息,但最终用户无法获取自定义字段值,自定义字段来自高级自定义字段插件。
是否有人可以解决这些问题。?
谢谢
这是代码
<div class="column one">
<?php $pack= new WP_Query(array('post_type'=>'packer'));?>
<?php while($pack-> have_posts()): $pack->the_post();?>
<?php
$post = get_post( $post );
$title = isset( $post->post_title ) ? $post->post_title : '';
$usermail=$_POST['email'];
$cellno=$_POST['cellno'];
$phone=the_field('phone');
$pdesc=the_field('description');
if(isset($usermail) && isset($cellno)){
$to = 'siteowner@site.com';
$subject = 'New Enqiry for'. $title;
$body ="The enquiry for $title <br>Customer email is: $usermail<br> Customer Phone is: $cellno";
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $body, $headers );
$to = 'businessowner@business.co.in';
$subject = 'New Customer Enquiry';
$body ="The enquiry by $usermail <br>Cellno is: $cellno";
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $body, $headers );
$to = $usermail;
$subject = 'Details For $title';
$body ="Phone $phone <br>Desc is: $pdesc";
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $body, $headers );
}
?>
<div class="column one-fourth">
<h1><?= the_title();?></h1>
<?php $post_id= get_post()->ID;?>
<img src="<?php the_field('logo');?>" />
<a href="#desc-<?= $post_id;?>" class="fancybox">
<input type="button" name="Details" value="DON'T PRESS THIS BUTTON"/>
</a>
<div style="display:none" class="fancybox-hidden">
<div id="desc-<?= $post_id;?>">
<?php the_field('description');?>
<?php the_field('phone');?>
<form action="" method="POST">
<input type="text" placeholder="Phone" name="cellno" id="cellno">
<input type="email" placeholder="Email" name="email" id="email">
<input type="submit" value="Send" name="send" id="send">
</form>
</div>
</div>
</div>
<?php endwhile; ?>
答案 0 :(得分:0)
使用get_field()
代替the_field()
来正确分配变量。 the_
回应它。
那是:
$phone = get_field('phone');
$pdesc = get_field('description');
电子邮件的问题是因为您在循环中发送了电子邮件。这意味着它正在检查是否为每个循环设置了if(isset($usermail) && isset($cellno)){
,即帖子的数量。
通过传递帖子ID并确认它来解决此问题。 将当前的post_id添加到表单中:
<input type="hidden" name="postID" value="<?php echo $post_id; ?>">
并检查它是否等于循环中的当前帖子ID。
if(isset($usermail) && isset($cellno) && isset($_POST['postID']) && $_POST['postID'] == $post->ID){