PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 5.4.4
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v5.4.4
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / views / frm-fields / front-end / checkbox-field.php

checkbox-field.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 5.4.4, at classes/views/frm-fields/front-end/checkbox-field.php

83 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5
6 /**
7 * Show the checkbox field on the front-end.
8 * Extra line breaks show as space on the front-end when
9 * the form is double filtered and not minimized.
10 *
11 * @phpcs:disable Generic.WhiteSpace.ScopeIndent
12 */
13
14 if ( isset( $field['post_field'] ) && $field['post_field'] == 'post_category' ) {
15 $type = $field['type'];
16 do_action( 'frm_after_checkbox', compact( 'field', 'field_name', 'type' ) );
17 } elseif ( $field['options'] ) {
18 foreach ( $field['options'] as $opt_key => $opt ) {
19 if ( isset( $shortcode_atts ) && isset( $shortcode_atts['opt'] ) && ( $shortcode_atts['opt'] !== $opt_key ) ) {
20 continue;
21 }
22
23 $field_val = FrmFieldsHelper::get_value_from_array( $opt, $opt_key, $field );
24 $opt = FrmFieldsHelper::get_label_from_array( $opt, $opt_key, $field );
25
26 /**
27 * Allows changing the HTML of option label in choice field (radio, checkbox,...).
28 *
29 * @since 5.0.04
30 *
31 * @param string $label Label HTML.
32 * @param array $args The arguments. Contains `field`.
33 */
34 $label = apply_filters( 'frm_choice_field_option_label', $opt, compact( 'field' ) );
35
36 $checked = ''; // init
37 if ( ! FrmFieldsHelper::is_other_opt( $opt_key ) ) {
38 // Let the checked state of 'Other' fields be determined solely by FrmFieldsHelper::prepare_other_input as below.
39 // Without this check, one 'Other' field being checked leads to making all 'Other' fields checked on submit error
40 // since they all have the same value attr of 'Other'.
41 $checked = FrmAppHelper::check_selected( $field['value'], $field_val ) ? ' checked="checked"' : '';
42 }
43
44 // Check if other opt, and get values for other field if needed
45 $other_opt = false;
46 $other_args = FrmFieldsHelper::prepare_other_input( compact( 'field', 'field_name', 'opt_key' ), $other_opt, $checked );
47
48 ?>
49 <div class="<?php echo esc_attr( apply_filters( 'frm_checkbox_class', 'frm_checkbox', $field, $field_val ) ); ?>" id="<?php echo esc_attr( FrmFieldsHelper::get_checkbox_id( $field, $opt_key ) ); ?>"><?php
50
51 if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
52 ?><label for="<?php echo esc_attr( $html_id ); ?>-<?php echo esc_attr( $opt_key ); ?>"><?php
53 }
54
55 ?><input type="checkbox" name="<?php echo esc_attr( $field_name ); ?>[<?php echo esc_attr( $other_opt ? $opt_key : '' ); ?>]" id="<?php echo esc_attr( $html_id ); ?>-<?php echo esc_attr( $opt_key ); ?>" value="<?php echo esc_attr( $field_val ); ?>"<?php
56 echo $checked . ' '; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
57 do_action( 'frm_field_input_html', $field );
58 ?> /><?php
59
60 if ( ! isset( $shortcode_atts ) || ! isset( $shortcode_atts['label'] ) || $shortcode_atts['label'] ) {
61 echo ' ' . FrmAppHelper::kses( $label, 'all' ) . '</label>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
62 }
63
64 $other_args = array(
65 'other_opt' => $other_opt,
66 'read_only' => $read_only,
67 'checked' => $checked,
68 'name' => $other_args['name'],
69 'value' => $other_args['value'],
70 'field' => $field,
71 'html_id' => $html_id,
72 'opt_key' => $opt_key,
73 'opt_label' => $opt,
74 );
75 FrmFieldsHelper::include_other_input( $other_args );
76
77 unset( $other_opt, $other_args, $checked );
78
79 ?></div>
80 <?php
81 }
82 }
83