![](/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.