非常简单的想法。按照以下步骤操作:
Step 1)
1) 创建post类型注册。添加必要的字段,如名字、姓氏、电子邮件等,这些字段在表单中关联。
2) 来自值的自定义注册保存到注册帖子类型中。因此,现在您的表单提交值就在您的手中。
3) 在标题字段中保存名字和姓氏。
4) 检查wp中用户表中的电子邮件字段是否存在。如果存在,post将不会创建和显示已存在的通知,也不会重置您要显示的内容。
Step 2)
1)在注册帖子类型列表中添加一个链接添加到用户,除了编辑、预览等链接或创建一列用户创建位置add 是用于创建用户的链接。
2) 单击时add 在后端代码中创建用户。你从这篇文章中得到的所有价值。
3) 创建新用户时,将设置角色。
3) 现在,您可以删除当前创建的用户的注册帖子。
我给你代码标签提示。这是一个想法。如果您直接复制和粘贴,它将不起作用。因此,不妨看看代码。
From Registration form to custom post type data save
$post = array(
\'post_title\'=>$_POST[\'firstname\'] . $_POST[\'lastname\'],
\'post_type\'=>\'registration\',
\'post_content\'=>\'\',
\'post_status\' => \'publish\',
);
$registration_id = wp_insert_post($post);
update_post_meta($registration_id, \'email\', $_POST[\'email\']);
//wp_publish_post($registration_id);
added to extra field in user table
add_action( \'show_user_profile\', \'my_show_extra_profile_fields\' );
add_action( \'edit_user_profile\', \'my_show_extra_profile_fields\' );
function my_show_extra_profile_fields( $user ) { ?>
<h3>Extra profile information</h3>
<table class="form-table">
<tr>
<th><label for="abn">ABN</label></th>
<td>
<input type="text" name="abn" id="abn" value="<?php echo esc_attr( get_the_author_meta( \'abn\', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your abn num.</span>
</td>
</tr>
<tr>
<th><label for="abn">Business Name</label></th>
<td>
<input type="text" name="BusinessName" id="BusinessName" value="<?php echo esc_attr( get_the_author_meta( \'BusinessName\', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your Business Name.</span>
</td>
</tr>
<tr>
<th><label for="abn">Business type</label></th>
<td>
<input type="text" name="Businesstype" id="Businesstype" value="<?php echo esc_attr( get_the_author_meta( \'Businesstype\', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your Business type.</span>
</td>
</tr>
</table>
<?php }
add_action( \'personal_options_update\', \'my_save_extra_profile_fields\' );
add_action( \'edit_user_profile_update\', \'my_save_extra_profile_fields\' );
function my_save_extra_profile_fields( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) )
return false;
/* Copy and paste this line for additional fields. Make sure to change \'twitter\' to the field ID. */
update_usermeta( $user_id, \'abn\', $_POST[\'abn\'] );
update_usermeta( $user_id, \'BusinessName\', $_POST[\'BusinessName\'] );
update_usermeta( $user_id, \'Businesstype\', $_POST[\'Businesstype\'] );
}
Post types add column //add bulk action in registration post types
add_filter(\'manage_edit-product_columns\', \'my_extra_cake_columns\');
function my_extra_cake_columns($columns) {
$columns[\'slices\'] =__(\'Create User\');
return $columns;
}
add_action( \'personal_options_update\', \'my_save_extra_profile_fields\' );
add_action( \'edit_user_profile_update\', \'my_save_extra_profile_fields\' );
function my_save_extra_profile_fields( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) )
return false;
/* Copy and paste this line for additional fields. */
update_usermeta( $user_id, \'abn\', $_POST[\'abn\'] );
update_usermeta( $user_id, \'BusinessName\', $_POST[\'BusinessName\'] );
update_usermeta( $user_id, \'Businesstype\', $_POST[\'Businesstype\'] );
}
add_action( \'manage_product_posts_custom_column\', \'my_cake_column_content\', 10, 2 );
function my_cake_column_content( $column_name, $post_id ) {
if ( \'slices\' != $column_name )
return;
echo \'<a href="#">Add as user</a>\';
}
add_filter( \'manage_edit-product_sortable_columns\', \'my_sortable_cake_column\' );
function my_sortable_cake_column( $columns ) {
$columns[\'slices\'] = \'slice\';
return $columns;
}
一
//add bulk action in registration post types
add_filter(\'manage_edit-product_columns\', \'my_extra_cake_columns\');
function my_extra_cake_columns($columns) {
$columns[\'slices\'] =__(\'Create User\');
return $columns;
}
add_action( \'personal_options_update\', \'my_save_extra_profile_fields\' );
add_action( \'edit_user_profile_update\', \'my_save_extra_profile_fields\' );
function my_save_extra_profile_fields( $user_id ) {
if ( !current_user_can( \'edit_user\', $user_id ) )
return false;
/* Copy and paste this line for additional fields. */
update_usermeta( $user_id, \'abn\', $_POST[\'abn\'] );
update_usermeta( $user_id, \'BusinessName\', $_POST[\'BusinessName\'] );
update_usermeta( $user_id, \'Businesstype\', $_POST[\'Businesstype\'] );
}
add_action( \'manage_product_posts_custom_column\', \'my_cake_column_content\', 10, 2 );
function my_cake_column_content( $column_name, $post_id ) {
if ( \'slices\' != $column_name )
return;
echo \'<a href="#">Add as user</a>\';
}
add_filter( \'manage_edit-product_sortable_columns\', \'my_sortable_cake_column\' );
function my_sortable_cake_column( $columns ) {
$columns[\'slices\'] = \'slice\';
return $columns;
}
另一件你也可以使用的东西gravityforms.它还具有注册后创建用户的功能。这是一个付费插件。希望这个想法对你有用。如果您有任何其他疑问,请告诉我。