- fixed sanitizing in the places where '' (empty string) is a valid value with Int or AbsInt values

This commit is contained in:
Nikita Sinelnikov
2021-09-22 11:18:50 +03:00
parent 4c004e1f2c
commit 070b0f4017
+12 -2
View File
@@ -767,10 +767,10 @@ if ( ! class_exists( 'um\admin\Admin' ) ) {
'sanitize' => 'absint',
),
'_min' => array(
'sanitize' => 'absint',
'sanitize' => 'empty_int',
),
'_max' => array(
'sanitize' => 'absint',
'sanitize' => 'empty_int',
),
'_min_chars' => array(
'sanitize' => 'absint',
@@ -1360,6 +1360,9 @@ if ( ! class_exists( 'um\admin\Admin' ) ) {
case 'int':
$sanitized[ $k ] = (int) $v;
break;
case 'empty_int':
$sanitized[ $k ] = ( '' !== $v ) ? (int) $v : '';
break;
case 'bool':
$sanitized[ $k ] = (bool) $v;
break;
@@ -1393,6 +1396,13 @@ if ( ! class_exists( 'um\admin\Admin' ) ) {
$sanitized[ $k ] = absint( $v );
}
break;
case 'empty_absint':
if ( is_array( $v ) ) {
$sanitized[ $k ] = array_map( 'absint', $v );
} else {
$sanitized[ $k ] = ( '' !== $v ) ? absint( $v ) : '';
}
break;
}
}