Sitelet https://github.com/itsupportcmsukorg/ultimatemember/commit/fedd8dc22369c8aca03dba0b22edd93d14550e31
Skip to content

Commit fedd8dc

Browse files
Add tags access settings
1 parent e80077b commit fedd8dc

3 files changed

Lines changed: 116 additions & 3 deletions

File tree

‎admin/core/um-admin-actions.php‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ function um_save_custom_user_profile_fields( $user_id ) {
5151
**/
5252

5353
$exclude_taxonomies = array(
54-
'post_tag',
5554
'nav_menu',
5655
'link_category',
5756
'post_format',

‎core/um-access.php‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ function template_redirect() {
2727
do_action('um_access_homepage_per_role');
2828

2929
do_action('um_access_category_settings');
30-
30+
31+
do_action('um_access_tags_settings');
32+
3133
do_action('um_access_post_settings');
3234

3335
if ( $this->redirect_handler && $this->allow_access == false && ! um_is_core_page('login') ) {

‎core/um-actions-access.php‎

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ function um_access_homepage_per_role() {
337337

338338

339339
/**
340-
* Archieves/Taxonomies/Categories access settings
340+
* Archives/Taxonomies/Categories access settings
341341
*/
342342
add_action('um_access_category_settings','um_access_category_settings');
343343
function um_access_category_settings() {
@@ -520,6 +520,118 @@ function um_access_category_settings() {
520520

521521
}
522522

523+
/**
524+
* Tags access settings
525+
*/
526+
add_action('um_access_tags_settings','um_access_tags_settings');
527+
function um_access_tags_settings() {
528+
global $post, $wp_query, $ultimatemember;
529+
530+
if ( is_front_page() ||
531+
is_home() ||
532+
is_feed() ||
533+
is_page() ||
534+
is_404()
535+
) {
536+
537+
return;
538+
539+
}
540+
541+
$access = um_get_option('accessible');
542+
$current_page_type = um_get_current_page_type();
543+
544+
$tag_id = get_query_var( 'tag_id' );
545+
546+
if( is_tag() && $current_page_type == 'tag' && $tag_id ){
547+
548+
if( isset( $tag_id ) && ! empty( $tag_id ) ){
549+
550+
$opt = get_option("category_$tag_id");
551+
552+
if ( isset( $opt['_um_accessible'] ) ) {
553+
554+
$redirect = false;
555+
556+
switch( $opt['_um_accessible'] ) {
557+
558+
case 0:
559+
560+
$ultimatemember->access->allow_access = true;
561+
$ultimatemember->access->redirect_handler = ''; // open to everyone
562+
563+
break;
564+
565+
case 1:
566+
567+
if ( is_user_logged_in() ){
568+
569+
if( isset( $opt['_um_redirect'] ) && ! empty( $opt['_um_redirect'] ) ) {
570+
$redirect = $opt['_um_redirect'];
571+
}else{
572+
$redirect = site_url();
573+
}
574+
}
575+
576+
$ultimatemember->access->allow_access = false;
577+
578+
$redirect = $ultimatemember->access->set_referer( $redirect, "tag_1" );
579+
580+
$ultimatemember->access->redirect_handler = esc_url( $redirect );
581+
582+
if ( ! is_user_logged_in() && ! empty( $redirect ) ){
583+
$ultimatemember->access->allow_access = true;
584+
}
585+
586+
break;
587+
588+
case 2:
589+
590+
if ( ! is_user_logged_in() ){
591+
592+
if( isset( $opt['_um_redirect'] ) && ! empty( $opt['_um_redirect'] ) ){
593+
$redirect = $opt['_um_redirect'];
594+
}else{
595+
$redirect = um_get_core_page('login');
596+
}
597+
598+
$ultimatemember->access->allow_access = false;
599+
600+
$redirect = $ultimatemember->access->set_referer( $redirect, "tag_2" );
601+
602+
$ultimatemember->access->redirect_handler = esc_url( $redirect );
603+
}
604+
605+
if ( is_user_logged_in() && isset( $opt['_um_roles'] ) && !empty( $opt['_um_roles'] ) ){
606+
if ( ! in_array( um_user('role'), $opt['_um_roles'] ) ) {
607+
608+
609+
if( isset( $opt['_um_redirect'] ) ){
610+
$redirect = $opt['_um_redirect'];
611+
}
612+
$redirect = $ultimatemember->access->set_referer( $redirect, "tag_2b" );
613+
614+
$ultimatemember->access->redirect_handler = esc_url( $redirect );
615+
616+
}
617+
}
618+
619+
}
620+
}
621+
}
622+
623+
} else if ( $access == 2 && ! is_user_logged_in() && is_tag() ) {
624+
625+
$ultimatemember->access->allow_access = false;
626+
$redirect = um_get_core_page('login');
627+
$redirect = $ultimatemember->access->set_referer( $redirect, "tag" );
628+
629+
$ultimatemember->access->redirect_handler = $redirect;
630+
631+
}
632+
633+
}
634+
523635
/**
524636
* Posts/Page access settings
525637
*/

0 commit comments

Comments
 (0)