在 Contact Form 7 中获取客户提交表单的时间,有几种方法可以实现:
方法一:使用 Contact Form 7 的特殊邮件标签
在邮件模板中使用 [_date] 和 [_time] 标签:
text
提交日期:[_date] 提交时间:[_time]
你还可以自定义日期时间格式:
text
[_date "Y-m-d"] [_time "H:i:s"]
方法二:使用 functions.php 添加时间字段
在主题的 functions.php 文件中添加:
php
// 添加提交时间到表单数据
add_filter('wpcf7_posted_data', 'add_submission_time_to_cf7');
function add_submission_time_to_cf7($posted_data) {
$timezone = get_option('timezone_string');
if (empty($timezone)) {
$timezone = 'UTC';
}
date_default_timezone_set($timezone);
$posted_data['submission_date'] = date('Y-m-d');
$posted_data['submission_time'] = date('H:i:s');
$posted_data['submission_datetime'] = date('Y-m-d H:i:s');
return $posted_data;
}
// 在邮件中使用这些字段
然后在邮件模板中使用:
text
提交日期:[submission_date] 提交时间:[submission_time] 完整时间:[submission_datetime]
方法三:在表单中添加隐藏字段
在 Contact Form 7 表单中添加隐藏字段:
html
[hidden submission_date default:shortcode_attr]
[hidden submission_time default:shortcode_attr]
[hidden submission_datetime default:shortcode_attr]
然后在 functions.php 中添加:
php
// 为隐藏字段提供默认值
add_filter('shortcode_atts_wpcf7', 'custom_shortcode_atts_wpcf7_filter', 10, 3);
function custom_shortcode_atts_wpcf7_filter($out, $pairs, $atts) {
$timezone = get_option('timezone_string') ?: 'UTC';
date_default_timezone_set($timezone);
$my_attr = array(
'submission_date' => date('Y-m-d'),
'submission_time' => date('H:i:s'),
'submission_datetime' => date('Y-m-d H:i:s')
);
foreach ($my_attr as $name => $default) {
$out[$name] = isset($atts[$name]) ? $atts[$name] : $default;
}
return $out;
}
方法四:存储到数据库时记录时间
如果你使用 Contact Form 7 到数据库的插件(如 Flamingo),可以在存储时添加时间戳:
php
add_filter('flamingo_inbound_message_meta', 'add_submission_time_to_flamingo');
function add_submission_time_to_flamingo($meta) {
$meta['submission_timestamp'] = current_time('timestamp');
$meta['submission_datetime'] = current_time('mysql');
return $meta;
}
推荐使用方法一
对于大多数用户,方法一是*简单实用的,只需要在邮件模板中添加:
text
表单提交于:[_date] [_time]
或者自定义格式:
text
提交时间:[_date "Y年m月d日"] [_time "H时i分"]
这样就能在收到的邮件中看到客户提交表单的具体时间了。
