/** * Member type option */ public function bmt_member_type_option() { $post_ids = bmt_get_active_member_types(); if (!empty($post_ids)) { ?> <div class="editfield field_bmt_member_type required-field"> <label><?php _e('Member Type', 'bp-member-types'); ?> </label> <?php /** * Fires and displays Member Type registration validation errors. * * @since 1.1.0 */ do_action('bp_field_bmt_member_type_errors'); //Pre fill member type with default or selected value $bp_member_type_selected = isset($_REQUEST['bmt_member_type']) ? $_REQUEST['bmt_member_type'] : buddyboss_bmt()->option('default_member_type'); ?> <select class="bmt-member-type" name="bmt_member_type"> <option value=""><?php echo '----'; ?> </option> <?php foreach ($post_ids as $pid) { $enable_register = get_post_meta($pid, '_bp_member_type_enable_registration', true); if ($enable_register) { //Member type label $bp_member_type_label = strtolower(get_post_meta($pid, '_bp_member_type_label_singular_name', true)); ?> <option value="<?php echo $bp_member_type_label; ?> " <?php selected($bp_member_type_selected, $bp_member_type_label); ?> ><?php echo get_the_title($pid); ?> </option> <?php } } ?> </select> </div> <?php } }
/** * Default member type if user is not selecting any in registration form * and also pre filled value for member type */ public function setting_default_member_type() { $bp_member_type_selected = $this->option('default_member_type'); $post_ids = bmt_get_active_member_types(); echo '<select name="buddyboss_bmt_plugin_options[default_member_type]">'; echo '<option value="">---</option>'; foreach ($post_ids as $pid) { $enable_register = get_post_meta($pid, '_bp_member_type_enable_registration', true); if ($enable_register) { //Member type label $bp_member_type_label = strtolower(get_post_meta($pid, '_bp_member_type_label_singular_name', true)); ?> <option value="<?php echo $bp_member_type_label; ?> " <?php selected($bp_member_type_selected, $bp_member_type_label); ?> ><?php echo get_the_title($pid); ?> </option> <?php } } echo '</select>'; echo ' <label>' . __('Set default member type in Registration Form.', 'bp-member-type') . '</label>'; }
<p><?php _e('Import your existing member types, that were created <strong>Manually with Code</strong> or from another <strong>Plugin</strong> ( needs to be active )', 'bp-member-types'); ?> </p><br/> <input type="submit" value="Run Migration" id="bmt-import-submit" name="bmt-import-submit" class="button-primary"> </div> </form> </div> </div> <br /> <?php if (isset($_POST['bmt-import-submit'])) { $registered_member_types = bp_get_member_types(); $created_member_types = bmt_get_active_member_types(); $active_member_types = array(); foreach ($created_member_types as $created_member_type) { $name = strtolower(get_post_meta($created_member_type, '_bp_member_type_label_singular_name', true)); $name = str_replace(array(' ', ','), array('-', '-'), $name); 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'); ?> </p></div> </div>
/** * Register all active member types * */ public function register_member_type() { //$this->register_post_type(); $is_root_blog = bp_is_root_blog(); //if we are not on the main bp site, switch to it before registering member type if (!$is_root_blog) { switch_to_blog(bp_get_root_blog_id()); } //get all posts in memeber type post type $post_ids = bmt_get_active_member_types(); //update meta cache to avoid multiple db calls update_meta_cache('post', $post_ids); //build to register the memebr type $member_types = array(); foreach ($post_ids as $post_id) { $name = strtolower(get_post_meta($post_id, '_bp_member_type_label_singular_name', true)); $name = str_replace(array(' ', ','), array('-', '-'), $name); $enable_directory = get_post_meta($post_id, '_bp_member_type_enable_directory', true); $has_dir = false; if ($enable_directory) { $has_dir = true; } $member_types[$name] = array('labels' => array('name' => get_post_meta($post_id, '_bp_member_type_label_name', true), 'singular_name' => $name), 'has_directory' => $has_dir); } foreach ($member_types as $member_type => $args) { bp_register_member_type($member_type, $args); } if (!$is_root_blog) { restore_current_blog(); } }