• Resolved ofrayechiel

    (@ofrayechiel)


    Hi,

    I have a long form where my users are able to save and continue editing their draft.

    On the last page of the form there are two signature fields and one multiple-file upload field. Since the save and continue link does not save signature fields or file upload fields, I’m concerned that my users will click “save and continue” instead of “send”, which will mean they will have to sign again and upload files again.

    Is there any way to hide/disable the save and continue link on a certain page/on the last page?

    Thanks in advance, Ofra

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Support Dmytro – WPMU DEV Support

    (@wpmudevsupport16)

    Hello Ofra,

    This should be possible with a bit of custom code.
    Could you please try adding the following snippet as a must use plugin.

    Just copy the code, save it in a text editor as forminator-hide-save-btn.php, and upload it to /wp-content/mu-plugins/ directory on the server:

    <?php
    add_action('wp_footer', 'forminator_hide_save_btn', 9999);
    
    function forminator_hide_save_btn(){
        
        $form_id = 392; // Change to your form ID
        
    	global $post;
    	if ( is_a( $post, 'WP_Post' ) && !has_shortcode($post->post_content, 'forminator_form') ) {
    		return;
    	}
    	
    	?>
        <script type="text/javascript">
    	jQuery(document).ready(function($){
    	    
    	    const pages = [1,2,3]; // Page numbers
    	    
    		setTimeout(function() {
    			$('.forminator-custom-form').trigger('after.load.forminator');
    		},100);
    
    		$(document).on('after.load.forminator', function(e, form_id) {
    			if ( e.target.id == 'forminator-module-<?php echo($form_id); ?>' ) {
    			    
    			    hide_save_button();
    	    
    			    function hide_save_button() {
                        //jQuery('.forminator-save-draft-link').show();
                        jQuery('.forminator-save-draft-link').css("visibility", "visible");
                        
                        setTimeout(function() {
                            if ( $('.forminator-save-draft-link').length ) {
                                pages.forEach((page) => {
                                    
                                    page_id=<code>#forminator-custom-form-<?php echo($form_id); ?>--page-${page-1}</code>;
                                    
                                    if ($(page_id).is(':visible')){
                                        jQuery('.forminator-save-draft-link').css("visibility", "hidden");
                                    }
                                 });
                            }
                        },150);
    			    }
    
                    $(document).bind('ready ajaxComplete', function(){
    
                    });
                    
                    $(document).bind('forminator.front.pagination.move', function(){hide_save_button()});
    
    			}
    		});
    	});
    	</script>
    	<?php
    }

    Change 392 to your form ID on this line:
    $form_id = 392;

    Change the page numbers in this part:
    const pages = [1,2,3]; // Page numbers

    For example, if you want to disable the button on pages 3 and 4, change it to:

    const pages = [3,4]; // Page numbers

    Hope this helps. Let us know if you need any further assistance!

    Best Regards,
    Dmytro

    Thread Starter ofrayechiel

    (@ofrayechiel)

    Hi Dmytro! Thank you so much!

    I’ll note that I’m using the Snippets plugin to add custom code. I’m not sure if the MU Plugins is what handles the <code> element on this line or not. However, once I changed this line:

    page_id=<code>#forminator-custom-form-<?php echo($form_id); ?>--page-${page-1}</code>;

    to this:

    page_id='#forminator-custom-form-<?php echo($form_id); ?>--page-' + (page - 1);

    The code started working for me. It specifically hides the save and continue link when clicking previous/next paging buttons (presumably by binding to 'forminator.front.pagination.move'? What event should I bind to if I also want the link hidden when paginating by using the bar at the top (see image below)?

    Thank you so much for your help!
    Ofra

    • This reply was modified 1 year, 4 months ago by ofrayechiel.
    • This reply was modified 1 year, 4 months ago by ofrayechiel.
    Plugin Support Dmytro – WPMU DEV Support

    (@wpmudevsupport16)

    Hi Ofra,

    Oops, my bad, I’ve accidentally added extra tags, or maybe some part was not recognized as code when I’ve pasted it here.

    Your correction works fine for me as well. Glad you’ve figured that out ??

    What event should I bind to if I also want the link hidden when paginating by using the bar at the top (see image below)?

    Indeed, it appears that ‘forminator.front.pagination.move‘ is only connected to the Previous/Next buttons. For the top pagination bar you can use the “click” event like this:

    $('.forminator-step').on('click', function(){hide_save_button()});

    Here’s the previous code with your corrections and the click event handler added:

    <?php
    add_action('wp_footer', 'forminator_hide_save_btn', 9999);
    
    function forminator_hide_save_btn(){
        
        $form_id = 392; // Change to your form ID
        
    	global $post;
    	if ( is_a( $post, 'WP_Post' ) && !has_shortcode($post->post_content, 'forminator_form') ) {
    		return;
    	}
    	
    	?>
        <script type="text/javascript">
    	jQuery(document).ready(function($){
    	    
    	    const pages = [1,2,3]; // Page numbers
    	    
    		setTimeout(function() {
    			$('.forminator-custom-form').trigger('after.load.forminator');
    		},100);
    
    		$(document).on('after.load.forminator', function(e, form_id) {
    			if ( e.target.id == 'forminator-module-<?php echo($form_id); ?>' ) {
    			    
    			    hide_save_button();
    	    
    			    function hide_save_button() {
                        //jQuery('.forminator-save-draft-link').show();
                        jQuery('.forminator-save-draft-link').css("visibility", "visible");
                        
                        setTimeout(function() {
                            if ( $('.forminator-save-draft-link').length ) {
                                pages.forEach((page) => {
                                    
                                    page_id='#forminator-custom-form-<?php echo($form_id); ?>--page-' + (page - 1);
                                    
                                    if ($(page_id).is(':visible')){
                                        jQuery('.forminator-save-draft-link').css("visibility", "hidden");
                                    }
                                 });
                            }
                        },150);
    			    }
    
                    $(document).bind('forminator.front.pagination.move', function(){hide_save_button()});
                    
                    $('.forminator-step').on('click', function(){hide_save_button()});
    
    			}
    		});
    	});
    	</script>
    	<?php
    }

    Best Regards,
    Dmytro

    Plugin Support Jair – WPMU DEV Support

    (@wpmudevsupport15)

    Hi @ofrayechiel,

    We haven’t heard from you in a while, we will go ahead and mark this thread as resolved. If you have any additional questions or require further help, please let us know!

    Kind regards,
    Zafer

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Save and Continue issue’ is closed to new replies.