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);
}
在我的 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);
}