PluginProbe
Admin and Site Enhancements (ASE) / 9.1.1
Admin and Site Enhancements (ASE) v9.1.1
9.1.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 All 273 releases
admin-site-enhancements / functions.php
functions.php
240 lines 7.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Get kses ruleset extended to allow svg
5 *
6 * @since 6.9.5
7 */
8 function get_kses_with_svg_ruleset() {
9 $kses_defaults = wp_kses_allowed_html( 'post' );
10 $svg_args = array(
11 'svg' => array(
12 'class' => true,
13 'aria-hidden' => true,
14 'aria-labelledby' => true,
15 'role' => true,
16 'xmlns' => true,
17 'width' => true,
18 'height' => true,
19 'viewbox' => true,
20 'viewBox' => true,
21 ),
22 'g' => array(
23 'fill' => true,
24 'fill-rule' => true,
25 'stroke' => true,
26 'stroke-linejoin' => true,
27 'stroke-width' => true,
28 'stroke-linecap' => true,
29 ),
30 'title' => array(
31 'title' => true,
32 ),
33 'path' => array(
34 'd' => true,
35 'fill' => true,
36 'stroke' => true,
37 'stroke-linejoin' => true,
38 'stroke-width' => true,
39 'stroke-linecap' => true,
40 ),
41 'rect' => array(
42 'width' => true,
43 'height' => true,
44 'x' => true,
45 'y' => true,
46 'rx' => true,
47 'ry' => true,
48 ),
49 'circle' => array(
50 'cx' => true,
51 'cy' => true,
52 'r' => true,
53 ),
54 );
55 return array_merge( $kses_defaults, $svg_args );
56 // Example usage: wp_kses( $the_svg_icon, get_kses_with_svg_ruleset() );
57 }
58
59 /**
60 * Get kses ruleset extended to allow style and script tags
61 *
62 * @since 6.9.5
63 */
64 function get_kses_with_style_src_ruleset() {
65 $kses_defaults = wp_kses_allowed_html( 'post' );
66 $style_script_args = array(
67 'link' => array(
68 'rel' => true,
69 'href' => true,
70 'sizes' => true,
71 'crossorigin' => true,
72 ),
73 'style' => true,
74 'script' => array(
75 'src' => true,
76 ),
77 );
78 return array_merge( $kses_defaults, $style_script_args );
79 // Example usage: wp_kses( $the_html, get_kses_with_style_src_ruleset() );
80 }
81
82 /**
83 * Get kses ruleset extended to allow style and script tags
84 *
85 * @since 6.9.5
86 */
87 function get_kses_with_style_src_svg_ruleset() {
88 $kses_defaults = wp_kses_allowed_html( 'post' );
89 $style_script_svg_args = array(
90 'input' => array(
91 'type' => true,
92 'id' => true,
93 'class' => true,
94 'name' => true,
95 'value' => true,
96 'style' => true,
97 ),
98 'style' => true,
99 'script' => array(
100 'src' => true,
101 ),
102 'iframe' => array(
103 'title' => true,
104 'name' => true,
105 'wdith' => true,
106 'height' => true,
107 'src' => true,
108 'srcdoc' => true,
109 'align' => true,
110 'frameborder' => true,
111 'scrolling' => true,
112 'allow' => true,
113 'referrerpolicy' => true,
114 'allowfullscreen' => true,
115 'loading' => true,
116 'sandbox' => true,
117 ),
118 'svg' => array(
119 'class' => true,
120 'aria-hidden' => true,
121 'aria-labelledby' => true,
122 'role' => true,
123 'xmlns' => true,
124 'width' => true,
125 'height' => true,
126 'viewbox' => true,
127 'viewBox' => true,
128 ),
129 'g' => array(
130 'fill' => true,
131 'fill-rule' => true,
132 'stroke' => true,
133 'stroke-linejoin' => true,
134 'stroke-width' => true,
135 'stroke-linecap' => true,
136 ),
137 'title' => array(
138 'title' => true,
139 ),
140 'path' => array(
141 'd' => true,
142 'fill' => true,
143 'stroke' => true,
144 'stroke-linejoin' => true,
145 'stroke-width' => true,
146 'stroke-linecap' => true,
147 ),
148 'rect' => array(
149 'width' => true,
150 'height' => true,
151 'x' => true,
152 'y' => true,
153 'rx' => true,
154 'ry' => true,
155 ),
156 'circle' => array(
157 'cx' => true,
158 'cy' => true,
159 'r' => true,
160 ),
161 );
162 return array_merge( $kses_defaults, $style_script_svg_args );
163 // Example usage: wp_kses( $the_html, get_kses_with_style_src_svg_ruleset() );
164 }
165
166 /**
167 * Get kses ruleset extended to allow input tags
168 *
169 * @since 6.9.5
170 */
171 function get_kses_with_custom_html_ruleset() {
172 $kses_defaults = wp_kses_allowed_html( 'post' );
173 $span_attrs = ( isset( $kses_defaults['span'] ) ? $kses_defaults['span'] : array() );
174 $span_attrs['hidden'] = true;
175 $custom_html_args = array(
176 'input' => array(
177 'type' => true,
178 'id' => true,
179 'class' => true,
180 'name' => true,
181 'value' => true,
182 'style' => true,
183 ),
184 'button' => array(
185 'type' => true,
186 'class' => true,
187 'aria-label' => true,
188 'data-clipboard-text' => true,
189 'title' => true,
190 ),
191 'span' => $span_attrs,
192 'svg' => array(
193 'class' => true,
194 'aria-hidden' => true,
195 'aria-labelledby' => true,
196 'role' => true,
197 'xmlns' => true,
198 'width' => true,
199 'height' => true,
200 'viewbox' => true,
201 'viewBox' => true,
202 'focusable' => true,
203 ),
204 'g' => array(
205 'fill' => true,
206 'fill-rule' => true,
207 'stroke' => true,
208 'stroke-linejoin' => true,
209 'stroke-width' => true,
210 'stroke-linecap' => true,
211 ),
212 'path' => array(
213 'd' => true,
214 'fill' => true,
215 'stroke' => true,
216 'stroke-linejoin' => true,
217 'stroke-width' => true,
218 'stroke-linecap' => true,
219 ),
220 );
221 return array_merge( $kses_defaults, $custom_html_args );
222 // Example usage: wp_kses( $the_html, get_kses_with_custom_html_ruleset() );
223 }
224
225 // ===== Pluggable Functions ===== //
226 $options = get_option( ASENHA_SLUG_U, array() );
227 if ( array_key_exists( 'disable_admin_email_notification_after_password_change', $options ) && $options['disable_admin_email_notification_after_password_change'] ) {
228 if ( !function_exists( 'wp_password_change_notification' ) ) {
229 /**
230 * Plug into the default wp_password_change_notification() in /wp-includes/pluggable.php
231 *
232 * @link https://developer.wordpress.org/reference/functions/wp_password_change_notification/
233 * @link https://wordpress.stackexchange.com/a/206396
234 */
235 function wp_password_change_notification( $user ) {
236 return;
237 }
238
239 }
240 }