name = esc_html__( 'Fields', 'wpforms-lite' ); $this->slug = 'fields'; $this->icon = 'fa-list-alt'; $this->order = 10; $this->sidebar = true; if ( $this->form ) { add_action( 'wpforms_builder_fields', array( $this, 'fields' ) ); add_action( 'wpforms_builder_fields_options', array( $this, 'fields_options' ) ); add_action( 'wpforms_builder_preview', array( $this, 'preview' ) ); // Template for form builder previews. add_action( 'wpforms_builder_print_footer_scripts', array( $this, 'field_preview_templates' ) ); } } /** * Enqueue assets for the Fields panel. * * @since 1.0.0 */ public function enqueues() { // CSS. wp_enqueue_style( 'wpforms-builder-fields', WPFORMS_PLUGIN_URL . 'assets/css/admin-builder-fields.css', null, WPFORMS_VERSION ); } /** * Outputs the Field panel sidebar. * * @since 1.0.0 */ public function panel_sidebar() { // Sidebar contents are not valid unless we have a form. if ( ! $this->form ) { return; } ?>
form ); ?>
form ); ?>
form ) { echo '
'; echo wp_kses( __( 'You need to setup your form before you can manage the fields.', 'wpforms-lite' ), array( 'a' => array( 'href' => array(), 'class' => array(), 'data-panel' => array(), ), ) ); echo '
'; return; } $recaptcha = wpforms_setting( 'recaptcha-type', 'v2' ); ?>

form->post_title ); ?>

form->post_excerpt; ?>
form ); ?>

form_data['settings']['submit_text'] ) ? $this->form_data['settings']['submit_text'] : esc_html__( 'Submit', 'wpforms-lite' ); printf( '

', esc_attr( $submit ) ); ?> form_data ); ?>
array( 'group_name' => esc_html__( 'Standard Fields', 'wpforms-lite' ), 'fields' => array(), ), 'fancy' => array( 'group_name' => esc_html__( 'Fancy Fields', 'wpforms-lite' ), 'fields' => array(), ), 'payment' => array( 'group_name' => esc_html__( 'Payment Fields', 'wpforms-lite' ), 'fields' => array(), ), ); $fields = apply_filters( 'wpforms_builder_fields_buttons', $fields ); // Output the buttons. foreach ( $fields as $id => $group ) { usort( $group['fields'], array( $this, 'field_order' ) ); echo '
'; echo ''; echo '' . esc_html( $group['group_name'] ) . ''; echo ''; echo ''; echo '
'; foreach ( $group['fields'] as $field ) { $atts = apply_filters( 'wpforms_builder_field_button_attributes', array( 'id' => 'wpforms-add-fields-' . $field['type'], 'class' => array( 'wpforms-add-fields-button' ), 'data' => array( 'field-type' => $field['type'], ), 'atts' => array(), ), $field, $this->form_data ); if ( ! empty( $field['class'] ) ) { $atts['class'][] = $field['class']; } echo ''; } echo '
'; echo '
'; } } /** * Editor Field Options. * * @since 1.0.0 */ public function fields_options() { // Check to make sure the form actually has fields created already. if ( empty( $this->form_data['fields'] ) ) { printf( '

%s

', esc_html__( 'You don\'t have any fields yet.', 'wpforms-lite' ) ); return; } $fields = $this->form_data['fields']; foreach ( $fields as $field ) { $class = apply_filters( 'wpforms_builder_field_option_class', '', $field ); printf( '
', esc_attr( $field['type'] ), $class, $field['id'], $field['id'] ); printf( '', $field['id'], $field['id'] ); printf( '', $field['id'], esc_attr( $field['type'] ) ); do_action( "wpforms_builder_fields_options_{$field['type']}", $field ); echo '
'; } } /** * Editor preview (right pane). * * @since 1.0.0 */ public function preview() { // Check to make sure the form actually has fields created already. if ( empty( $this->form_data['fields'] ) ) { printf( '

%s

', esc_html__( 'You don\'t have any fields yet. Add some!', 'wpforms-lite' ) ); return; } $fields = $this->form_data['fields']; foreach ( $fields as $field ) { $css = ! empty( $field['size'] ) ? 'size-' . esc_attr( $field['size'] ) : ''; $css .= ! empty( $field['label_hide'] ) && $field['label_hide'] == '1' ? ' label_hide' : ''; $css .= ! empty( $field['sublabel_hide'] ) && $field['sublabel_hide'] == '1' ? ' sublabel_hide' : ''; $css .= ! empty( $field['required'] ) && $field['required'] == '1' ? ' required' : ''; $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '2' ? ' wpforms-list-2-columns' : ''; $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === '3' ? ' wpforms-list-3-columns' : ''; $css .= ! empty( $field['input_columns'] ) && $field['input_columns'] === 'inline' ? ' wpforms-list-inline' : ''; $css .= isset( $field['meta']['delete'] ) && $field['meta']['delete'] === false ? ' no-delete' : ''; $css = apply_filters( 'wpforms_field_preview_class', $css, $field ); printf( '
', $field['type'], $css, $field['id'], $field['id'], $field['type'] ); printf( '', esc_html__( 'Duplicate Field', 'wpforms-lite' ) ); printf( '', esc_html__( 'Delete Field', 'wpforms-lite' ) ); printf( '%s', esc_html__( 'Click to edit. Drag to reorder.', 'wpforms-lite' ) ); do_action( "wpforms_builder_fields_previews_{$field['type']}", $field ); echo '
'; } } /** * Sort Add Field buttons by order provided. * * @since 1.0.0 * * @param array $a * @param array $b * * @return array */ public function field_order( $a, $b ) { return $a['order'] - $b['order']; } /** * Template for form builder preview. * * @since 1.4.5 */ public function field_preview_templates() { // Checkbox, Radio, and Payment Multiple/Checkbox field choices. ?>