| Server IP : 34.67.85.211 / Your IP : 216.73.217.52 Web Server : Apache System : Linux wordpress-1-vm 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64 User : root ( 0) PHP Version : 7.4.9 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /var/www/html/wp-content/plugins/kirki/field/ |
Upload File : |
<?php
/**
* Override field methods
*
* @package Kirki
* @subpackage Controls
* @copyright Copyright (c) 2020, David Vongries
* @license https://opensource.org/licenses/MIT
* @since 2.2.7
*/
/**
* Field overrides.
*/
class Kirki_Field_Number extends Kirki_Field {
/**
* Sets the control type.
*
* @access protected
*/
protected function set_type() {
$this->type = 'kirki-number';
}
/**
* Sets the $sanitize_callback
*
* @access protected
*/
protected function set_sanitize_callback() {
$this->sanitize_callback = array( $this, 'sanitize' );
}
/**
* Sets the $choices
*
* @access protected
*/
protected function set_choices() {
$this->choices = wp_parse_args(
$this->choices,
array(
'min' => -999999999,
'max' => 999999999,
'step' => 1,
)
);
// Make sure min, max & step are all numeric.
$this->choices['min'] = filter_var( $this->choices['min'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
$this->choices['max'] = filter_var( $this->choices['max'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
$this->choices['step'] = filter_var( $this->choices['step'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
}
/**
* Sanitizes numeric values.
*
* @access public
* @param integer|string $value The checkbox value.
* @return bool
*/
public function sanitize( $value = 0 ) {
$this->set_choices();
$value = filter_var( $value, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION );
// Minimum & maximum value limits.
if ( $value < $this->choices['min'] || $value > $this->choices['max'] ) {
return max( min( $value, $this->choices['max'] ), $this->choices['min'] );
}
// Only multiple of steps.
$steps = ( $value - $this->choices['min'] ) / $this->choices['step'];
if ( ! is_int( $steps ) ) {
$value = $this->choices['min'] + ( round( $steps ) * $this->choices['step'] );
}
return $value;
}
}