| @@ -73,8 +73,9 @@ | ||
| 73 | 73 | include SUPERADDONS_GF_REPEATER_PLUGIN_PATH."fields/repeater_start_field.php"; |
| 74 | 74 | add_filter( 'gform_pre_validation', array( "Superaddons_GFRepeater_Field", 'remove_validation' ) ); |
| 75 | 75 | add_filter( 'gform_admin_pre_render', array( 'Superaddons_GFRepeater_Field', 'remove_child_fields' ) ); |
| 76 | 76 | add_filter( 'gform_form_post_get_meta', array( 'Superaddons_GFRepeater_Field', 'remove_child_fields' ) ); |
| 77 | + add_filter( 'gform_submission_values_pre_save', array( 'Superaddons_GFRepeater_Field', 'save_draft_submission_values' ), 10, 2 ); | |
| 77 | 78 | add_action( 'gform_enqueue_scripts', array($this,"add_data"),10,2 ); |
| 78 | 79 | } |
| 79 | 80 | function gform_input_mask_script($script_str,$form_id,$field_id,$mask){ |
| 80 | 81 | $input_mask = get_option( "yeeaddons_gf_input_mask",array()); |
| @@ -85,8 +86,13 @@ | ||
| 85 | 86 | function add_data($form, $is_ajax ){ |
| 86 | 87 | $input_mask = get_option( "yeeaddons_gf_input_mask",array()); |
| 87 | 88 | if ( isset( $form['fields'] ) && is_array( $form['fields'] ) ) { |
| 88 | 89 | foreach ( $form['fields'] as $field ) { |
| 90 | + // 1. Các trường Text / Field thường tick "Input Mask" | |
| 91 | + if ( ! empty( $field->inputMask ) && ! empty( $field->inputMaskValue ) ) { | |
| 92 | + $input_mask["input_" . $form['id'] . "_" . $field->id] = (string) $field->inputMaskValue; | |
| 93 | + } | |
| 94 | + // 2. Các trường Phone | |
| 89 | 95 | if ( isset( $field->type ) && $field->type === 'phone' ) { |
| 90 | 96 | $phone_format = method_exists( $field, 'get_phone_format' ) ? $field->get_phone_format() : array(); |
| 91 | 97 | $mask = isset( $phone_format['mask'] ) ? $phone_format['mask'] : ''; |
| 92 | 98 | if ( empty( $mask ) && ( ! isset( $field->phoneFormat ) || $field->phoneFormat === 'standard' || empty( $field->phoneFormat ) ) ) { |
| @@ -92,16 +98,19 @@ | ||
| 92 | 98 | if ( empty( $mask ) && ( ! isset( $field->phoneFormat ) || $field->phoneFormat === 'standard' || empty( $field->phoneFormat ) ) ) { |
| 93 | 99 | $mask = '(999) 999-9999'; |
| 94 | 100 | } |
| 95 | 101 | if ( ! empty( $mask ) ) { |
| 96 | - $input_mask["input_" . $form['id'] . "_" . $field->id] = $mask; | |
| 102 | + $input_mask["input_" . $form['id'] . "_" . $field->id] = (string) $mask; | |
| 97 | 103 | } |
| 98 | 104 | } |
| 99 | 105 | } |
| 100 | 106 | } |
| 101 | - wp_enqueue_script( 'gf_repeater', SUPERADDONS_GF_REPEATER_PLUGIN_URL."libs/wp_repeater.js", array('jquery',"gform_masked_input"),time()); | |
| 102 | - $check_pro = get_option( '_redmuber_item_1540'); | |
| 103 | - wp_localize_script("gf_repeater","yeeaddons_gf_repeater_data",array("input_mask"=>($input_mask),"pro"=>$check_pro)); | |
| 107 | + if ( ! wp_script_is( 'gform_masked_input', 'registered' ) ) { | |
| 108 | + wp_register_script( 'gform_masked_input', SUPERADDONS_GF_REPEATER_PLUGIN_URL . 'libs/jquery.maskedinput.min.js', array( 'jquery' ), '1.3.1', true ); | |
| 109 | + } | |
| 110 | + wp_enqueue_script( 'gf_repeater', SUPERADDONS_GF_REPEATER_PLUGIN_URL . "libs/wp_repeater.js", array( 'jquery', 'gform_masked_input' ), time() ); | |
| 111 | + $check_pro = get_option( '_redmuber_item_1540' ); | |
| 112 | + wp_localize_script( "gf_repeater", "yeeaddons_gf_repeater_data", array( "input_mask" => ( $input_mask ), "pro" => $check_pro ) ); | |
| 104 | 113 | } |
| 105 | 114 | public function styles() { |
| 106 | 115 | $styles = array( |
| 107 | 116 | array( |