mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-06-05 15:09:37 +09:00
Add tags access settings
This commit is contained in:
@@ -51,7 +51,6 @@
|
||||
**/
|
||||
|
||||
$exclude_taxonomies = array(
|
||||
'post_tag',
|
||||
'nav_menu',
|
||||
'link_category',
|
||||
'post_format',
|
||||
|
||||
+3
-1
@@ -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
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user