Total.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /**
  3. * Class NF_Field_Total
  4. */
  5. class NF_Fields_Total extends NF_Abstracts_Input
  6. {
  7. protected $_name = 'total';
  8. protected $_section = 'pricing';
  9. protected $_icon = 'money';
  10. protected $_aliases = array();
  11. protected $_type = 'total';
  12. protected $_templates = 'total';
  13. protected $_test_value = '0.00';
  14. protected $_settings_exclude = array( 'placeholder', 'default', 'input_limit_set', 'disable_input', 'required' );
  15. public function __construct()
  16. {
  17. parent::__construct();
  18. $this->_nicename = __( 'Total', 'ninja-forms' );
  19. }
  20. public function process( $total, $data )
  21. {
  22. $subtotal = 0;
  23. foreach( $data[ 'fields' ] as $key => $field ){
  24. if( isset ( $field[ 'type' ] ) && 'shipping' == $field[ 'type' ] ){
  25. $subtotal += $field[ 'shipping_cost' ];
  26. }
  27. }
  28. if( isset( $data[ 'product_totals' ] ) ){
  29. foreach( $data[ 'product_totals' ] as $product_total ){
  30. $subtotal += $product_total;
  31. }
  32. }
  33. $data[ 'new_total' ] = number_format( $subtotal, 2 );
  34. return $data;
  35. }
  36. }