WP 联系表 7:获取当前日期值以填充输入字段

WP contact form 7: get current date value to populate an input field

在我的 website 上使用联系表单 7,想要检索表单提交日期作为输入值以在“Jetpack CRM”中用于自定义字段。我想避免用户必须 select 使用日期选择器选择日期。

到目前为止,我只能通过 [hidden today_date _date] 获取当前日期值,我可以在电子邮件模板中使用它,但这不是我需要的。

到目前为止我尝试了什么(阅读之后):

在联系表 7 中,我添加了字段 <label> [text submission_date id:submissiondate ""] </label>,希望 javascript 会用日期时间值填写空引号。

我使用插件“WP 页眉和页脚”添加了脚本

    var today = new Date();

    var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();

    var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();

    var dateTime = date+' '+time;

    document.getElementById("submissiondate").value = dateTime;

我在页眉、正文和页脚中尝试了脚本。

结果总是:空表单字段和 js 错误:

Uncaught TypeError: document.getElementById(...) is null

有人可以帮我解决这个问题吗?

编辑: 在这个问题上寻求帮助时,我得到了将 [hidden default:today_date _date id:submissiondate ] 添加到表单并在页脚中输入 js 的建议,如下所示:

    var today = new Date();
    var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
    var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
    var dateTime = date+' '+time;
    // this will set value for input with id submissiondate 
    jQuery('input#submissiondate').val(dateTime);   
    // check if value exists    
    var new_value = jQuery('#submissiondate').val();
    // display in console   
    console.log('current date time = ' + new_value);

现在时间值已进入确认电子邮件,但仍未进入 jetpack crm 自定义字段。 也许问题在于这是一个隐藏字段?我尝试在表单中添加 [text default:today_date _date id:submissiondate ] 以创建另一个字段,希望这可以用于 jetpack crm 中的自定义字段,但这也不起作用——自定义字段没有显示任何值。 有人知道如何让它工作吗?

查看您提到的 Whosebug 页面,我注意到了这一点:

So the javascript code does not have to be placed on the contact form editor. Rather, it should be place on the page where the contact form short code is located: below is an example of the short code

可能您没有将 JavaScript 代码放在联系表单短代码所在的页面上。

已找到解决方案 – 向 Santosh @https://www.codeable.io/ 大声疾呼! 表格中的 [text default:today_date _date id:submissiondate ] 行是错误的——正确的行是 [text submissiondate id:submissiondate].

总结:在页脚javascript

    setInterval(add_date, 1000);    
    function add_date() {   
    var today = new Date();
    var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
    var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
    var dateTime = date+' '+time;
    // this will set value for input with id submissiondate   
    jQuery('input#submissiondate').val(dateTime); 
    // check if value exists    
    var new_value = jQuery('#submissiondate').val();
    // display in console   
    console.log('current date time = ' + new_value);
    }

和表单模板中的正确字段 [text submissiondate id:submissiondate](隐藏在前端 CSS),我可以使用 jetpack crm 中的字段值来填充自定义字段,我可以使用它也在确认电子邮件中。 :-)

喜欢2-digit-dates的人,可以这样编辑脚本:

    setInterval(add_date, 1000);    
    function add_date() {   
    var today = new Date();
    currentMonth = today.getMonth()+1;
    currentMonth = ("0" + currentMonth).slice(-2);
    currentDay = today.getDate();
    currentDay = ("0" + currentDay).slice(-2);
    currentHour = today.getHours();
    currentHour = ("0" + currentHour).slice(-2);
    currentMinute = today.getMinutes();
    currentMinute = ("0" + currentMinute).slice(-2);
    currentSecond = today.getSeconds();
    currentSecond = ("0" + currentSecond).slice(-2);
    var date = today.getFullYear()+'-'+(currentMonth)+'-'+(currentDay);
    var time = (currentHour) + ":" + (currentMinute) + ":" + (currentSecond);
    var dateTime = date+' '+time;

    // this will set value for input with id buchung-versanddatum   
    jQuery('input#buchung-versanddatum').val(dateTime);

    // check if value exists    
    var new_value = jQuery('#buchung-versanddatum').val();

    // display in console   
    console.log('current date time = ' + new_value);
    }