![](/img/trans.png)
[英]Gravity Forms - How can I show a default message instead of a Gravity Form if the user has already submitted the form once?
[英]How can I automatically create a Wordpress user when submitting a Gravity Form?
我是 PHP 的新手。我試圖在使用以下代碼使用自定義插件提交表單時自動創建 WordPress 用戶:
add_action( 'gform_post_process', 'wp_create_user', 10, 3 );
function wp_create_user( $username, $random_password, $email ) {
$user_login = wp_slash( $entry[1]);
$user_email = wp_slash( $entry[2]);
$user_pass = wp_generate_password( $length = 12, $include_standard_special_chars = false );
$role = 'Cp Client';
$userdata = compact( 'user_login', 'user_email', 'user_pass' );
return wp_insert_user( $userdata );
}}
我也嘗試過使用 gform_after_submission 並更改函數的名稱,但隨后我的網站中斷了。
我究竟做錯了什么? 這可能嗎? 有人可以給我一個代碼示例嗎?
提前致謝,
帕科
您可以嘗試以下操作。 (您可能還想添加名字、姓氏和顯示名稱。)這里有更多信息: https://usersinsights.com/create-wordpress-users-programmatically/
add_action( 'gform_after_submission_185', 'register_a_user', 10, 2 );//replace 185 with the your form id
function register_a_user($entry, $form ){
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$user_id = wp_insert_user( array(
'user_login' => rgar( $entry, '1' ),
'user_pass' => substr(str_shuffle($chars),0,12),
'user_email' => rgar( $entry, '3' ),
'role' => 'cp-client'//check the slug name of the role
));
return;
}
在 Rochelle 的幫助下,我得到了一個最終可以運行的代碼。 就是這個:
add_action( 'gform_after_submission', 'create', 10, 2 );
function create( $entry, $form ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$user_login = wp_slash( $entry[3] );
$user_email = wp_slash( $entry[2] );
$user_pass = substr(str_shuffle($chars),0,12);
$userdata = compact( 'user_login', 'user_email', 'user_pass' );
return wp_insert_user( $userdata );
}
感謝所有對此帖子發表評論的人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.