私は、フォームの送信後にユーザーに表示できる一意の識別子の作成方法と、その送信を受信する管理者にドキュメントを提供しようとしています。
送信順から連番をつかむ方法を見つけましたが、それはその特定のユーザーに固有のコードである必要があります
私が考えた唯一のことはそれらのIPと名前のある種の中継を追加することだろう
HashidsのようなものはそれらのIPを小さなユニークな識別子に変換することができますが、私は本当にこの複雑なものを実装する方法がわからないので、忍者フォームが許可/提供することを見落とした簡単なものが必要です
このコードをテーマのfunctions.php:に入れてください(Ninja Forms 2.9.xの場合)。
function unique_code_submission( $data, $field_id ) {
global $uniqueCode;
if ( "string" !== gettype( $uniqueCode ) )
$uniqueCode = uniqid();
/* here goes your code to populate a field */
return $data;
}
add_filter( 'ninja_forms_field', 'unique_code_submission', 10, 2 );
上記の関数内では、$uniqueCode
グローバル変数に13文字のユニークな長さのコードがあります。このコードは、フィルタが最初に起動されたときに1回だけ生成されます。 ninja_forms_field
filterに関するさらに詳しい情報: ここ 。
更新:Ninja Forms 3.0以降の場合:
function unique_code_submission( $fields ) {
$uniqueCode = uniqid();
/* here goes your code to populate a field. For example:
let's populate hidden field, which has key value of
'hidden_1492812363939' */
$index = 0;
while ( 0 <= $index ) {
++$index;
if ( 'hidden_1492812363939' == $fields[ $index-1 ][ 'key' ] ) {
$fields[ $index-1 ][ 'value' ] = $uniqueCode;
$index = -1;
}
}
return $fields;
}
add_filter( 'ninja_forms_display_fields', 'unique_code_submission', 10, 1 );