2016-04-11 20 views
1

Yerçekimi Formlarını kurdum. Form bir kimlik oluşturabilir sahip olmak ben çocuk teması bu kodu yerleştirilir:Yerçekimi Formları, Wordpress sitemde Benzersiz Kimlik Oluştur

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; 
} 

Bu kod çalışıyor ve bana fazla sorun vermiyor. Gravite formlarından mailchimp'e tüm bilgileri aktardığımdan, Mailchiimp listemde bazı Unique ID'lerin (örn: VFI819231) bazılarının değiştirildiğini fark ettim.

İşlevselliği sorgulamadan önce, bu kodda buna neden olabilecek bir şey var mı? Çünkü biraz test yapıyorum, yani bir kullanıcı yaratıp onu siliyorum, sonra tekrar ekliyorum, çünkü bunun sebebi merak ediyorum.

Yardımlarınız için teşekkürler!

cevap

1

Bu kod çalışmalıdır. GP Unique ID, bir Gravity Forms eklentisi Ben her türden benzersiz kimlikler oluşturmayı ele almak için yazdım, bunu benzer şekilde ele alır. Dikkat edilmesi gereken tek şey girişleri silmek. Check_unique() işlevi, oluşturulan kimliğin benzersiz olduğundan emin olmak için giriş veritabanına ping attığından, girişlerin silinmesi yinelenen kimliklerin oluşturulmasına izin verir.

İlgili konular