如何通过Contact Form 7获取自定义字段$referansno的取值
Contact Form 7 获取自定义字段值的实现方法
共有三种可选方案,你可以根据自己的需求选择:
方案一:使用CF7内置特殊标签(无需额外写PHP代码,最简便)
如果你要嵌入表单的页面就是对应自定义字段所属的文章/自定义文章类型详情页,直接在CF7的邮件模板里调用内置的自定义字段标签即可:
- 管理员通知邮件/用户自动回复模板中直接添加:
[_post_meta._propertyforsale_referansno]
就可以直接输出该字段的取值,不需要额外添加功能代码。
注意:该方案仅适用于表单嵌入到对应自定义字段所属的单篇文章/自定义文章详情页的场景,如果表单是全局悬浮、或者放在其他非详情页使用,选择后面两种方案即可。
方案二:表单添加隐藏字段动态传值
如果你需要在表单提交前就把值存在字段里(比如要做前端判断、或者统计需要),可以按下面步骤操作:
- 第一步:将以下代码添加到当前主题的
functions.php文件,或者自定义功能插件的代码文件中:
// 注册获取参考编号的短代码 function custom_get_referansno() { global $post; return get_post_meta( $post->ID, '_propertyforsale_referansno', true ); } add_shortcode( 'get_referansno', 'custom_get_referansno' ); // 允许CF7表单中解析短代码 add_filter( 'wpcf7_form_elements', 'do_shortcode' );
- 第二步:在CF7表单编辑界面,添加隐藏字段调用上述短代码:
[hidden referansno default:get_referansno]
- 第三步:在邮件模板中使用
[referansno]标签即可调用该值。
方案三:提交时动态注入值(不需要修改表单结构)
如果你不想修改现有表单结构,可以直接通过钩子在表单提交时注入字段值:
- 把以下代码添加到
functions.php中:
add_action( 'wpcf7_before_send_mail', 'add_referansno_to_cf7_mail' ); function add_referansno_to_cf7_mail( $contact_form ) { $submission = WPCF7_Submission::get_instance(); if ( ! $submission ) return; global $post; $referansno = get_post_meta( $post->ID, '_propertyforsale_referansno', true ); // 把值添加到邮件可用标签中,直接在邮件模板用[referansno]调用即可 $submission->add_posted_data( 'referansno', $referansno ); }
内容的提问来源于stack exchange,提问作者fahrettin alphan özel
相关产品推荐
相关产品推荐

