diff --git a/includes/admin/assets/css/um-admin-global.css b/includes/admin/assets/css/um-admin-global.css
index ee206b9c..5a9125f1 100644
--- a/includes/admin/assets/css/um-admin-global.css
+++ b/includes/admin/assets/css/um-admin-global.css
@@ -150,6 +150,8 @@ a.um-delete{ color: #a00; }
max-width: 300px;
font-size: 12px;
border-radius: 5px;
+ border: none !important;
+ text-shadow: none !important;
}
.um_tooltip.dashicons,
diff --git a/includes/admin/core/class-admin-metabox.php b/includes/admin/core/class-admin-metabox.php
index 690fa673..eab64bdb 100644
--- a/includes/admin/core/class-admin-metabox.php
+++ b/includes/admin/core/class-admin-metabox.php
@@ -147,13 +147,7 @@ if ( ! class_exists( 'Admin_Metabox' ) ) {
//restrict content metabox
$all_taxonomies = get_taxonomies( array( 'public' => true ) );
$tax_types = um_get_option( 'restricted_access_taxonomy_metabox' );
- $exclude_taxonomies = array(
- 'nav_menu',
- 'link_category',
- 'post_format',
- 'um_user_tag',
- 'um_hashtag',
- );
+ $exclude_taxonomies = UM()->excluded_taxonomies();
foreach ( $all_taxonomies as $key => $taxonomy ) {
if ( in_array( $key, $exclude_taxonomies ) || empty( $tax_types[$key] ) )
diff --git a/includes/admin/core/class-admin-settings.php b/includes/admin/core/class-admin-settings.php
index 8b819538..89e1719c 100644
--- a/includes/admin/core/class-admin-settings.php
+++ b/includes/admin/core/class-admin-settings.php
@@ -176,13 +176,7 @@ if ( ! class_exists( 'Admin_Settings' ) ) {
$all_post_types = get_post_types( array( 'public' => true ) );
$all_taxonomies = get_taxonomies( array( 'public' => true ) );
- $exclude_taxonomies = array(
- 'nav_menu',
- 'link_category',
- 'post_format',
- 'um_user_tag',
- 'um_hashtag',
- );
+ $exclude_taxonomies = UM()->excluded_taxonomies();
foreach ( $all_taxonomies as $key => $taxonomy ) {
if( in_array( $key , $exclude_taxonomies ) )
diff --git a/includes/admin/core/packages/2.0.php b/includes/admin/core/packages/2.0.php
index 01bdf2a5..0e018095 100644
--- a/includes/admin/core/packages/2.0.php
+++ b/includes/admin/core/packages/2.0.php
@@ -960,6 +960,19 @@ if ( ! empty( $um_roles ) ) {
$role_metadata = array();
if ( ! empty( $all_role_metadata ) ) {
foreach( $all_role_metadata as $metadata ) {
+
+ if ( '_um_can_edit_roles' == $metadata['meta_key'] || '_um_can_delete_roles' == $metadata['meta_key']
+ || '_um_can_view_roles' == $metadata['meta_key'] || '_um_can_follow_roles' == $metadata['meta_key']
+ || '_um_can_friend_roles' == $metadata['meta_key'] || '_um_can_review_roles' == $metadata['meta_key'] ) {
+ $metadata['meta_value'] = maybe_unserialize( $metadata['meta_value'] );
+
+ $metadata['meta_value'] = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $metadata['meta_value'] );
+ } elseif ( '_um_profilec_upgrade_role' == $metadata['meta_key'] ) {
+ $metadata['meta_value'] = 'um_' . $metadata['meta_value'];
+ }
+
$role_metadata[$metadata['meta_key']] = $metadata['meta_value'];
}
}
@@ -1048,13 +1061,7 @@ if ( ! empty( $posts ) ) {
$all_taxonomies = get_taxonomies( array( 'public' => true ) );
-$exclude_taxonomies = array(
- 'nav_menu',
- 'link_category',
- 'post_format',
- 'um_user_tag',
- 'um_hashtag',
-);
+$exclude_taxonomies = UM()->excluded_taxonomies();
foreach ( $all_taxonomies as $key => $taxonomy ) {
if ( in_array( $key , $exclude_taxonomies ) )
@@ -1135,6 +1142,36 @@ foreach ( $forms as $form_id ) {
}
}
+//for metadata for all UM Member Directories
+//also update for forms metadata where "member" or "admin"
+$member_directories = get_posts( array(
+ 'post_type' => 'um_directory',
+ 'numberposts' => -1,
+ 'fields' => 'ids'
+) );
+
+foreach ( $member_directories as $directory_id ) {
+ $directory_roles = get_post_meta( $directory_id, '_um_roles', true );
+
+ if ( ! empty( $directory_roles ) ) {
+ $directory_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $directory_roles );
+
+ update_post_meta( $directory_id, '_um_roles', $directory_roles );
+ }
+
+ $um_roles_can_search = get_post_meta( $directory_id, '_um_roles_can_search', true );
+
+ if ( ! empty( $um_roles_can_search ) ) {
+ $um_roles_can_search = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $um_roles_can_search );
+
+ update_post_meta( $directory_id, '_um_roles', $um_roles_can_search );
+ }
+}
+
/**
* Transferring email templates to new logic
@@ -1195,3 +1232,245 @@ foreach ( $menus as $menu ) {
update_post_meta( $menu->ID, 'menu-item-um_nav_roles', $menu_roles );
}
+
+$profile_tab_main_roles = um_get_option( 'profile_tab_main_roles' );
+$profile_tab_main_roles = ! $profile_tab_main_roles ? array() : $profile_tab_main_roles;
+if ( ! empty( $profile_tab_main_roles ) ) {
+ $profile_tab_main_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_main_roles );
+
+ um_update_option( 'profile_tab_main_roles', $profile_tab_main_roles );
+}
+
+$profile_tab_posts_roles = um_get_option( 'profile_tab_posts_roles' );
+$profile_tab_posts_roles = ! $profile_tab_posts_roles ? array() : $profile_tab_posts_roles;
+if ( ! empty( $profile_tab_posts_roles ) ) {
+ $profile_tab_posts_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_posts_roles );
+
+ um_update_option( 'profile_tab_posts_roles', $profile_tab_posts_roles );
+}
+
+$profile_tab_comments_roles = um_get_option( 'profile_tab_comments_roles' );
+$profile_tab_comments_roles = ! $profile_tab_comments_roles ? array() : $profile_tab_comments_roles;
+if ( ! empty( $profile_tab_comments_roles ) ) {
+ $profile_tab_comments_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_comments_roles );
+
+ um_update_option( 'profile_tab_comments_roles', $profile_tab_comments_roles );
+}
+
+$profile_tab_activity_roles = um_get_option( 'profile_tab_activity_roles' );
+$profile_tab_activity_roles = ! $profile_tab_activity_roles ? array() : $profile_tab_activity_roles;
+if ( ! empty( $profile_tab_activity_roles ) ) {
+ $profile_tab_activity_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_activity_roles );
+
+ um_update_option( 'profile_tab_activity_roles', $profile_tab_activity_roles );
+}
+
+$profile_tab_messages_roles = um_get_option( 'profile_tab_messages_roles' );
+$profile_tab_messages_roles = ! $profile_tab_messages_roles ? array() : $profile_tab_messages_roles;
+if ( ! empty( $profile_tab_messages_roles ) ) {
+ $profile_tab_messages_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_messages_roles );
+
+ um_update_option( 'profile_tab_messages_roles', $profile_tab_messages_roles );
+}
+
+$profile_tab_reviews_roles = um_get_option( 'profile_tab_reviews_roles' );
+$profile_tab_reviews_roles = ! $profile_tab_reviews_roles ? array() : $profile_tab_reviews_roles;
+if ( ! empty( $profile_tab_reviews_roles ) ) {
+ $profile_tab_reviews_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_reviews_roles );
+
+ um_update_option( 'profile_tab_reviews_roles', $profile_tab_reviews_roles );
+}
+
+$profile_tab_purchases_roles = um_get_option( 'profile_tab_purchases_roles' );
+$profile_tab_purchases_roles = ! $profile_tab_purchases_roles ? array() : $profile_tab_purchases_roles;
+if ( ! empty( $profile_tab_purchases_roles ) ) {
+ $profile_tab_purchases_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_purchases_roles );
+
+ um_update_option( 'profile_tab_purchases_roles', $profile_tab_purchases_roles );
+}
+
+$profile_tab_product_reviews = um_get_option( 'profile_tab_product-reviews_roles' );
+$profile_tab_product_reviews = ! $profile_tab_product_reviews ? array() : $profile_tab_product_reviews;
+if ( ! empty( $profile_tab_product_reviews ) ) {
+ $profile_tab_product_reviews = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_product_reviews );
+
+ um_update_option( 'profile_tab_product-reviews_roles', $profile_tab_product_reviews );
+}
+
+
+$profile_tab_forums_roles = um_get_option( 'profile_tab_forums_roles' );
+$profile_tab_forums_roles = ! $profile_tab_forums_roles ? array() : $profile_tab_forums_roles;
+if ( ! empty( $profile_tab_forums_roles ) ) {
+ $profile_tab_forums_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_forums_roles );
+
+ um_update_option( 'profile_tab_forums_roles', $profile_tab_forums_roles );
+}
+
+$profile_tab_friends_roles = um_get_option( 'profile_tab_friends_roles' );
+$profile_tab_friends_roles = ! $profile_tab_friends_roles ? array() : $profile_tab_friends_roles;
+if ( ! empty( $profile_tab_friends_roles ) ) {
+ $profile_tab_friends_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $profile_tab_friends_roles );
+
+ um_update_option( 'profile_tab_friends_roles', $profile_tab_friends_roles );
+}
+
+
+$register_role = um_get_option( 'register_role' );
+if ( ! empty( $register_role ) ) {
+ $register_role = 'um_' . $register_role;
+ um_update_option( 'register_role', $register_role );
+}
+
+$woo_oncomplete_role = um_get_option( 'woo_oncomplete_role' );
+if ( ! empty( $woo_oncomplete_role ) ) {
+ $woo_oncomplete_role = 'um_' . $woo_oncomplete_role;
+ um_update_option( 'woo_oncomplete_role', $woo_oncomplete_role );
+}
+
+$woo_oncomplete_except_roles = um_get_option( 'woo_oncomplete_except_roles' );
+$woo_oncomplete_except_roles = ! $woo_oncomplete_except_roles ? array() : $woo_oncomplete_except_roles;
+if ( ! empty( $woo_oncomplete_except_roles ) ) {
+ $woo_oncomplete_except_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $woo_oncomplete_except_roles );
+
+ um_update_option( 'woo_oncomplete_except_roles', $woo_oncomplete_except_roles );
+}
+
+//for metadata for all bbPress forums
+//also update for forms metadata where "member" or "admin"
+$wc_products = get_posts( array(
+ 'post_type' => 'product',
+ 'numberposts' => -1,
+ 'fields' => 'ids'
+) );
+
+foreach ( $wc_products as $product_id ) {
+ $woo_product_role = get_post_meta( $product_id, '_um_woo_product_role', true );
+
+ if ( ! empty( $woo_product_role ) ) {
+ $woo_product_role = 'um_' . $woo_product_role;
+ update_post_meta( $product_id, '_um_woo_product_role', $woo_product_role );
+ }
+
+ $woo_product_activated_role = get_post_meta( $product_id, '_um_woo_product_activated_role', true );
+
+ if ( ! empty( $woo_product_activated_role ) ) {
+ $woo_product_activated_role = 'um_' . $woo_product_activated_role;
+ update_post_meta( $product_id, '_um_woo_product_activated_role', $woo_product_activated_role );
+ }
+
+ $woo_product_downgrade_pending_role = get_post_meta( $product_id, '_um_woo_product_downgrade_pending_role', true );
+
+ if ( ! empty( $woo_product_downgrade_pending_role ) ) {
+ $woo_product_downgrade_pending_role = 'um_' . $woo_product_downgrade_pending_role;
+ update_post_meta( $product_id, '_um_woo_product_downgrade_pending_role', $woo_product_downgrade_pending_role );
+ }
+
+ $woo_product_downgrade_onhold_role = get_post_meta( $product_id, '_um_woo_product_downgrade_onhold_role', true );
+
+ if ( ! empty( $woo_product_downgrade_onhold_role ) ) {
+ $woo_product_downgrade_onhold_role = 'um_' . $woo_product_downgrade_onhold_role;
+ update_post_meta( $product_id, '_um_woo_product_downgrade_onhold_role', $woo_product_downgrade_onhold_role );
+ }
+
+ $woo_product_downgrade_expired_role = get_post_meta( $product_id, '_um_woo_product_downgrade_expired_role', true );
+
+ if ( ! empty( $woo_product_downgrade_expired_role ) ) {
+ $woo_product_downgrade_expired_role = 'um_' . $woo_product_downgrade_expired_role;
+ update_post_meta( $product_id, '_um_woo_product_downgrade_expired_role', $woo_product_downgrade_expired_role );
+ }
+
+ $woo_product_downgrade_cancelled_role = get_post_meta( $product_id, '_um_woo_product_downgrade_cancelled_role', true );
+
+ if ( ! empty( $woo_product_downgrade_cancelled_role ) ) {
+ $woo_product_downgrade_cancelled_role = 'um_' . $woo_product_downgrade_cancelled_role;
+ update_post_meta( $product_id, '_um_woo_product_downgrade_cancelled_role', $woo_product_downgrade_cancelled_role );
+ }
+}
+
+
+$bb_forums = get_posts( array(
+ 'post_type' => 'forum',
+ 'numberposts' => -1,
+ 'fields' => 'ids'
+) );
+
+foreach ( $bb_forums as $forum_id ) {
+ $bbpress_can_topic = get_post_meta( $forum_id, '_um_bbpress_can_topic', true );
+ $bbpress_can_topic = ! $bbpress_can_topic ? array() : $bbpress_can_topic;
+ if ( ! empty( $bbpress_can_topic ) ) {
+ $bbpress_can_topic = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $bbpress_can_topic );
+
+ update_post_meta( $forum_id, '_um_bbpress_can_topic', $bbpress_can_topic );
+ }
+
+
+ $bbpress_can_reply = get_post_meta( $forum_id, '_um_bbpress_can_reply', true );
+ $bbpress_can_reply = ! $bbpress_can_reply ? array() : $bbpress_can_reply;
+ if ( ! empty( $bbpress_can_reply ) ) {
+ $bbpress_can_reply = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $bbpress_can_reply );
+
+ update_post_meta( $forum_id, '_um_bbpress_can_reply', $bbpress_can_reply );
+ }
+}
+
+
+
+$mc_lists = get_posts( array(
+ 'post_type' => 'um_mailchimp',
+ 'numberposts' => -1,
+ 'fields' => 'ids'
+) );
+
+foreach ( $mc_lists as $list_id ) {
+ $um_roles = get_post_meta( $list_id, '_um_roles', true );
+ $um_roles = ! $um_roles ? array() : $um_roles;
+ if ( ! empty( $um_roles ) ) {
+ $um_roles = array_map( function( $item ) {
+ return 'um_' . $item;
+ }, $um_roles );
+
+ update_post_meta( $list_id, '_um_roles', $um_roles );
+ }
+}
+
+
+$um_social_login = get_posts( array(
+ 'post_type' => 'um_social_login',
+ 'numberposts' => -1,
+ 'fields' => 'ids'
+) );
+
+foreach ( $um_social_login as $social_login_id ) {
+ $assigned_role = get_post_meta( $social_login_id, '_um_assigned_role', true );
+
+ if ( ! empty( $assigned_role ) ) {
+ $assigned_role = 'um_' . $assigned_role;
+ update_post_meta( $social_login_id, '_um_assigned_role', $assigned_role );
+ }
+}
\ No newline at end of file
diff --git a/includes/class-functions.php b/includes/class-functions.php
index 928bd67a..8d4b2dd5 100644
--- a/includes/class-functions.php
+++ b/includes/class-functions.php
@@ -177,45 +177,14 @@ if ( ! class_exists( 'UM_Functions' ) ) {
}
+ function excluded_taxonomies() {
+ $taxes = array(
+ 'nav_menu',
+ 'link_category',
+ 'post_format',
+ );
- /*
- * redirect
- */
- function redirect( $url ) {
- if ( headers_sent() || empty( $url ) ) {
- $this->cc_js_redirect( $url );
- } else {
- wp_redirect( $url );
- }
- exit;
- }
-
-
- /*
- * JS redirect
- */
- function cc_js_redirect( $url ) {
-
- //for blank redirects
- if ( '' == $url ) {
- $url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
- }
-
- $funtext="echo \"\";";
- register_shutdown_function( create_function( '', $funtext ) );
-
- if ( 1 < ob_get_level() ) {
- while ( ob_get_level() > 1 ) {
- ob_end_clean();
- }
- }
-
- ?>
-
- builtin()->is_dropdown_field( $filter, $attrs ) ) {
- $type = 'select';
- } else if ( 'user_tags' == $attrs['type'] ) {
- $attrs['options'] = apply_filters('um_multiselect_options_user_tags', array(), $attrs);
- $attrs['custom'] = 1;
- $type = 'select';
- } else {
- $type = 'text';
- }
+ $type = UM()->builtin()->is_dropdown_field( $filter, $attrs ) ? 'select' : 'text';
+ $type = apply_filters( 'um_search_field_type', $type, $attrs );
// filter all search fields
$attrs = apply_filters( 'um_search_fields', $attrs );
diff --git a/includes/core/um-actions-account.php b/includes/core/um-actions-account.php
index 2bf8eb0d..5012ee47 100644
--- a/includes/core/um-actions-account.php
+++ b/includes/core/um-actions-account.php
@@ -203,14 +203,12 @@ function um_submit_account_errors_hook( $args ) {
$url = UM()->permalinks()->get_current_url( true );
$url = add_query_arg( 'updated', 'account', $url );
- UM()->redirect( $url );
- exit;
+ um_js_redirect( $url );
}
}
}
- UM()->redirect( $url );
- exit;
+ um_js_redirect( $url );
}
diff --git a/includes/core/um-actions-form.php b/includes/core/um-actions-form.php
index 2bf366bc..7e49972a 100644
--- a/includes/core/um-actions-form.php
+++ b/includes/core/um-actions-form.php
@@ -220,10 +220,6 @@
UM()->form()->add_error($key, sprintf(__('%s is required.','ultimate-member'), $array['title'] ) );
}
- if ( defined('um_user_tags_path') && isset( $array['type'] ) && $array['type'] == 'user_tags' && isset( $array['required'] ) && $array['required'] == 1 && !isset( $args[$key] ) ) {
- UM()->form()->add_error($key, sprintf(__('%s is required.','ultimate-member'), $array['title'] ) );
- }
-
if ( isset( $array['type'] ) && $array['type'] == 'radio' && isset( $array['required'] ) && $array['required'] == 1 && !isset( $args[$key] ) && !in_array($key, array('role_radio','role_select') ) ) {
UM()->form()->add_error($key, sprintf(__('%s is required.','ultimate-member'), $array['title'] ) );
}
@@ -238,6 +234,9 @@
}
}
+
+ do_action( 'um_add_error_on_form_submit_validation', $array, $key, $args );
+
if ( isset( $args[$key] ) ) {
if ( isset( $array['required'] ) && $array['required'] == 1 ) {
diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php
index eae1be79..05a7d491 100644
--- a/includes/um-short-functions.php
+++ b/includes/um-short-functions.php
@@ -754,39 +754,18 @@
*** @Check whether item in dropdown is selected in query-url
***/
function um_select_if_in_query_params( $filter, $val ) {
- /*if ( isset( $_REQUEST['um_search'] ) ) {
- $query = UM()->permalinks()->get_query_array();
- if ( isset( $query[$filter] ) && $val == $query[$filter] )
- echo 'selected="selected"';
- }*/
+ $selected = false;
if ( isset( $_REQUEST['um_search'] ) ) {
$query = UM()->permalinks()->get_query_array();
- if ( ! is_numeric( $query[$filter] ) ) {
- $tags = get_option( 'um_user_tags_filters' );
+ if ( isset( $query[ $filter ] ) && $val == $query[ $filter ] )
+ $selected = true;
- if ( $tags ) {
- $tags = array_unique( array_values( $tags ) );
- if ( in_array( $filter, $tags ) ) {
- $term = get_term_by( 'slug', $query[$filter], 'um_user_tag' );
- if ( ! is_wp_error( $term ) ) {
- if ( isset( $query[$filter] ) && $val == $term->term_id ) {
- echo 'selected="selected"';
- }
- }
- }
- } else {
- if ( isset( $query[$filter] ) && $val == $query[$filter] )
- echo 'selected="selected"';
- }
- } else {
- if ( isset( $query[$filter] ) && $val == $query[$filter] )
- echo 'selected="selected"';
- }
+ $selected = apply_filters( 'um_selected_if_in_query_params', $selected, $filter, $val );
}
- echo '';
+ echo $selected ? 'selected="selected"' : '';
}
/***