如何在联系人表单7中获取当前URL

时间:2018-01-22 作者:unixmiah

我正在wordpress安装中使用联系人表单7。我需要以某种方式在联系人表单隐藏字段中传递一个带有当前页面url的隐藏字段。我尝试了他们的自定义函数,并尝试了简短的代码,没有运气。

wpcf7_add_shortcode(\'sourceurl\', \'wpcf7_sourceurl_shortcode_handler\', true);

function wpcf7_sourceurl_shortcode_handler($tag) {
    if (!is_array($tag)) return \'\';

    $name = $tag[\'name\'];
    if (empty($name)) return \'\';

    $html = \'<input type="hidden" name="\' . $name . \'" value="http://\' . $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"] . \'" />\';
    return $html;
}
在form edition中我尝试了[sourceurl thesource]

4 个回复
SO网友:Shibi

请参见此示例,了解如何在联系人表单7中创建和解析短代码以使用它add[current_url]

add_action( \'wpcf7_init\', \'wpcf7_add_form_tag_current_url\' );
function wpcf7_add_form_tag_current_url() {
    // Add shortcode for the form [current_url]
    wpcf7_add_form_tag( \'current_url\',
        \'wpcf7_current_url_form_tag_handler\',
        array(
            \'name-attr\' => true
        )
    );
}

// Parse the shortcode in the frontend
function wpcf7_current_url_form_tag_handler( $tag ) {
    global $wp;
    $url = home_url( $wp->request );
    return \'<input type="hidden" name="\'.$tag[\'name\'].\'" value="\'.$url.\'" />\';
}
此外,如果它的所有即将得到的URL在电子邮件中,你不需要所有这些。电子邮件有一个特殊的标签[_url] CF7 Special mail tags

SO网友:Iggy

您可以使用cf7隐藏字段短代码+获取参数:https://contactform7.com/hidden-field/https://contactform7.com/getting-default-values-from-the-context/

在邮件表单中,我使用这样的短代码来获取这些slug

[hidden utm_source default:get]
[hidden utm_medium default:get]
[hidden utm_campaign default:get]
[hidden utm_content default:get]
[hidden gclid default:get]
它还可以与他们的flamingo插件配合使用。和用于邮件模板[_url] 效果很好。

SO网友:Geza Gog

根据联系人表格7文件,您需要:

[\\u url]-此标记将替换为联系人表单所在页面的url。

参考号:https://contactform7.com/special-mail-tags/

SO网友:mmm

表单提交已经发送了容器邮件,然后您只需将其重新保存并放入电子邮件
为此,请尝试以下代码:

add_filter("wpcf7_posted_data", function ($wpcf7_posted_data) {

    $post = get_post($wpcf7_posted_data["_wpcf7_container_post"]);

    $wpcf7_posted_data["containerURL"] = get_permalink($post);


    return $wpcf7_posted_data;

});
在已发送电子邮件的版本中,您可以使用[containerURL]

结束

相关推荐

Contact form sender email

我在Google上花费了大量的时间,却找不到解决方案。我正在使用Wordpress,我想找到一些插件或任何其他解决方案,可以做到以下几点:当用户在我的网站上发送联系人表单时,我会在我的Gmail上收到它,但发件人电子邮件是默认的Wordpress电子邮件。我想如果发件人的电子邮件可以是他们在联系表格中输入的电子邮件地址。所以,如果[email protected]给我发一份联系表格,如果我能收到[email protected],而不是来自[email protected].我希望这可以通过这样或那样的方式