bp_member_type_import_submenu_page()
Import profile types.
Description
Source
File: bp-core/admin/bp-core-admin-functions.php
function bp_member_type_import_submenu_page() {
?>
<div class="wrap">
<h2 class="nav-tab-wrapper"><?php bp_core_admin_tabs( __( 'Tools', 'buddyboss' ) ); ?></h2>
<div class="nav-settings-subsubsub">
<ul class="subsubsub">
<?php bp_core_tools_settings_admin_tabs(); ?>
</ul>
</div>
</div>
<div class="wrap">
<div class="bp-admin-card section-bp-member-type-import">
<div class="boss-import-area">
<form id="bp-member-type-import-form" method="post" action="">
<div class="import-panel-content">
<h2><?php _e( 'Import Profile Types', 'buddyboss' ); ?></h2>
<p><?php
printf(
__( 'Import your existing <a href="%s">profile types</a> (or "member types" in BuddyPress). You may have created these types <strong>manually via code</strong> or by using a <strong>third party plugin</strong>. Click "Run Migration" below and all registered member types will be imported. Then you can remove the old code or plugin.', 'buddyboss' ),
add_query_arg([
'post_type' => bp_get_member_type_post_type(),
], admin_url( 'edit.php' ) )
); ?></p><br />
<input type="submit" value="<?php _e('Run Migration', 'buddyboss'); ?>" id="bp-member-type-import-submit" name="bp-member-type-import-submit" class="button-primary">
</div>
</form>
</div>
</div>
</div>
<br />
<?php
if (isset($_POST['bp-member-type-import-submit'])) {
$registered_member_types = bp_get_member_types();
$created_member_types = bp_get_active_member_types();
$active_member_types = array();
foreach ( $created_member_types as $created_member_type ) {
$name = bp_get_member_type_key( $created_member_type );
array_push($active_member_types, $name);
}
$registered_member_types = array_diff($registered_member_types, $active_member_types);
if (empty($registered_member_types)) {
?>
<div class="wrap">
<div class="error notice " id="message"><p><?php _e('Nothing to import', 'buddyboss'); ?></p></div>
</div>
<?php
}
foreach ( $registered_member_types as $key => $import_types_data ) {
$sing_name = ucfirst($import_types_data);
// Create post object
$my_post = array(
'post_type' => bp_get_member_type_post_type(),
'post_title' => $sing_name,
'post_status' => 'publish',
'post_author' => get_current_user_id(),
);
// Insert the post into the database
$post_id = wp_insert_post($my_post);
if ( $post_id ) {
$key = get_post_field( 'post_name', $post_id );
$term = term_exists( sanitize_key( $key ), bp_get_member_type_tax_name() );
if ( 0 !== $term && null !== $term ) {
$digits = 3;
$unique = rand(pow(10, $digits-1), pow(10, $digits)-1);
$key = $key.$unique;
}
update_post_meta( $post_id, '_bp_member_type_key', sanitize_key( $key ) );
update_post_meta( $post_id, '_bp_member_type_label_name', $sing_name );
update_post_meta( $post_id, '_bp_member_type_label_singular_name', $sing_name );
?><div class="updated notice " id="message"><p><?php _e('Successfully Imported', 'buddyboss'); ?></p></div><?php
}
}
}
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.