Создайте уникальный идентификатор, который отображается пользователю и администратору через формы Ninja

Я пытаюсь предоставить исходную документацию о том, как создать уникальный идентификатор, который может быть отображен пользователю после отправки формы, а также администратору, который также получает представление.

  1. Пользователь отправляет форму
  2. Пользователь получает подтверждение по электронной почте: «Ваш код 2290»
  3. Администратор получает подтверждение формы «Пользователь зарегистрировался с порядком X и кодом 2290»

Я нашел способ захватить последовательную нумерацию из порядка представления, но он должен быть уникальным кодом для этого конкретного пользователя

Единственное, что я думал, это добавить какое-то реле их IP и имя

Что-то вроде Hashids может преобразовать свой IP в маленький уникальный идентификатор, но я действительно не уверен, как реализовать что-то такое сложное и потребуется что-то простое, что я упустил из виду, что формы ниндзя позволяют / обеспечивают

Поместите этот код в функции theme.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 ); 

Внутри функции выше у вас будет уникальный код длиной 13 символов в глобальной переменной $uniqueCode . Этот код будет генерироваться только один раз, когда фильтр запускается в первый раз. Дополнительная информация о фильтре ninja_forms_field : здесь .

UPDATE: для 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 );