Add tags access settings

This commit is contained in:
Champ Camba
2017-02-15 21:33:29 +08:00
parent e80077bdd9
commit fedd8dc223
3 changed files with 116 additions and 3 deletions
-1
View File
@@ -51,7 +51,6 @@
**/
$exclude_taxonomies = array(
'post_tag',
'nav_menu',
'link_category',
'post_format',
+3 -1
View File
@@ -27,7 +27,9 @@ class UM_Access {
do_action('um_access_homepage_per_role');
do_action('um_access_category_settings');
do_action('um_access_tags_settings');
do_action('um_access_post_settings');
if ( $this->redirect_handler && $this->allow_access == false && ! um_is_core_page('login') ) {
+113 -1
View File
@@ -337,7 +337,7 @@
/**
* Archieves/Taxonomies/Categories access settings
* Archives/Taxonomies/Categories access settings
*/
add_action('um_access_category_settings','um_access_category_settings');
function um_access_category_settings() {
@@ -520,6 +520,118 @@
}
/**
* Tags access settings
*/
add_action('um_access_tags_settings','um_access_tags_settings');
function um_access_tags_settings() {
global $post, $wp_query, $ultimatemember;
if ( is_front_page() ||
is_home() ||
is_feed() ||
is_page() ||
is_404()
) {
return;
}
$access = um_get_option('accessible');
$current_page_type = um_get_current_page_type();
$tag_id = get_query_var( 'tag_id' );
if( is_tag() && $current_page_type == 'tag' && $tag_id ){
if( isset( $tag_id ) && ! empty( $tag_id ) ){
$opt = get_option("category_$tag_id");
if ( isset( $opt['_um_accessible'] ) ) {
$redirect = false;
switch( $opt['_um_accessible'] ) {
case 0:
$ultimatemember->access->allow_access = true;
$ultimatemember->access->redirect_handler = ''; // open to everyone
break;
case 1:
if ( is_user_logged_in() ){
if( isset( $opt['_um_redirect'] ) && ! empty( $opt['_um_redirect'] ) ) {
$redirect = $opt['_um_redirect'];
}else{
$redirect = site_url();
}
}
$ultimatemember->access->allow_access = false;
$redirect = $ultimatemember->access->set_referer( $redirect, "tag_1" );
$ultimatemember->access->redirect_handler = esc_url( $redirect );
if ( ! is_user_logged_in() && ! empty( $redirect ) ){
$ultimatemember->access->allow_access = true;
}
break;
case 2:
if ( ! is_user_logged_in() ){
if( isset( $opt['_um_redirect'] ) && ! empty( $opt['_um_redirect'] ) ){
$redirect = $opt['_um_redirect'];
}else{
$redirect = um_get_core_page('login');
}
$ultimatemember->access->allow_access = false;
$redirect = $ultimatemember->access->set_referer( $redirect, "tag_2" );
$ultimatemember->access->redirect_handler = esc_url( $redirect );
}
if ( is_user_logged_in() && isset( $opt['_um_roles'] ) && !empty( $opt['_um_roles'] ) ){
if ( ! in_array( um_user('role'), $opt['_um_roles'] ) ) {
if( isset( $opt['_um_redirect'] ) ){
$redirect = $opt['_um_redirect'];
}
$redirect = $ultimatemember->access->set_referer( $redirect, "tag_2b" );
$ultimatemember->access->redirect_handler = esc_url( $redirect );
}
}
}
}
}
} else if ( $access == 2 && ! is_user_logged_in() && is_tag() ) {
$ultimatemember->access->allow_access = false;
$redirect = um_get_core_page('login');
$redirect = $ultimatemember->access->set_referer( $redirect, "tag" );
$ultimatemember->access->redirect_handler = $redirect;
}
}
/**
* Posts/Page access settings
*/