Server IP : 172.67.216.182 / Your IP : 172.71.124.8 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/wwwroot/coircraft.com/wp-content/plugins/caldera-forms/classes/field/ |
Upload File : |
<?php /** * Helper functions for calculation fields * * @package Caldera_Forms * @author Josh Pollock <[email protected]> * @license GPL-2.0+ * @link * @copyright 2017 CalderaWP LLC */ class Caldera_Forms_Field_Calculation { /** * Determines if checkboxes are calculated as sum of checked options or highest option * * @since 1.5.0.10 * * @param array $field Field config * @param array $form Form config * * @return bool */ public static function checkbox_mode( $field, $form ){ /** * Determines if checkboxes are calculated as sum of checked options or highest option * * @since 1.5.0.10 * * @param bool $sum_mode Set true for sum, false for highest. * @param array $field Field config * @param array $form Form config * */ return (bool) apply_filters( 'caldera_forms_checkbox_calculate_sum', true, $field, $form ); } /** * Get value of field for calculation * * @since 1.5.0.10 * * @param array $field Field config * @param array $form Form config * * @return float */ public static function get_value( $field, $form ){ $entry_value = Caldera_Forms::get_field_data( $field[ 'ID' ], $form ); $type = Caldera_Forms_Field_Util::get_type( $field, $form ); $number = 0; switch( $type ){ case 'checkbox' : if( true == self::checkbox_mode( $field, $form ) ){ if( ! empty( $entry_value ) ){ foreach ( $entry_value as $opt => $value ){ $entry_value[ $opt ] = Caldera_Forms_Field_Util::get_option_calculation_value( $opt, $field, $form ); } $number = floatval( array_sum( $entry_value ) ); } }else{ if( is_array( $entry_value ) ){ foreach ( $entry_value as $value ){ if( $value > $number ){ $number = $value; } } }else{ $number = floatval( $entry_value ); } $number = self::find_calc_value( $number, $field, $form ); } break; case 'radio': case 'dropdown': case 'filtered_select2': case 'toggle_switch' : $number = self::find_calc_value( $entry_value, $field, $form ); break; default : $number = self::find_value( $entry_value ); break; } /** * Filter calculation field value. * * @since 1.8.10 * * @param float $number The calculation value * @param string|int The field entry value * @param array $field The field entry config * @param array $form The form config */ $number = apply_filters( 'caldera_forms_calculation_field_get_value', $number, $entry_value, $field, $form ); return floatval( $number ); } /** * Find entry value * * Sums arrays if needed * * @param array|string|int|float $entry_value Field entry value * * @return float */ protected static function find_value( $entry_value ){ if ( is_array( $entry_value ) ) { foreach ( $entry_value as $i => $v ){ $x=1; } $number = floatval( array_sum( $entry_value ) ); return $number; } else { $number = floatval( $entry_value ); return $number; } } /** * Get a dropdown, radio or toggle's calculation value based on selected option and its possible calcualtion value * * @since 1.5.1 * * @param int|float|string $entry_value Resulting value * @param array $field Field configuration * @param array $form Form configuration * * @return float|int|string */ protected static function find_calc_value( $entry_value, $field, $form ){ foreach ( $field[ 'config' ][ 'option' ] as $opt_id => $option ){ if( $entry_value == $option[ 'value' ] ){ $entry_value = Caldera_Forms_Field_Util::get_option_calculation_value( $option, $field, $form ); break; } } return $entry_value; } public static function js_function_name( $field_base_id ){ return 'do_calc_' . esc_attr( $field_base_id ); } }