<?php

if ( ! class_exists( 'Redux_Validation_numeric_not_empty' ) ) {
    class Redux_Validation_numeric_not_empty {

        /**
         * Field Constructor.
         * Required - must call the parent constructor, then assign field and value to vars, and obviously call the render field function
         *
         * @since ReduxFramework 1.0.0
         */
        function __construct( $parent, $field, $value, $current ) {

            $this->parent       = $parent;
            $this->field        = $field;
            $this->field['msg'] = ( isset( $this->field['msg'] ) ) ? $this->field['msg'] : __( 'You must provide a numerical value for this option.', 'virtue' );
            $this->value        = $value;
            $this->current      = $current;

            $this->validate();
        } //function

        /**
         * Field Render Function.
         * Takes the vars and outputs the HTML for the field in the settings
         *
         * @since ReduxFramework 1.0.0
         */
        function validate() {
            if ( ! is_numeric( $this->value ) || ! isset( $this->value ) || empty( $this->value ) ) {
                $this->value = ( isset( $this->current ) ) ? $this->current : '';
                $this->error = $this->field;
            }
        } //function
    } //class
}