@@ -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