我正在使用Contact Fom 7,需要在表单的某处添加自定义文本。
我从高级自定义字段的子字段中获取PHP的自定义文本。我知道,为此有一个名为“ Contact Form 7 Dynamic Text Extension”的额外插件(https://de.wordpress.org/plugins/contact-form-7-dynamic-text-extension/)。但是因为文本在子字段中,所以我不能使用它。
因此,我需要的是隐藏输入字段中或表单生成的电子邮件中的文本。
我认为这是CF7短代码本身中的一个自定义参数。像这样:
[contact-form-7 id="1" title="Title" customtext="Text"]
有可能吗?
或者可以使用标题并将其添加到输入字段或表单的电子邮件中吗?
答案 0 :(得分:2)
您有一个名为“ customtext”的字段作为目标电子邮件地址:
[text* customtext]
要从shortcode属性中获取默认值,请将default:shortcode_attr选项添加到form-tag:
[text* customtext default:shortcode_attr]
然后,在联系表格的简码中添加一个与字段名称相同的属性(在这种情况下为“ customtext”):
[contact-form-7 id="123" title="Contact Form" customtext="xxxxxx@example.com"]
您需要预先注册该属性。
在主题的functions.php文件中添加以下代码段:
add_filter( 'shortcode_atts_wpcf7', 'custom_shortcode_atts_wpcf7_filter', 10, 3 );
function custom_shortcode_atts_wpcf7_filter( $out, $pairs, $atts ) {
$my_attr = 'customtext;
if ( isset( $atts[$my_attr] ) ) {
$out[$my_attr] = $atts[$my_attr];
}
return $out;
}
参考链接:https://contactform7.com/getting-default-values-from-shortcode-attributes/
答案 1 :(得分:1)
首先在php中添加字段
function cf7_add_my_field(){
global $post;
return $post->ID; // Here instead of returning post id, get your meta/submeta field and return that value.
}
add_shortcode('CF7_ADD_MY_FIELD', 'cf7_add_my_field');
现在,在此之后,在您的表单中添加以下内容-
[dynamictext my-filed-name "CF7_ADD_MY_FIELD"]
注意:您需要已经提到的“ Contact Form 7动态文本扩展”插件。