wordpress - 联系表格 7 需要 2 个不同字段之一
问题描述
我在 CF7 中有一个图像上传字段和一个 URL 字段,我怎样才能让用户需要使用这两个字段之一。那么选择一张图片或在 URL 字段中放置一个链接?
我已经进行了一些搜索,并且看到了一些在普通 txt 字段上执行此操作的选项,但我认为这对我不起作用,因为上传字段。
解决方案
我不认为 CF7 可以开箱即用地做到这一点。您可能需要编写代码来解决此问题。
由于我不知道您的体型有多大,这可能会对您有所帮助:
https://wordpress.org/plugins/cf7-conditional-fields/ - CF 7 中条件字段的插件
https://conditional-fields-cf7.bdwm.be/conditional-fields-for-contact-form-7-tutorial/ - 教程如何使用它。
因此,使用此插件,您基本上可以创建一个下拉列表,用户首先必须在其中选择是要使用图像还是使用 URL 字段。之后,只有他的选择会弹出,他可以继续选择的选项。
如果您想进行编码,您可以将一些 JS 添加到站点并检查验证是否填写了两个字段之一。
如果插件解决了您的问题 - 很好,如果没有,请告诉我,以便我可以帮助您进行代码验证。
###编辑因为我们需要代码###
因此,要动态更改所需的功能,我发现了一个很好的帖子: 动态禁用联系表 7 字段验证
一些背景信息:CF7 在服务器端进行验证,因此在这种情况下使用 JS 或 JQuery 将无济于事。我们要做的是操纵服务器验证。如果其中一个字段填写正确,我们只是将内容放在验证的另一个字段中。
CF7 模块中的表格如下所示:
<label> URL
[url* url ]
<label> Image
[file* image ]
[submit "Send"]
然后,您只需将以下代码添加到主题的 functions.php 文件中。
function alter_wpcf7_posted_data( $data ) {
if($_FILES['image']['size'] != 0) {
$_POST['url'] = "http://fileupload.com";
}
if($_POST['url'] != "") {
$_FILES['image']['tmp_name'] = "urlprovided";
}
return $data;
}
add_filter("wpcf7_posted_data", "alter_wpcf7_posted_data");
通常,一开始这两个字段都是空的,如果其中一个有竞争,另一个得到假数据,用户只需提供一个。
让我知道这是否有帮助。
推荐阅读
- python - 如何禁用/隐藏 vscode-python 中的变量分组
- authentication - 使用参考令牌时的 OpenIddict 请求标头
- docker - 如何在从busybox:1.31.1-glibc 构建的docker 映像中使用apk
- cluster-computing - 尝试配置简单的 ActiveMQ Artemis 集群时出错
- python - 如何将连续行填充到熊猫数据框?
- javascript - 如何访问返回的 html?
- api - 使用 API 蓝图和 Apiary 记录 POST 请求
- javascript - 仅使用不带正则表达式的 JavaScript 允许数字和连字符
- mtp - 在 Windows 上使用 WebUSB 从 Android 设备读取文件
- amazon-web-services - 在 AWS Beanstalk 上部署访问 AWS RDS 的 Dash (python/plotly) 应用程序