html设置表单地址信息,动态设置Contact Form 7表单的收件人地址

本文介绍如何通过添加自定义代码到WordPress的主题中,实现在不同页面上动态更改ContactForm7表单的收件人地址。此方法利用了jQuery来捕获页面上的电子邮件地址,并通过PHP脚本来更新表单的收件人。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多个页面共享一个contact form 7表单,希望每个页面表单的收件人根据页面信息而定,比如从custom field里读取一个email地址,可以使用下面的方法实现,代码放入主题的functions.php。

创建contact表单

创建表单没什么特殊的地方,平时怎么写现在还怎么写,收件人地址写一个固定的邮箱作为备用地址,当某个页面无法找到一个有效的收件人地址时,则发信到该邮箱。

插入contact表单

插入表单时,为了容易识别,给表单加一个html id,shortcode类似下面这样[contact-form-7 id="1478" title="Contact form 1" html_id="contact-form-1478"]

用javascript添加收件人地址

用jquery创建一个隐藏字段,存储收件人地址// 保证加载jquery

function load_jquery(){

wp_enqueue_script( 'jquery' );

}

add_action( 'wp_enqueue_script', 'load_jquery' );

// 在footer打印待执行脚本,创建隐藏字段

function print_script(){

?>

jQuery(document).ready(function($){

// 这个收件人地址用jquery从html dom某个元素抓取也好

// 用WordPressd get_post_meta函数获取也没问题,不管怎样搞个地址过来

var to_email = 'xxxx@gmail.com';

// 创建隐藏字段

$('#contact-form-1478').append(' ');

})

}

add_action( 'wp_footer', 'print_script');

用php动态更改收件人地址add_action("wpcf7_before_send_mail", "wpcf7_custom_email_template");

function wpcf7_custom_email_template(&$wpcf7_data) {

// 只处理id为1478的表单,1478是刚才创建的表单的id

if ($wpcf7_data->id == 1478) {

// “to-email” 是input字段的name

$to = $wpcf7_data->posted_data['to-email'];

if( !empty($to) && is_email($to) ){

// 如果email地址合法,更改表单的收件人地址

$wpcf7_data->mail['recipient'] = $to;

} else {

// 没找到email,或者email不合法,在信息里加上点说明

$wpcf7_data->mail['body'] .= "\n No recipient found";

}

}

}

这样就可以动态更改收件人地址了。

另外一种方法是,直接在form模版里创建收件人这个字段,to地址用shortcode写,在用js动态更改收件人字段的内容。只是这样没法设置备用地址,如果js被禁用,就什么也发不出去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值