Skip to content

Instantly share code, notes, and snippets.

@wpmudev-sls
Last active April 15, 2020 16:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wpmudev-sls/d719c65463f1c1084125f74740479cd5 to your computer and use it in GitHub Desktop.
Save wpmudev-sls/d719c65463f1c1084125f74740479cd5 to your computer and use it in GitHub Desktop.
[Forminator] - Ajax Preloader. Adds a preloader while forms load. Once the form is loaded via ajax the preloader gets removed.
<?php
/**
* Plugin Name: [Forminator] - Ajax Preloader
* Plugin URI: https://premium.wpmudev.org/
* Description: Adds a preloader while forms load. Once the form is loaded via ajax the preloader gets removed.
* Author: Panos Lyrakis @ WPMUDEV
* Author URI: https://premium.wpmudev.org/
* License: GPLv2 or later
*
* @package WordPress
*/
if ( ! defined( 'ABSPATH' ) || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
return;
}
add_action(
'wp_footer',
function() {
global $post;
if ( ! $post instanceof WP_Post || ! has_shortcode( $post->post_content, 'forminator_form' ) ) {
return;
}
?>
<script type="text/javascript">
(($,d)=>{
if ( window.wpmudev_forminator_ajax_preloader ) {
return;
}
window.wpmudev_forminator_ajax_preloader = {
wrapper : '.forminator-guttenberg',
preloader_src : '<?php echo esc_url( admin_url() ); ?>images/spinner-2x.gif',
run: function() {
this.show_preloader( null );
$(d).on( 'after.load.forminator', this.remove_preloader );
},
show_preloader : function( form_id ) {
$( wpmudev_forminator_ajax_preloader.wrapper ).prepend(
`<img class=\"wpmudev-forminator-ajax-preloader\" style=\"position: relative; overflow: hidden; left: 40%; top: 45%;\" src=\"${wpmudev_forminator_ajax_preloader.preloader_src}\">`
);
},
remove_preloader: function( e, form_id ) {
$( `#forminator-module-${form_id}` ).
closest( wpmudev_forminator_ajax_preloader.wrapper ).
find( '.wpmudev-forminator-ajax-preloader' ).
fadeOut( 300, function() {
$(this).remove();
}
);
}
};
$(d).ready( function(){
wpmudev_forminator_ajax_preloader.run();
} );
})(jQuery,document);
</script>
<?php
},
20
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment