| @@ -178,13 +178,23 @@ | ||
| 178 | 178 | /** |
| 179 | 179 | * @since 3.0 |
| 180 | 180 | */ |
| 181 | 181 | private static function get_classes_for_builder_field( $field, $display, $field_info ) { |
| 182 | - $li_classes = $field_info->form_builder_classes( $display['type'] ); | |
| 182 | + $li_classes = $field_info->form_builder_classes( $display['type'] ); | |
| 183 | + $classes = isset( $field['classes'] ) ? $field['classes'] : ''; | |
| 184 | + | |
| 185 | + // Exclude alignright for now since we aren't using widths. | |
| 186 | + $classes = str_replace( ' frm_alignright ', ' ', $classes ); | |
| 187 | + $classes = trim( $classes ); | |
| 188 | + | |
| 189 | + if ( 'frm_alignright' === $classes ) { | |
| 190 | + $classes = ''; | |
| 191 | + } | |
| 192 | + | |
| 183 | 193 | $li_classes .= ' frm_form_field frmstart '; |
| 184 | 194 | |
| 185 | - if ( isset( $field['classes'] ) ) { | |
| 186 | - $li_classes .= trim( $field['classes'] ) . ' '; | |
| 195 | + if ( $classes ) { | |
| 196 | + $li_classes .= $classes . ' '; | |
| 187 | 197 | } |
| 188 | 198 | |
| 189 | 199 | $li_classes .= 'frmend'; |
| 190 | 200 | |
| @@ -443,9 +453,9 @@ | ||
| 443 | 453 | $add_html = apply_filters( 'frm_field_extra_html', $add_html, $field ); |
| 444 | 454 | $add_html = ' ' . implode( ' ', $add_html ) . ' '; |
| 445 | 455 | |
| 446 | 456 | if ( $echo ) { |
| 447 | - echo $add_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped | |
| 457 | + echo $add_html; // WPCS: XSS ok. | |
| 448 | 458 | } |
| 449 | 459 | |
| 450 | 460 | return $add_html; |
| 451 | 461 | } |
| @@ -569,18 +579,21 @@ | ||
| 569 | 579 | } |
| 570 | 580 | } |
| 571 | 581 | |
| 572 | 582 | /** |
| 573 | - * Prepares field placeholder. | |
| 574 | - * | |
| 575 | - * @since 5.4 This doesn't call `FrmFieldsController::get_default_value_from_name()` anymore. | |
| 576 | - * | |
| 577 | - * @param array $field Field array. | |
| 583 | + * @param array $field | |
| 578 | 584 | * @return string |
| 579 | 585 | */ |
| 580 | 586 | private static function prepare_placeholder( $field ) { |
| 581 | - $placeholder = isset( $field['placeholder'] ) ? $field['placeholder'] : ''; | |
| 587 | + $placeholder = isset( $field['placeholder'] ) ? $field['placeholder'] : ''; | |
| 588 | + $placeholder_is_blank = empty( $placeholder ) && '0' !== $placeholder; | |
| 589 | + $is_placeholder_field = FrmFieldsHelper::is_placeholder_field_type( $field['type'] ); | |
| 590 | + $is_combo_field = in_array( $field['type'], array( 'address', 'credit_card' ), true ); | |
| 582 | 591 | |
| 592 | + if ( $placeholder_is_blank && $is_placeholder_field && ! $is_combo_field ) { | |
| 593 | + $placeholder = self::get_default_value_from_name( $field ); | |
| 594 | + } | |
| 595 | + | |
| 583 | 596 | return $placeholder; |
| 584 | 597 | } |
| 585 | 598 | |
| 586 | 599 | /** |
| @@ -587,9 +600,8 @@ | ||
| 587 | 600 | * If the label position is "inside", |
| 588 | 601 | * get the label to use as the placeholder |
| 589 | 602 | * |
| 590 | 603 | * @since 2.05 |
| 591 | - * @since 5.4 Remove the logic code for "inside" label position. | |
| 592 | 604 | * |
| 593 | 605 | * @param array $field |
| 594 | 606 | * |
| 595 | 607 | * @return string |
| @@ -594,9 +606,19 @@ | ||
| 594 | 606 | * |
| 595 | 607 | * @return string |
| 596 | 608 | */ |
| 597 | 609 | public static function get_default_value_from_name( $field ) { |
| 598 | - return ''; | |
| 610 | + $position = FrmField::get_option( $field, 'label' ); | |
| 611 | + if ( $position == 'inside' ) { | |
| 612 | + $default_value = $field['name']; | |
| 613 | + if ( FrmField::is_required( $field ) ) { | |
| 614 | + $default_value .= ' ' . $field['required_indicator']; | |
| 615 | + } | |
| 616 | + } else { | |
| 617 | + $default_value = ''; | |
| 618 | + } | |
| 619 | + | |
| 620 | + return $default_value; | |
| 599 | 621 | } |
| 600 | 622 | |
| 601 | 623 | /** |
| 602 | 624 | * Maybe add a blank placeholder option before any options |
| @@ -730,11 +752,9 @@ | ||
| 730 | 752 | |
| 731 | 753 | $error_body = substr( $custom_html, $start + 10, $end - $start - 10 ); |
| 732 | 754 | $default_html = array( |
| 733 | 755 | '<div class="frm_error" id="frm_error_field_[key]">[error]</div>', |
| 734 | - '<div class="frm_error" role="alert" id="frm_error_field_[key]">[error]</div>', | |
| 735 | 756 | '<div class="frm_error">[error]</div>', |
| 736 | - '<div class="frm_error" role="alert">[error]</div>', | |
| 737 | 757 | ); |
| 738 | 758 | |
| 739 | 759 | if ( in_array( $error_body, $default_html, true ) ) { |
| 740 | 760 | return false; |
| @@ -767,12 +787,8 @@ | ||
| 767 | 787 | if ( FrmField::is_option_empty( $field, 'shortcodes' ) ) { |
| 768 | 788 | return; |
| 769 | 789 | } |
| 770 | 790 | |
| 771 | - if ( ! empty( $field['autocomplete'] ) ) { | |
| 772 | - unset( $field['shortcodes']['autocomplete'] ); | |
| 773 | - } | |
| 774 | - | |
| 775 | 791 | foreach ( $field['shortcodes'] as $k => $v ) { |
| 776 | 792 | if ( 'opt' === $k ) { |
| 777 | 793 | continue; |
| 778 | 794 | } |
| @@ -878,9 +894,12 @@ | ||
| 878 | 894 | * |
| 879 | 895 | * @deprecated 4.0 Moved to Pro for Other option only. |
| 880 | 896 | */ |
| 881 | 897 | public static function add_option() { |
| 882 | - _deprecated_function( __METHOD__, '4.0', 'FrmProFieldsController::add_other_option' ); | |
| 898 | + _deprecated_function( __METHOD__, '4.0', 'FrmProFormsController::add_other_option' ); | |
| 899 | + if ( is_callable( 'FrmProFormsController::add_other_option' ) ) { | |
| 900 | + FrmProFormsController::add_other_option(); | |
| 901 | + } | |
| 883 | 902 | } |
| 884 | 903 | |
| 885 | 904 | /** |
| 886 | 905 | * @deprecated 4.0 |
| @@ -908,6 +927,22 @@ | ||
| 908 | 927 | * @return array |
| 909 | 928 | */ |
| 910 | 929 | public static function include_single_field( $field_id, $values, $form_id = 0 ) { |
| 911 | 930 | return FrmDeprecated::include_single_field( $field_id, $values, $form_id ); |
| 931 | + } | |
| 932 | + | |
| 933 | + /** | |
| 934 | + * @deprecated 2.3 | |
| 935 | + * @codeCoverageIgnore | |
| 936 | + */ | |
| 937 | + public static function edit_option() { | |
| 938 | + FrmDeprecated::deprecated( __METHOD__, '2.3' ); | |
| 939 | + } | |
| 940 | + | |
| 941 | + /** | |
| 942 | + * @deprecated 2.3 | |
| 943 | + * @codeCoverageIgnore | |
| 944 | + */ | |
| 945 | + public static function delete_option() { | |
| 946 | + FrmDeprecated::deprecated( __METHOD__, '2.3' ); | |
| 912 | 947 | } |
| 913 | 948 | } |