From 070b0f4017859c5b5dd7fd3a02631246136c0ceb Mon Sep 17 00:00:00 2001 From: Nikita Sinelnikov Date: Wed, 22 Sep 2021 11:18:50 +0300 Subject: [PATCH] - fixed sanitizing in the places where '' (empty string) is a valid value with Int or AbsInt values --- includes/admin/class-admin.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/includes/admin/class-admin.php b/includes/admin/class-admin.php index 1d5ce2a2..d503b5cf 100644 --- a/includes/admin/class-admin.php +++ b/includes/admin/class-admin.php @@ -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; } }