【问题标题】:How to add the last five years to cf7 drop down menu?如何将最近五年添加到 cf7 下拉菜单?
【发布时间】:2021-04-04 15:16:17
【问题描述】:

我正在使用 Wordpress 的 cf7 插件构建联系表单。在这种形式中,我需要一个每年自动更改的下拉菜单。在下拉菜单中,我需要以 2020、2019、2018、2017、2016、2015 格式显示当前和过去 5 年。这很容易用插件本身制作,但是当然,当 2021 年到来时,我想要下拉菜单将自动更改为 2021、2020、2019、2018、2017 和 2016。因此 2015 消失(删除)。

根据threat 中的代码,我尝试自动添加当前年份,但不幸的是我已经卡住了。希望有人可以帮助我。

提前致谢。 最好的问候,

瓦斯科

【问题讨论】:

  • 这是您需要的答案。 bdwm.be/…
  • 谢谢 Tami,但这不是我正在寻找的解决方案。我之前发现了这篇文章,例如,它是为了创建一个大列表。所以是的,我可以添加很多年(例如 2015 年到 2099 年),但它仍然不会自动改变。
  • 好的,然后我会尝试根据该示例为您制定解决方案

标签: wordpress dynamic drop-down-menu contact-form-7


【解决方案1】:

用法 在联系表格中使用,如下所示:

[选择最近几年的数据:年份]

在您的子主题的functions.php 或自定义插件中,添加此函数以动态填充最近5 年的下拉列表,并随着年份的流逝自动更新年份:

function vasco_five_most_recent_years ($values, $options, $args) {

       if ( in_array('years', $options) ){
    
            $years = [];
            $i = 0;

            for( $i = 0; $i < 5; $i++){ // Get 4 most recent years after current year

                 $years[] = (int) date("Y") - $i;
             }

             return $years ;
       }

      return $values;
    }

 add_filter('wpcf7_form_tag_data_option', 'vasco_five_most_recent_years', 10, 3);

经过测试,工作正常,输入格式如下:

像这样在前端渲染:

根据这里的教程https://bdwm.be/dynamically-populate-a-contact-form-7-dropdown-list-or-any-other-input-field/

【讨论】:

  • 谢谢,但不幸的是它不起作用。我看到一个空的下拉菜单(---),在页面加载时我看到了 php 代码一瞬间。我试图调整你的代码,但没有结果。
  • 代码也显示在页面顶部的前端。
  • 是的,好的,我没有测试就写了。我现在写得很好,我会编辑答案
  • @Vasco 我从来没有得到一个空的下拉列表,也没有你报告的 php 代码闪烁。听起来您在 CF7 表单中实现函数或简码的方式有问题。我确实必须更新该函数,因为它显示的是 2020 年,然后是 2019 年的 4 倍,而不是现在正确的下拉渲染。
  • 我不知道出了什么问题,现在可以正常使用了!谢谢你。所以如果我是正确的,在 2021 年它会从菜单中隐藏/删除 2016 年并显示 2021 年?
猜你喜欢
  • 2021-01-05
  • 1970-01-01
  • 2020-09-06
  • 2022-11-20
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 2012-07-25
  • 2015-03-25
相关资源
最近更新 更多