私は、ユーザーを登録し、彼らが登録を完了したときに彼らに固有のID番号を与えたいクライアントを持っています。 (会員番号種類のもの)
上位10桁の範囲のID番号を開始するようにWPメンバテーブルを設定することはできますか?
ユーザーエクスペリエンスは次のようになります。
ID
テーブルのusers
列はAUTO_INCREMENT
なので、 ベースカウンタを高い数値に設定できます 。
ALTER TABLE wp_users AUTO_INCREMENT = 1000000000;
すべての新規ユーザーはこの値より高いID
を持ちます。誤って低い数に設定した場合(InnoDB
テーブル内で)何も起こらない場合、または(MyISAM
テーブル内で)既存の最大数+1に設定された場合、この操作を呼び出しても安全です。
IDフィールドは間違いなく機能します。もっと大きい数がほしいと思うならそれにちょうど10,000を追加することができますそしてそれはまだユニークです。
これを行う他の方法はもっと複雑になります。 wp_optionsテーブルに値を格納してからフェッチ、インクリメント、保存することができますが、2人が同じ番号になる可能性がある小さなウィンドウがあります。衝突。選択したユーザー情報の一部からMD5(またはSHA1)ハッシュを生成できますが、これにより文字列が大きくて厄介なものになります。衝突の可能性はほとんどなくなるので、これは複数のシステムにわたってUUID(Universally Unique ID)を生成するときに役立ちます。
登録プロセスにフックして(preデータがDBに送信される)、空のスペースのためにpreg_replaceを指定してuser_registered
テーブルからwp_usermeta
列を変更するのも簡単だろうと思います。あなたが正確に同じ秒にそれらを提出しない限り、それらはユニークであるでしょう。登録プロセスの後に値を変更しても値は変更されません。必要に応じて、登録時間による注文が可能になります。