diff --git a/admin/assets/css/um-admin-global.css b/admin/assets/css/um-admin-global.css
index e7b98e69..638c9a37 100644
--- a/admin/assets/css/um-admin-global.css
+++ b/admin/assets/css/um-admin-global.css
@@ -20,8 +20,6 @@
-moz-osx-font-smoothing: grayscale !important;
}
-#um-admin-access-control * {vertical-align: middle}
-
#um-admin-access-control p {font-size: 13px}
#um-admin-access-control input[type=text] {font-size: 13px}
diff --git a/admin/core/um-admin-metabox.php b/admin/core/um-admin-metabox.php
index b20f687e..a636903d 100644
--- a/admin/core/um-admin-metabox.php
+++ b/admin/core/um-admin-metabox.php
@@ -107,8 +107,10 @@ class UM_Admin_Metabox {
***/
function ui_on_off( $id, $default=0, $is_conditional=false, $cond1='', $cond1_show='', $cond1_hide='' ) {
- if (isset($this->postmeta[$id][0])) {
- $active = $this->postmeta[$id][0];
+ $meta = get_post_meta( get_the_ID(), $id, true );
+
+ if (isset($this->postmeta[$id][0]) || $meta ) {
+ $active = ( isset( $this->postmeta[$id][0] ) ) ? $this->postmeta[$id][0] : $meta;
} else {
$active = $default;
}
diff --git a/admin/templates/access/settings.php b/admin/templates/access/settings.php
index 2c0e5a5b..69cad4c3 100644
--- a/admin/templates/access/settings.php
+++ b/admin/templates/access/settings.php
@@ -1,51 +1,62 @@
-
tooltip( __('Who can access this content?','ultimatemember'), 'e'); ?>
+ tooltip( __('Switch to yes to override global access settings','ultimatemember'), 'e'); ?>
-
-
- ID, '_um_accessible', true); ?>
-
-
-
-
-
+
+
+ ui_on_off('_um_custom_access_settings', 0, true, 1, '_um_custom_access_settings', 'xxx'); ?>
-
+
-
tooltip( __('This is the URL that user is redirected to If he is not permitted to view this content','ultimatemember'), 'e'); ?>
+
tooltip( __('Who can access this content?','ultimatemember'), 'e'); ?>
-
+
- ID, '_um_access_redirect2', true); ?>
-
-
-
-
-
-
-
-
-
-
tooltip( __('If you do not select any role, all members wil be able to view this content','ultimatemember'), 'e'); ?>
-
-
-
- ID, '_um_access_roles', true); ?>
+ ID, '_um_accessible', true); ?>
- query->get_roles() as $role_id => $role) { ?>
-
-
-
-
-
-
tooltip( __('This is the URL that user is redirected to If he is not permitted to view this content','ultimatemember'), 'e'); ?>
-
-
-
- ID, '_um_access_redirect', true); ?>
+
+
+
-
-
+
+
+
+
tooltip( __('This is the URL that user is redirected to If he is not permitted to view this content','ultimatemember'), 'e'); ?>
+
+
+
+ ID, '_um_access_redirect2', true); ?>
+
+
+
+
+
+
+
+
+
tooltip( __('If you do not select any role, all members wil be able to view this content','ultimatemember'), 'e'); ?>
+
+
+
+ ID, '_um_access_roles', true); ?>
+
+ query->get_roles() as $role_id => $role) { ?>
+
+
+
+
+
+
tooltip( __('This is the URL that user is redirected to If he is not permitted to view this content','ultimatemember'), 'e'); ?>
+
+
+
+ ID, '_um_access_redirect', true); ?>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/assets/css/um-account.css b/assets/css/um-account.css
index 594a281c..bcf0146c 100644
--- a/assets/css/um-account.css
+++ b/assets/css/um-account.css
@@ -65,9 +65,9 @@
margin-bottom: 20px;
}
-.um-account-meta img {
- border-radius: 999px;
-}
+.um-account-meta.radius-1 img { border-radius: 999px }
+.um-account-meta.radius-2 img { border-radius: 4px }
+.um-account-meta.radius-3 img { border-radius: 0 }
.um-account-name a {
font-weight: bold;
diff --git a/assets/css/um-members.css b/assets/css/um-members.css
index 19556dc2..20a503c5 100644
--- a/assets/css/um-members.css
+++ b/assets/css/um-members.css
@@ -170,7 +170,6 @@
.um-member-photo img {
display: inline !important;
- border-radius: 999px !important;
border: 5px solid #fff;
background: #fff;
width: 140px;
@@ -186,6 +185,10 @@
margin-bottom: -45px !important;
}
+.um-member-photo.radius-1 img { border-radius: 999px !important }
+.um-member-photo.radius-2 img { border-radius: 4px !important }
+.um-member-photo.radius-3 img { border-radius: 0 !important }
+
/*
- Member name
*/
diff --git a/core/um-access.php b/core/um-access.php
index b7b7c8ce..3c248932 100644
--- a/core/um-access.php
+++ b/core/um-access.php
@@ -4,11 +4,26 @@ class UM_Access {
function __construct() {
- // hook into template redirects [home]
- add_action('template_redirect', array(&$this, 'custom_homepage_per_role'), 1000);
+ $this->redirect_handler = false;
+ $this->allow_access = false;
- // hook into template redirects
- add_action('template_redirect', array(&$this, 'post_page_access_control'), 999);
+ add_action('template_redirect', array(&$this, 'template_redirect'), 1000 );
+
+ }
+
+ /***
+ *** @do actions based on priority
+ ***/
+ function template_redirect() {
+
+ do_action('um_access_homepage_per_role');
+
+ do_action('um_access_global_settings');
+
+ do_action('um_access_post_settings');
+
+ if ( $this->redirect_handler && !$this->allow_access )
+ exit( wp_redirect( $this->redirect_handler ) );
}
@@ -30,66 +45,5 @@ class UM_Access {
else
return array('');
}
-
- /***
- *** @custom homepage per role
- ***/
- function custom_homepage_per_role(){
-
- if ( !is_user_logged_in() ) return;
- if ( is_admin() ) return;
- if ( um_user('default_homepage') ) return;
- if ( !um_user('redirect_homepage') ) return;
-
- if( is_home() || is_front_page() )
- exit( wp_redirect( um_user('redirect_homepage') ) );
-
- }
-
- /***
- *** @the main restrict function
- ***/
- function post_page_access_control(){
- global $post;
-
- if ( !get_post_type() || !isset($post->ID) ) return;
-
- $args = $this->get_meta();
- extract($args);
-
- $redirect_to = null;
-
- if ( !isset( $accessible ) ) return;
-
- switch( $accessible ) {
-
- case 0:
- break;
-
- case 1:
-
- if ( is_user_logged_in() )
- $redirect_to = $access_redirect2;
- break;
-
- case 2:
-
- if ( !is_user_logged_in() )
- $redirect_to = $access_redirect;
-
- if ( isset( $access_roles ) && !empty( $access_roles ) )
- if ( !in_array( um_user('role'), unserialize( $access_roles ) ) )
- $redirect_to = $access_redirect;
-
- break;
-
- }
-
- if ( $redirect_to ) {
- wp_redirect( $redirect_to );
- exit;
- }
-
- }
}
\ No newline at end of file
diff --git a/core/um-actions-access.php b/core/um-actions-access.php
new file mode 100644
index 00000000..65d208ab
--- /dev/null
+++ b/core/um-actions-access.php
@@ -0,0 +1,108 @@
+access->redirect_handler = um_user('redirect_homepage');
+ }
+
+ /***
+ *** @
+ ***/
+ add_action('um_access_global_settings','um_access_global_settings');
+ function um_access_global_settings() {
+ global $post, $ultimatemember;
+
+ $access = um_get_option('accessible');
+
+ if ( $access == 2 && !is_user_logged_in() ) {
+
+ $redirect = um_get_option('access_redirect');
+
+ $redirects[] = trailingslashit( um_get_core_page('login') );
+ $redirects[] = trailingslashit( um_get_option('access_redirect') );
+
+ $exclude_uris = um_get_option('access_exclude_uris');
+
+ if ( $exclude_uris ) {
+ $redirects = array_merge( $redirects, $exclude_uris );
+ }
+
+ $current_url = trailingslashit( $ultimatemember->permalinks->get_current_url(true) );
+
+ if ( isset( $post->ID ) && in_array( $current_url, $redirects ) ) {
+ // allow
+ } else {
+ $ultimatemember->access->redirect_handler = $redirect;
+ }
+ }
+
+ }
+
+ /***
+ *** @
+ ***/
+ add_action('um_access_post_settings','um_access_post_settings');
+ function um_access_post_settings() {
+ global $post, $ultimatemember;
+
+ if ( !get_post_type() || !isset($post->ID) ) return;
+
+ $args = $ultimatemember->access->get_meta();
+ extract($args);
+
+ if ( !isset( $args['custom_access_settings'] ) || $args['custom_access_settings'] == 0 ) return;
+
+ $redirect_to = null;
+
+ if ( !isset( $accessible ) ) return;
+
+ switch( $accessible ) {
+
+ case 0:
+ $ultimatemember->access->allow_access = true;
+ $ultimatemember->access->redirect_handler = false; // open to everyone
+ break;
+
+ case 1:
+
+ if ( is_user_logged_in() )
+ $redirect_to = $access_redirect2;
+
+ if ( !is_user_logged_in() )
+ $ultimatemember->access->allow_access = true;
+
+ break;
+
+ case 2:
+
+ if ( !is_user_logged_in() ){
+ if ( !$access_redirect ) $access_redirect = home_url();
+ $redirect_to = $access_redirect;
+ }
+
+ if ( is_user_logged_in() && isset( $access_roles ) && !empty( $access_roles ) ){
+ if ( !in_array( um_user('role'), unserialize( $access_roles ) ) ) {
+ $redirect_to = $access_redirect;
+ }
+ }
+
+ break;
+
+ }
+
+ if ( $redirect_to ) {
+ $ultimatemember->access->redirect_handler = $redirect_to;
+ }
+
+ }
\ No newline at end of file
diff --git a/core/um-actions-account.php b/core/um-actions-account.php
index ec990cc5..6d01139e 100644
--- a/core/um-actions-account.php
+++ b/core/um-actions-account.php
@@ -243,7 +243,7 @@
?>
-