get_instance_id(); $replacements = $this->get_replacements( $form_id, $instance_id ); /** * Filters the front-end identifier replacements. * * @param array $replacements Find/replace pairs. * @param int $form_id Original Gravity Forms ID. * @param int $instance_id Unique rendered instance ID. */ $replacements = apply_filters( 'instancemint_instance_replacements', $replacements, $form_id, $instance_id ); if ( ! is_array( $replacements ) ) { return $form_markup; } return strtr( $form_markup, $replacements ); } /** * Get a submitted instance ID or create a new one. * * This value only selects front-end DOM identifiers. It is not trusted for * authorization, storage, or form selection. * * @return int */ private function get_instance_id() { // phpcs:ignore WordPress.Security.NonceVerification.Missing -- Gravity Forms validates the submission; this value is presentation-only. $submitted = isset( $_POST['instancemint_instance_id'] ) ? absint( wp_unslash( $_POST['instancemint_instance_id'] ) ) : 0; if ( $submitted > 0 ) { return $submitted; } return wp_rand( 100000, 999999999 ); } /** * Build the replacement map used by Gravity Forms markup and scripts. * * @param int $form_id Original form ID. * @param int $instance_id Rendered instance ID. * @return array */ private function get_replacements( $form_id, $instance_id ) { $original = (string) $form_id; $instance = (string) $instance_id; $hidden = " ' gform_wrapper instancemint_original_form_' . $original . ' ', "for='choice_" => "for='choice_{$instance}_", "id='choice_" => "id='choice_{$instance}_", "id='label_" => "id='label_{$instance}_", "id='gform_target_page_number_" => "id='gform_target_page_number_{$instance}_", "id='gform_source_page_number_" => "id='gform_source_page_number_{$instance}_", '#gform_target_page_number_' => "#gform_target_page_number_{$instance}_", '#gform_source_page_number_' => "#gform_source_page_number_{$instance}_", "'gform_wrapper_{$original}'" => "'gform_wrapper_{$instance}'", "'gf_{$original}'" => "'gf_{$instance}'", "'gform_{$original}'" => "'gform_{$instance}'", "'gform_ajax_frame_{$original}'" => "'gform_ajax_frame_{$instance}'", "#gf_{$original}'" => "#gf_{$instance}'", "'gform_fields_{$original}'" => "'gform_fields_{$instance}'", "id='field_{$original}_" => "id='field_{$instance}_", "for='input_{$original}_" => "for='input_{$instance}_", "id='input_{$original}_" => "id='input_{$instance}_", "'gform_submit_button_{$original}'" => "'gform_submit_button_{$instance}'", '"gf_submitting_' . $original . '"' => '"gf_submitting_' . $instance . '"', "'gf_submitting_{$original}'" => "'gf_submitting_{$instance}'", "#gform_ajax_frame_{$original}" => "#gform_ajax_frame_{$instance}", "#gform_wrapper_{$original}" => "#gform_wrapper_{$instance}", "#gform_{$original}" => "#gform_{$instance}", "trigger('gform_post_render', [{$original}" => "trigger('gform_post_render', [{$instance}", "gformInitSpinner( {$original}, " => "gformInitSpinner( {$instance}, ", "trigger('gform_page_loaded', [{$original}" => "trigger('gform_page_loaded', [{$instance}", "'gform_confirmation_loaded', [{$original}]" => "'gform_confirmation_loaded', [{$instance}]", "gf_apply_rules({$original}, " => "gf_apply_rules({$instance}, ", "gform_confirmation_wrapper_{$original}" => "gform_confirmation_wrapper_{$instance}", "gforms_confirmation_message_{$original}" => "gforms_confirmation_message_{$instance}", "gform_confirmation_message_{$original}" => "gform_confirmation_message_{$instance}", "if(formId == {$original})" => "if(formId == {$instance})", "window['gf_form_conditional_logic'][{$original}]" => "window['gf_form_conditional_logic'][{$instance}]", "trigger('gform_post_conditional_logic', [{$original}, " => "trigger('gform_post_conditional_logic', [{$instance}, ", "gformShowPasswordStrength(\"input_{$original}_" => "gformShowPasswordStrength(\"input_{$instance}_", "gformInitChosenFields('#input_{$original}_" => "gformInitChosenFields('#input_{$instance}_", "jQuery('#input_{$original}_" => "jQuery('#input_{$instance}_", "gforms_calendar_icon_input_{$original}_" => "gforms_calendar_icon_input_{$instance}_", "id='ginput_base_price_{$original}_" => "id='ginput_base_price_{$instance}_", "id='ginput_quantity_{$original}_" => "id='ginput_quantity_{$instance}_", "gfield_price_{$original}_" => "gfield_price_{$instance}_", "gfield_quantity_{$original}_" => "gfield_quantity_{$instance}_", "gfield_product_{$original}_" => "gfield_product_{$instance}_", "ginput_total_{$original}" => "ginput_total_{$instance}", "GFCalc({$original}, " => "GFCalc({$instance}, ", "gf_global[\"number_formats\"][{$original}]" => "gf_global[\"number_formats\"][{$instance}]", "gf_global['number_formats'][{$original}]" => "gf_global['number_formats'][{$instance}]", "gform_next_button_{$original}_" => "gform_next_button_{$instance}_", "gform_previous_button_{$original}_" => "gform_previous_button_{$instance}_", $hidden => "" . $hidden, ); } } new InstanceMint_Form_Instance_Bridge();