我需要动态数量的输入字段,即联系人表单7中的问题和答案,以及我的自定义表单字段。它是根据问题集生成的,适合候选人。它可以是1,也可以是10。这是我添加的内容,只是为了简短。我对所有内容进行了硬编码,而不是显示数据库查询和循环
add_action( \'wpcf7_init\', \'my_questions_field\' );
function my_questions_field() {
wpcf7_add_form_tag( \'my_questions\', \'my_custom_question_form_tag_handler\' , array( \'name-attr\' => true ) );
}
function my_custom_question_form_tag_handler( $tag ) {
$input =\'<label>Ques1?</label><input value="Ques1?" name="tag[]" type="hidden">\';
$input .= \'<input name="ans[]" type="text" value="ans1">\';
$input .= \'<label>Ques2?</label><input name="tag[]" value="Ques2?" type="hidden">\';
$input .= \'<input name="ans[]" type="text" value="ans2">\';
return $input;
}
已添加:
[tag]
[ans]
在联系人表单7中,来自后端的电子邮件
这里需要注意的是,我不知道它将呈现多少个问题,它基于我的一些自定义查询。问题的数量可能在1-10之间变化,甚至更多,这就是我使用此语法的原因。
我收到的电子邮件中的输出是
Ques1?,Ques2?
ans1,ans2
我在电子邮件中需要的是
Ques1: Ans1
Ques2: Ans2
我在contact-form-7/includes/functions中找到了该函数。php
function wpcf7_flat_join( $input ) {
$input = wpcf7_array_flatten( $input );
$output = array();
foreach ( (array) $input as $value ) {
$output[] = trim( (string) $value );
}
return implode( \',\', $output );
}
和电子邮件功能联系方式-form-7/includes/mail。php
private function replace_tags_callback( $matches, $html = false ) {
// allow [[foo]] syntax for escaping a tag
if ( $matches[1] == \'[\' && $matches[4] == \']\' ) {
return substr( $matches[0], 1, -1 );
}
$tag = $matches[0];
$tagname = $matches[2];
$values = $matches[3];
if ( ! empty( $values ) ) {
preg_match_all( \'/"[^"]*"|\\\'[^\\\']*\\\'/\', $values, $matches );
$values = wpcf7_strip_quote_deep( $matches[0] );
}
$do_not_heat = false;
if ( preg_match( \'/^_raw_(.+)$/\', $tagname, $matches ) ) {
$tagname = trim( $matches[1] );
$do_not_heat = true;
}
$format = \'\';
if ( preg_match( \'/^_format_(.+)$/\', $tagname, $matches ) ) {
$tagname = trim( $matches[1] );
$format = $values[0];
}
课堂上
WPCF7_MailTaggedText
但无法找到合适的解决方案
只是希望联系表单7以不同的方式处理来自que和ans标签的输入。