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