doubei3312 2016-04-11 16:49
浏览 35
已采纳

重力表单创建唯一ID

on my wordpress site I installed Gravity Forms. To have the form create an ID I placed this code in the child theme:

add_filter("gform_field_value_uuid", "get_unique");

function get_unique(){

$prefix = "VFI"; // update the prefix here

do {
    $unique = mt_rand();
    $unique = substr($unique, 0, 8);
    $unique = $prefix . $unique;
} while (!check_unique($unique));

return $unique;
}

function check_unique($unique) {
global $wpdb;

$table = $wpdb->prefix . 'rg_lead_detail';
$form_id = 1; // update to the form ID your unique id field belongs to
$field_id = 93; // update to the field ID your unique id is being prepopulated in
$result = $wpdb->get_var("SELECT value FROM $table WHERE form_id = '$form_id' AND field_number = '$field_id' AND value = '$unique'");

if(empty($result))
    return true;

return false;
}

This code is working and it's not giving me much trouble. Since I pass all the info from gravity forms to mailchimp, I noticed on my Mailchiimp list that some of the Unique ID (eg: VFI819231) are replcated.

Before questioning its functionality, is there anything on this code that can cause this? Cause I'm doing some test, so creating an user then deleting it, then adding it again so I wonder if it's because this.

Thanks for helping!

  • 写回答

1条回答 默认 最新

  • doutan8775 2016-04-11 20:26
    关注

    This code should work. GP Unique ID, a Gravity Forms plugin I wrote to handle generating unique IDs of all kinds, handles this in a similar way. The one thing to look out for is deleting entries. Since the check_unique() function is pinging the entries database to make sure the generated id is unique, deleting entries would allow for duplicate IDs to be generated.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站