如何为联系表单7中的每个表单提交创建唯一ID?

时间:2017-01-19 20:42:47

标签: php jquery wordpress forms contact-form-7

我需要为在线注册活动的所有参与者提供唯一ID。我想给出一个像" 17CONF001,17CONF002,..."

的独特ID

如何实现这个目标?

我正在使用contact-form-7-dynamic-text-extension插件为我的网站注册过程。

完成的工作:

我使用以下功能生成票号。

/* Generate Quote Ticket */
function genTicketString() {
$length = 3;
$iclaa = "17ICLAA";
$characters = "0123456789";
for ($p = 0; $p < $length; $p++) {
    $string .= $characters[mt_rand(0, strlen($characters)-1)];
}
return $iclaa.$string;
}
add_shortcode('quoteticket', 'genTicketString');

在我的functions.php中,我添加了

[dynamictext ticket "quoteticket"]

以我的联系表格7的形式,并通过css使该字段不可见。

最后,我已将[ticket]添加到您的电子邮件正文中。

根据AMCD给出的解决方案。

此代码存在问题:

每次刷新都会给出不同的参考编号,而它应该为每次提交表格生成参考编号。

2 个答案:

答案 0 :(得分:1)

希望这可以提供帮助,将此代码添加到您的function.php

//Define the key to store in the database
define( 'CF7_COUNTER', 'cf7-counter' );

//Create the shortcode which will set the value for the DTX field
function cf7dtx_counter(){
    $kodeawal = "FJY";
    $val = get_option( CF7_COUNTER, 0) + 1;  //Increment the current count
    return $kodeawal.$val;
}
add_shortcode('CF7_counter', 'cf7dtx_counter');

//Action performed when the mail is actually sent by CF7
function cf7dtx_increment_mail_counter(){
    $val = get_option( CF7_COUNTER, 0) + 1; //Increment the current count
    update_option(CF7_COUNTER, $val); //Update the settings with the new count
}
add_action('wpcf7_mail_sent', 'cf7dtx_increment_mail_counter');

然后,将其添加到您的联系表格7

<p>[dynamictext cf7-counter "CF7_counter"]</p>

表单上的输出将为“FJY1”,“FJY2”等等

谢谢sevenspark: http://sevenspark.com/tutorials/how-to-create-a-counter-for-contact-form-7

答案 1 :(得分:0)

如果您想生成随机数作为ID,只需使用它即可。

define( 'CF7_COUNTER', 'cf7-counter' );

function cf7dtx_counter(){
    $length = 8;
    $characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    for ($p = 0; $p < $length; $p++) {
        $string .= $characters[mt_rand(0, strlen($characters)-1)];
    }
    return $string;
}
add_shortcode('CF7_counter', 'cf7dtx_counter');

function cf7dtx_increment_mail_counter(){
    $val = get_option( CF7_COUNTER, 0) + 1;
    update_option(CF7_COUNTER, $val);
}
add_action('wpcf7_mail_sent', 'cf7dtx_increment_mail_counter');

然后,将其添加到您的联系表7

[dynamichidden Request-ID "CF7_counter"]