PluginProbe ʕ •ᴥ•ʔ
Admin and Site Enhancements (ASE) / 2.0.0
Admin and Site Enhancements (ASE) v2.0.0
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-utilities.php
admin-site-enhancements / classes Last commit date
class-activation.php 3 years ago class-admin-interface.php 3 years ago class-content-management.php 3 years ago class-deactivation.php 3 years ago class-security.php 3 years ago class-utilities.php 3 years ago
class-utilities.php
130 lines
1 <?php
2
3 namespace ASENHA\Classes;
4
5 /**
6 * Class related to Utilities features
7 *
8 * @since 1.5.0
9 */
10 class Utilities {
11
12 /**
13 * Redirect to custom internal URL after login for user roles
14 *
15 * @param string $redirect_to_url URL to redirect to. Default is admin dashboard URL.
16 * @param string $origin_url URL the user is coming from.
17 * @param object $user logged-in user's data.
18 * @since 1.5.0
19 */
20 public function redirect_for_roles_after_login( $redirect_to_url, $origin_url, $user ) {
21
22 $options = get_option( ASENHA_SLUG_U );
23 $redirect_after_login_to_slug = $options['redirect_after_login_to_slug'];
24 $redirect_after_login_for = $options['redirect_after_login_for'];
25
26 if ( isset( $redirect_after_login_for ) && ( count( $redirect_after_login_for ) > 0 ) ) {
27
28 // Assemble single-dimensional array of roles for which custom URL redirection should happen
29 $roles_for_custom_redirect = array();
30
31 foreach( $redirect_after_login_for as $role_slug => $custom_redirect ) {
32 if ( $custom_redirect ) {
33 $roles_for_custom_redirect[] = $role_slug;
34 }
35 }
36
37 // Does the user have roles data in array form?
38 if ( isset( $user->roles ) && is_array( $user->roles ) ) {
39
40 $current_user_roles = $user->roles;
41
42 }
43
44 // Set custom redirect URL for roles set in the settings. Otherwise, leave redirect URL to the default, i.e. admin dashboard.
45 foreach ( $current_user_roles as $role ) {
46 if ( in_array( $role, $roles_for_custom_redirect ) ) {
47
48 $redirect_to_url = home_url( $redirect_after_login_to_slug . '/' );
49
50 }
51 }
52
53 }
54
55 return $redirect_to_url;
56
57 }
58
59 /**
60 * Redirect to custom internal URL after login for user roles
61 *
62 * @param string $redirect_to_url URL to redirect to. Default is admin dashboard URL.
63 * @param string $origin_url URL the user is coming from.
64 * @param object $user logged-in user's data.
65 * @since 1.6.0
66 */
67 public function redirect_after_logout( $user_id ) {
68
69 $options = get_option( ASENHA_SLUG_U );
70 $redirect_after_logout_to_slug = $options['redirect_after_logout_to_slug'];
71 $redirect_after_logout_for = $options['redirect_after_logout_for'];
72
73 $user = get_userdata( $user_id );
74
75 if ( isset( $redirect_after_logout_for ) && ( count( $redirect_after_logout_for ) > 0 ) ) {
76
77 // Assemble single-dimensional array of roles for which custom URL redirection should happen
78 $roles_for_custom_redirect = array();
79
80 foreach( $redirect_after_logout_for as $role_slug => $custom_redirect ) {
81 if ( $custom_redirect ) {
82 $roles_for_custom_redirect[] = $role_slug;
83 }
84 }
85
86 // Does the user have roles data in array form?
87 if ( isset( $user->roles ) && is_array( $user->roles ) ) {
88
89 $current_user_roles = $user->roles;
90
91 }
92
93 // Redirect for roles set in the settings. Otherwise, leave redirect URL to the default, i.e. admin dashboard.
94 foreach ( $current_user_roles as $role ) {
95 if ( in_array( $role, $roles_for_custom_redirect ) ) {
96
97 wp_safe_redirect( home_url( $redirect_after_logout_to_slug . '/' ) );
98 exit();
99
100 }
101 }
102
103 }
104
105 }
106
107 /**
108 * Redirect 404 to homepage
109 *
110 * @since 1.7.0
111 */
112 public function redirect_404_to_homepage() {
113
114 if ( ! is_404() || is_admin() || ( defined( 'DOING_CRON' ) && DOING_CRON ) || ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) ) {
115
116 return;
117
118 } else {
119
120 // wp_safe_redirect( home_url(), 301 );
121
122 header( 'HTTP/1.1 301 Moved Permanently');
123 header( 'Location: ' . home_url() );
124 exit();
125
126 }
127
128 }
129
130 }