// falback to default or empty if no value in option if ( !isset($args['current']) ) { $args['current'] = isset( $args['default'] ) ? $args['default'] : ''; } elseif ( empty($args['current']) && isset($args['default_if_empty']) && $args['default_if_empty'] == true ) { // force fallback if empty 'current' and 'default_if_empty' equals to true $args['current'] = isset( $args['default'] ) ? $args['default'] : ''; } return $args; } /** * Validate options. * * @param array $input options to valid. * * @return array validated options. */ public function validate( $input ) { // Create our array for storing the validated options. $output = array(); if ( empty( $input ) || ! is_array( $input ) ) { return $input; } if ( ! empty( $input['wpo_wcpdf_setting_store_empty'] ) ) { //perhaps we should use a more unique/specific name for this foreach ( $input['wpo_wcpdf_setting_store_empty'] as $key ) { if ( empty( $input[$key] ) ) { $output[$key] = 0; } } unset($input['wpo_wcpdf_setting_store_empty']); } // Loop through each of the incoming options. foreach ( $input as $key => $value ) { // Check to see if the current option has a value. If so, process it. if ( isset( $input[$key] ) ) { if ( is_array( $input[$key] ) ) { foreach ( $input[$key] as $sub_key => $sub_value ) { $output[$key][$sub_key] = $input[$key][$sub_key]; } } else { $output[$key] = $input[$key]; } } } // Return the array processing any additional functions filtered by this action. return apply_filters( 'wpo_wcpdf_validate_input', $output, $input ); } /** * Appends language at the end of the setting provided, in case the setting is translatable * and it does not have a language set. * * @param string $setting Settings field that needs a language. * @param array $args Setting arguments. * * @return string */ public function append_language( string $setting, array $args ): string { if ( isset( $args['translatable'] ) && true === $args['translatable'] && isset( $args['lang'] ) && 'default' !== $args['lang'] && ! ( substr( $setting, -strlen( "[{$args['lang']}]" ) ) === "[{$args['lang']}]" ) ) { return $setting .= "[{$args['lang']}]"; } else { return $setting; } } } endif; // class_exists