diff --git a/includes/admin/core/packages/2.1.17-alpha/functions.php b/includes/admin/core/packages/2.1.17-alpha/functions.php new file mode 100644 index 00000000..01794741 --- /dev/null +++ b/includes/admin/core/packages/2.1.17-alpha/functions.php @@ -0,0 +1,140 @@ +ID, 'um_tab_slug', true ); + if ( UM()->external_integrations()->is_wpml_active() ) { + global $sitepress; + + $tab_id = $sitepress->get_object_id( $tab->ID, 'um_profile_tabs', true, $sitepress->get_default_language() ); + if ( $tab_id && $tab_id != $tab->ID ) { + $slug = get_post_meta( $tab_id, 'um_tab_slug', true ); + } + } + + return $slug; +} + + +function um_upgrade_profile_tabs2117() { + UM()->admin()->check_ajax_nonce(); + + um_maybe_unset_time_limit(); + + $labels = [ + 'name' => _x( 'Profile Tabs', 'Post Type General Name', 'ultimate-member' ), + 'singular_name' => _x( 'Profile tab', 'Post Type Singular Name', 'ultimate-member' ), + 'menu_name' => __( 'Profile Tabs', 'ultimate-member' ), + 'name_admin_bar' => __( 'Profile Tabs', 'ultimate-member' ), + 'archives' => __( 'Item Archives', 'ultimate-member' ), + 'attributes' => __( 'Item Attributes', 'ultimate-member' ), + 'parent_item_colon' => __( 'Parent Item:', 'ultimate-member' ), + 'all_items' => __( 'All Items', 'ultimate-member' ), + 'add_new_item' => __( 'Add New Item', 'ultimate-member' ), + 'add_new' => __( 'Add New', 'ultimate-member' ), + 'new_item' => __( 'New Item', 'ultimate-member' ), + 'edit_item' => __( 'Edit Item', 'ultimate-member' ), + 'update_item' => __( 'Update Item', 'ultimate-member' ), + 'view_item' => __( 'View Item', 'ultimate-member' ), + 'view_items' => __( 'View Items', 'ultimate-member' ), + 'search_items' => __( 'Search Item', 'ultimate-member' ), + 'not_found' => __( 'Not found', 'ultimate-member' ), + ]; + + $args = [ + 'label' => __( 'Profile Tabs', 'ultimate-member' ), + 'description' => __( '', 'ultimate-member' ), + 'labels' => $labels, + 'supports' => ['title', 'editor' ], + 'hierarchical' => false, + 'public' => false, + 'show_ui' => true, + 'show_in_menu' => false, + 'menu_position' => 5, + 'show_in_admin_bar' => false, + 'show_in_nav_menus' => false, + 'can_export' => true, + 'has_archive' => false, + 'exclude_from_search' => true, + 'publicly_queryable' => true, + 'capability_type' => 'page', + ]; + + register_post_type( 'um_profile_tabs', $args ); + + $profile_tabs = get_posts( [ + 'post_type' => 'um_profile_tabs', + 'orderby' => 'menu_order', + 'posts_per_page' => -1, + ] ); + + if ( ! empty( $profile_tabs ) ) { + $tabs_slugs = []; + + foreach ( $profile_tabs as $tab ) { + $slug = um_upgrade_get_slug2117( $tab ); + if ( ! empty( $slug ) && in_array( $slug, $tabs_slugs ) ) { + continue; + } + + if ( preg_match( "/[a-z0-9]+$/i", urldecode( $tab->post_name ) ) ) { + $tab_slug = sanitize_title( $tab->post_name ); + } else { + // otherwise use autoincrement and slug generator + $auto_increment = UM()->options()->get( 'custom_profiletab_increment' ); + $auto_increment = ! empty( $auto_increment ) ? $auto_increment : 1; + $tab_slug = "custom_profiletab_{$auto_increment}"; + } + + if ( UM()->external_integrations()->is_wpml_active() ) { + global $sitepress; + + $tab_id = $sitepress->get_object_id( $tab->ID, 'um_profile_tabs', true, $sitepress->get_default_language() ); + if ( $tab_id && $tab_id == $tab->ID ) { + update_post_meta( $tab->ID, 'um_tab_slug', $tab_slug ); + + $tabs_slugs[] = $tab_slug; + + if ( isset( $auto_increment ) ) { + $auto_increment++; + UM()->options()->update( 'custom_profiletab_increment', $auto_increment ); + } + + // show new profile tab by default - update UM Appearances > Profile Tabs settings + if ( UM()->options()->get( 'profile_tab_' . $tab_slug ) === '' ) { + UM()->options()->update( 'profile_tab_' . $tab_slug, '1' ); + UM()->options()->update( 'profile_tab_' . $tab_slug . '_privacy', '0' ); + } + } + } else { + update_post_meta( $tab->ID, 'um_tab_slug', $tab_slug ); + + $tabs_slugs[] = $tab_slug; + + if ( isset( $auto_increment ) ) { + $auto_increment++; + UM()->options()->update( 'custom_profiletab_increment', $auto_increment ); + } + + // show new profile tab by default - update UM Appearances > Profile Tabs settings + if ( UM()->options()->get( 'profile_tab_' . $tab_slug ) === '' ) { + UM()->options()->update( 'profile_tab_' . $tab_slug, '1' ); + UM()->options()->update( 'profile_tab_' . $tab_slug . '_privacy', '0' ); + } + } + } + } + + update_option( 'um_last_version_upgrade', '2.1.17-alpha' ); + + if ( ! empty( $profile_tabs ) ) { + wp_send_json_success( array( 'message' => __( 'Profile tabs have been updated successfully', 'ultimate-member' ) ) ); + } else { + wp_send_json_success( array( 'message' => __( 'Database has been updated successfully', 'ultimate-member' ) ) ); + } +} \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.17-alpha/hooks.php b/includes/admin/core/packages/2.1.17-alpha/hooks.php new file mode 100644 index 00000000..a7bcb57a --- /dev/null +++ b/includes/admin/core/packages/2.1.17-alpha/hooks.php @@ -0,0 +1,5 @@ + 'profile_tabs2117', +); \ No newline at end of file diff --git a/includes/admin/core/packages/2.1.17-alpha/init.php b/includes/admin/core/packages/2.1.17-alpha/init.php new file mode 100644 index 00000000..8c69de57 --- /dev/null +++ b/includes/admin/core/packages/2.1.17-alpha/init.php @@ -0,0 +1,30 @@ + + + + \ No newline at end of file