PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 7.8.1
Admin and Site Enhancements (ASE) v7.8.1
9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 8.3.2 8.4.0 8.4.1 8.4.2 8.5.0 8.5.1 8.5.2 8.6.0 8.6.1 8.6.2 8.7.0 5.0.1 5.0.2 5.0.2.1 5.0.2.2 5.0.2.3 5.0.2.4 5.1.0 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.8.0 5.8.1 6.0.0 6.0.3 6.0.4 6.0.5 6.0.5.1 6.0.6 6.0.7 6.0.8.1 6.1.0 6.1.3 6.2.0 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.2.7 6.3.0 6.3.1 6.3.2 6.4.0 6.5.0 6.5.1 6.6.0 6.7.0 6.8.0 6.8.2 6.8.3 6.9.0 6.9.1 6.9.10 6.9.11 6.9.12 6.9.13.1 6.9.13.2 6.9.2 6.9.3 6.9.4 6.9.5 6.9.6 6.9.7 6.9.8 6.9.9 7.0.0 7.0.2 7.0.2.1 7.0.2.2 7.0.2.3 7.0.3 7.1.0 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2.0 7.2.1 7.3.0 7.3.1 7.3.2 7.3.3 7.4.0 7.4.2 7.4.4 7.4.5 7.4.6 7.4.7 7.4.8 7.5.0 7.5.1 7.5.2 7.5.3 7.5.4 7.6.0 7.6.1 7.6.1.1 7.6.10 7.6.11 7.6.2 7.6.3 7.6.4 7.6.5 7.6.6 7.6.7 7.6.7.1 7.6.8 7.6.9 7.7.0 7.8.0 7.8.1 7.8.10 7.8.11 7.8.12 7.8.13 7.8.14 7.8.15 7.8.16 7.8.17 7.8.18 7.8.2 7.8.3 7.8.4 7.8.5 7.8.5.1 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1 7.9.10 7.9.11 7.9.2 7.9.3 7.9.4 7.9.5 7.9.6 7.9.7 7.9.8 7.9.9 8.0.0 8.0.1 8.0.2 8.0.3 8.0.4 8.0.5 8.0.6 8.0.7 8.0.8 8.1.0 8.1.1 8.1.2 8.1.3 8.1.4 8.2.0 trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 2.0.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.1 2.8.2 2.8.3 2.9.0 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.2.0 3.3.0 3.4.0 3.5.0 3.6.1 3.7.0 3.8.0 3.9.0 3.9.1 3.9.2 4.0.0 4.0.1 4.1.0 4.2.0 4.2.1 4.2.2 4.3.0 4.3.1 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.9.0 4.9.1 4.9.2 4.9.3 5.0.0
admin-site-enhancements / classes / class-redirect-after-logout.php
admin-site-enhancements / classes Last commit date
class-activation.php 1 year ago class-admin-menu-organizer.php 1 year ago class-auto-publish-posts-with-missed-schedule.php 1 year ago class-avif-upload.php 1 year ago class-captcha-protection.php 1 year ago class-change-login-url.php 1 year ago class-cleanup-admin-bar.php 1 year ago class-common-methods.php 1 year ago class-content-duplication.php 1 year ago class-content-order.php 1 year ago class-custom-admin-footer-text.php 1 year ago class-custom-body-class.php 1 year ago class-custom-css.php 1 year ago class-custom-nav-menu-items-in-new-tab.php 1 year ago class-deactivation.php 1 year ago class-disable-comments.php 1 year ago class-disable-dashboard-widgets.php 1 year ago class-disable-feeds.php 1 year ago class-disable-gutenberg.php 1 year ago class-disable-rest-api.php 1 year ago class-disable-smaller-components.php 1 year ago class-disable-updates.php 1 year ago class-disable-xml-rpc.php 1 year ago class-display-system-summary.php 1 year ago class-email-address-obfuscator.php 1 year ago class-email-delivery.php 1 year ago class-enhance-list-tables.php 1 year ago class-external-permalinks.php 1 year ago class-heartbeat-control.php 1 year ago class-hide-admin-bar.php 1 year ago class-hide-admin-notices.php 1 year ago class-image-sizes-panel.php 1 year ago class-image-upload-control.php 1 year ago class-insert-head-body-footer-code.php 1 year ago class-last-login-column.php 1 year ago class-limit-login-attempts.php 1 year ago class-login-id-type.php 1 year ago class-login-logout-menu.php 1 year ago class-maintenance-mode.php 1 year ago class-manage-ads-appads-txt.php 1 year ago class-manage-robots-txt.php 1 year ago class-media-replacement.php 1 year ago class-multiple-user-roles.php 1 year ago class-obfuscate-author-slugs.php 1 year ago class-open-external-links-in-new-tab.php 1 year ago class-password-protection.php 1 year ago class-redirect-after-login.php 1 year ago class-redirect-after-logout.php 1 year ago class-redirect-fourofour.php 1 year ago class-registration-date-column.php 1 year ago class-revisions-control.php 1 year ago class-search-engines-visibility.php 1 year ago class-settings-fields-render.php 1 year ago class-settings-sanitization.php 1 year ago class-settings-sections-fields.php 1 year ago class-show-custom-taxonomy-filters.php 1 year ago class-site-identity-on-login-page.php 1 year ago class-svg-upload.php 1 year ago class-various-admin-ui-enhancements.php 1 year ago class-view-admin-as-role.php 1 year ago class-wider-admin-menu.php 1 year ago class-wp-config-transformer.php 1 year ago
class-redirect-after-logout.php
227 lines
1 <?php
2
3 namespace ASENHA\Classes;
4
5 /**
6 * Class for Redirect After Logout module
7 *
8 * @since 6.9.5
9 */
10 class Redirect_After_Logout {
11 /**
12 * Redirect to custom internal URL after login for user roles
13 *
14 * @param string $redirect_to_url URL to redirect to. Default is admin dashboard URL.
15 * @param string $origin_url URL the user is coming from.
16 * @param object $user logged-in user's data.
17 * @since 1.6.0
18 */
19 public function redirect_after_logout( $user_id ) {
20 $options = get_option( ASENHA_SLUG_U, array() );
21 $this->redirect_to_single_url( $user_id );
22 }
23
24 /**
25 * Redirect all applicable user roles to a single URL
26 *
27 * @since 7.3.3
28 */
29 public function redirect_to_single_url( $user_id ) {
30 $options = get_option( ASENHA_SLUG_U, array() );
31 $redirect_after_logout_to_slug_raw = ( isset( $options['redirect_after_logout_to_slug'] ) ? $options['redirect_after_logout_to_slug'] : '' );
32 if ( !empty( $redirect_after_logout_to_slug_raw ) ) {
33 $redirect_after_logout_to_slug = trim( trim( $redirect_after_logout_to_slug_raw ), '/' );
34 $relative_path = $redirect_after_logout_to_slug . '/';
35 } else {
36 $relative_path = '';
37 }
38 $redirect_after_logout_for = $options['redirect_after_logout_for'];
39 $user = get_userdata( $user_id );
40 if ( isset( $redirect_after_logout_for ) && count( $redirect_after_logout_for ) > 0 ) {
41 // Assemble single-dimensional array of roles for which custom URL redirection should happen
42 $roles_for_custom_redirect = array();
43 foreach ( $redirect_after_logout_for as $role_slug => $custom_redirect ) {
44 if ( $custom_redirect ) {
45 $roles_for_custom_redirect[] = $role_slug;
46 }
47 }
48 // Does the user have roles data in array form?
49 if ( isset( $user->roles ) && is_array( $user->roles ) ) {
50 $current_user_roles = $user->roles;
51 }
52 // Redirect for roles set in the settings. Otherwise, leave redirect URL to the default, i.e. admin dashboard.
53 foreach ( $current_user_roles as $role ) {
54 if ( in_array( $role, $roles_for_custom_redirect ) ) {
55 wp_safe_redirect( home_url( $relative_path ) );
56 exit;
57 }
58 }
59 }
60 }
61
62 /**
63 * Get the relative path to redirect to based on the raw redirect slug
64 *
65 * @since 7.3.3
66 */
67 public function get_redirect_relative_path( $redirect_after_logout_to_slug_raw ) {
68 if ( !empty( $redirect_after_logout_to_slug_raw ) ) {
69 $redirect_after_logout_to_slug = trim( trim( $redirect_after_logout_to_slug_raw ), '/' );
70 $relative_path = $redirect_after_logout_to_slug . '/';
71 } else {
72 $relative_path = '';
73 }
74 return $relative_path;
75 }
76
77 /**
78 * Apply custom redirect URL based on user role
79 *
80 * @since 7.4.8
81 */
82 // public function apply_custom_logout_redirect( $redirect_to, $requested_redirect_to, $user ) {
83 // $options = get_option( ASENHA_SLUG_U, array() );
84 // if ( bwasenha_fs()->can_use_premium_code__premium_only() ) {
85 // $redirect_after_logout_type = isset( $options['redirect_after_logout_type'] ) ? $options['redirect_after_logout_type'] : 'single_url';
86 // if ( 'separate_urls' == $redirect_after_logout_type ) {
87 // $redirect_after_logout_for_separate_role = isset( $options['redirect_after_logout_for_separate_role'] ) ? $options['redirect_after_logout_for_separate_role'] : array();
88 // $redirect_after_logout_for_separate_slug = isset( $options['redirect_after_logout_for_separate_slug'] ) ? $options['redirect_after_logout_for_separate_slug'] : array();
89 // if ( isset( $user->roles ) && is_array( $user->roles ) ) {
90 // $current_user_roles = $user->roles;
91 // }
92 // if ( isset( $redirect_after_logout_for_separate_role ) && ( count( $redirect_after_logout_for_separate_role ) > 0 ) ) {
93 // foreach ( $current_user_roles as $role ) {
94 // foreach ( $redirect_after_logout_for_separate_role as $role_slug => $custom_redirect ) {
95 // if ( $role == $role_slug
96 // && $custom_redirect
97 // ) {
98 // $redirect_after_logout_to_slug_raw = $redirect_after_logout_for_separate_slug[$role_slug];
99 // $relative_path = $this->get_redirect_relative_path( $redirect_after_logout_to_slug_raw );
100 // $redirect_to = home_url( $relative_path );
101 // }
102 // }
103 // }
104 // }
105 // } else {
106 // $redirect_to = $this->get_redirect_to_single_url( $user );
107 // }
108 // } else {
109 // $redirect_to = $this->get_redirect_to_single_url( $user );
110 // }
111 // return $redirect_to;
112 // }
113 /**
114 * Return the single redirect URL for all roles
115 *
116 * @since 7.4.8
117 */
118 // public function get_redirect_to_single_url( $user ) {
119 // $options = get_option( ASENHA_SLUG_U, array() );
120 // $redirect_after_logout_to_slug_raw = isset( $options['redirect_after_logout_to_slug'] ) ? $options['redirect_after_logout_to_slug'] : '';
121 // if ( ! empty( $redirect_after_logout_to_slug_raw ) ) {
122 // $redirect_after_logout_to_slug = trim( trim( $redirect_after_logout_to_slug_raw ), '/');
123 // $relative_path = $redirect_after_logout_to_slug . '/';
124 // } else {
125 // $relative_path = '';
126 // }
127 // $redirect_after_logout_for = $options['redirect_after_logout_for'];
128 // if ( isset( $redirect_after_logout_for ) && ( count( $redirect_after_logout_for ) > 0 ) ) {
129 // // Assemble single-dimensional array of roles for which custom URL redirection should happen
130 // $roles_for_custom_redirect = array();
131 // foreach( $redirect_after_logout_for as $role_slug => $custom_redirect ) {
132 // if ( $custom_redirect ) {
133 // $roles_for_custom_redirect[] = $role_slug;
134 // }
135 // }
136 // // Does the user have roles data in array form?
137 // if ( isset( $user->roles ) && is_array( $user->roles ) ) {
138 // $current_user_roles = $user->roles;
139 // }
140 // // Redirect for roles set in the settings. Otherwise, leave redirect URL to the default, i.e. admin dashboard.
141 // foreach ( $current_user_roles as $role ) {
142 // if ( in_array( $role, $roles_for_custom_redirect ) ) {
143 // $redirect_to = home_url( $relative_path );
144 // }
145 // }
146 // }
147 // return $redirect_to;
148 // }
149 /**
150 * Modifies the logout URL to include the custom logout slug
151 *
152 * @since 7.4.8
153 */
154 // public function add_redirect_to_in_logout_url( $logout_url, $redirect ) {
155 // $options = get_option( ASENHA_SLUG_U, array() );
156 // $user = wp_get_current_user();
157 // if ( isset( $user->roles ) && is_array( $user->roles ) ) {
158 // $current_user_roles = $user->roles;
159 // }
160 // if ( bwasenha_fs()->can_use_premium_code__premium_only() ) {
161 // $redirect_after_logout_type = isset( $options['redirect_after_logout_type'] ) ? $options['redirect_after_logout_type'] : 'single_url';
162 // if ( 'separate_urls' == $redirect_after_logout_type ) {
163 // $redirect_after_logout_for_separate_role = isset( $options['redirect_after_logout_for_separate_role'] ) ? $options['redirect_after_logout_for_separate_role'] : array();
164 // $redirect_after_logout_for_separate_slug = isset( $options['redirect_after_logout_for_separate_slug'] ) ? $options['redirect_after_logout_for_separate_slug'] : array();
165 // if ( isset( $redirect_after_logout_for_separate_role ) && ( count( $redirect_after_logout_for_separate_role ) > 0 ) ) {
166 // foreach ( $current_user_roles as $role ) {
167 // foreach ( $redirect_after_logout_for_separate_role as $role_slug => $custom_redirect ) {
168 // if ( $role == $role_slug
169 // && $custom_redirect
170 // ) {
171 // $redirect_to_slug = $redirect_after_logout_for_separate_slug[$role_slug];
172 // }
173 // }
174 // }
175 // }
176 // } else {
177 // $redirect_to_slug = $this->redirect_to_slug_for_all_roles( $user );
178 // }
179 // } else {
180 // $redirect_to_slug = $this->redirect_to_slug_for_all_roles( $user );
181 // }
182 // if ( false === strpos( $logout_url, 'redirect_to' ) ) {
183 // $logout_url = $logout_url . '&redirect_to=' . $redirect_to_slug;
184 // } else {
185 // $logout_url = add_query_arg( array( 'redirect_to' => false ), $logout_url ); // remove existing redirect_to
186 // $logout_url = add_query_arg( array( 'redirect_to' => $redirect_to_slug ), $logout_url ); // add custom redirect_to slug
187 // }
188 // return $logout_url;
189 // }
190 /**
191 * Get redirect_to slug for all roles
192 *
193 * @since 7.4.8
194 */
195 // public function redirect_to_slug_for_all_roles( $user ) {
196 // $options = get_option( ASENHA_SLUG_U, array() );
197 // $redirect_after_logout_to_slug_raw = isset( $options['redirect_after_logout_to_slug'] ) ? $options['redirect_after_logout_to_slug'] : '';
198 // $redirect_to_slug = '';
199 // if ( ! empty( $redirect_after_logout_to_slug_raw ) ) {
200 // $redirect_to_slug_processed = trim( trim( $redirect_after_logout_to_slug_raw ), '/');
201 // } else {
202 // $redirect_to_slug_processed = '';
203 // }
204 // $redirect_after_logout_for = $options['redirect_after_logout_for'];
205 // if ( isset( $redirect_after_logout_for ) && ( count( $redirect_after_logout_for ) > 0 ) ) {
206 // // Assemble single-dimensional array of roles for which custom URL redirection should happen
207 // $roles_for_custom_redirect = array();
208 // foreach( $redirect_after_logout_for as $role_slug => $custom_redirect ) {
209 // if ( $custom_redirect ) {
210 // $roles_for_custom_redirect[] = $role_slug;
211 // }
212 // }
213 // // Does the user have roles data in array form?
214 // if ( isset( $user->roles ) && is_array( $user->roles ) ) {
215 // $current_user_roles = $user->roles;
216 // }
217 // // Redirect for roles set in the settings. Otherwise, leave redirect URL to the default, i.e. admin dashboard.
218 // foreach ( $current_user_roles as $role ) {
219 // if ( in_array( $role, $roles_for_custom_redirect ) ) {
220 // $redirect_to_slug = $redirect_to_slug_processed;
221 // }
222 // }
223 // }
224 // return $redirect_to_slug;
225 // }
226 }
227