tax.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php if ( ! defined( 'ABSPATH' ) ) exit;
  2. /*
  3. * Function to register a new field for payment tax
  4. *
  5. * @since 2.2.28
  6. * @returns void
  7. */
  8. function ninja_forms_register_field_tax(){
  9. $args = array(
  10. 'name' => __( 'Tax', 'ninja-forms' ),
  11. 'sidebar' => '',
  12. 'display_function' => 'ninja_forms_field_tax_display',
  13. 'group' => 'standard_fields',
  14. 'edit_conditional' => true,
  15. 'edit_req' => false,
  16. 'edit_options' => array(
  17. array(
  18. 'type' => 'text',
  19. 'name' => 'default_value',
  20. 'label' => __( 'Tax Percentage', 'ninja-forms' ),
  21. 'class' => 'widefat',
  22. 'desc' => __( 'Should be entered as a percentage. e.g. 8.25%, 4%', 'ninja-forms' ),
  23. ),
  24. array(
  25. 'type' => 'hidden',
  26. 'name' => 'payment_field_group',
  27. 'default' => 1,
  28. ),
  29. array(
  30. 'type' => 'hidden',
  31. 'name' => 'payment_tax',
  32. 'default' => 1,
  33. ),
  34. ),
  35. 'save_function' => 'ninja_forms_field_tax_save',
  36. );
  37. ninja_forms_register_field( '_tax', $args );
  38. }
  39. add_action( 'init', 'ninja_forms_register_field_tax' );
  40. /*
  41. * Function to display our tax field on the front-end.
  42. *
  43. * @since 2.2.30
  44. * @returns void
  45. */
  46. function ninja_forms_field_tax_display( $field_id, $data, $form_id = '' ) {
  47. if(isset($data['default_value'])){
  48. $default_value = $data['default_value'];
  49. }else{
  50. $default_value = '';
  51. }
  52. $field_class = ninja_forms_get_field_class( $field_id, $form_id );
  53. ?>
  54. <input id="ninja_forms_field_<?php echo $field_id;?>" name="ninja_forms_field_<?php echo $field_id;?>" type="hidden" value="<?php echo $default_value;?>">
  55. <input id="ninja_forms_field_<?php echo $field_id;?>" name="ninja_forms_field_<?php echo $field_id;?>" type="text" class="<?php echo $field_class;?>" value="<?php echo $default_value;?>" rel="<?php echo $field_id;?>" disabled/>
  56. <?php
  57. }
  58. /*
  59. *
  60. * Function that runs when our field is saved to make sure that a % is in the tax rate box.
  61. *
  62. * @since 2.2.30
  63. * @returns void
  64. */
  65. function ninja_forms_field_tax_save( $form_id, $data ) {
  66. foreach ( $data as $field_id => $val ) {
  67. $field = ninja_forms_get_field_by_id( $field_id );
  68. if ( $field['type'] == '_tax' ) {
  69. if ( isset ( $val['default_value'] ) ) {
  70. if ( strpos( $val['default_value'], '%' ) === false ) {
  71. $data[$field_id]['default_value'] .= '%';
  72. }
  73. }
  74. }
  75. }
  76. return $data;
  77. }