通过短代码WordPress

时间:2019-02-07 10:11:05

标签: php wordpress contact-form-7

我正在使用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"]

有可能吗?

或者可以使用标题并将其添加到输入字段或表单的电子邮件中吗?

2 个答案:

答案 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动态文本扩展”插件。