WordPress.org

Ready to get started?Download WordPress

Forums

Contact Form 7
[resolved] 'Infinite progress spinning' Issue when functions.php outputs som (8 posts)

  1. bartoli
    Member
    Posted 1 year ago #

    I am having the issue where the progress icon keeps spinning and no result is shown on form submission even though the mail is properly sent.

    From my tests, i found out that it is due to the fact that my functions.php outputs stuff (javascript and CSS 'includes' to be used in every page). As the page loaded to get the result of the mail sending loads that functions.php, the content it generates before the actual result string prevents CF7 script to parse the result properly.

    Is there a rule that i would have not seen that says that functions.php should not output anything? Or is that a problem with cf7 unneededly loading functions.php / wrongly parsing what is returned?

    http://wordpress.org/extend/plugins/contact-form-7/

  2. bartoli
    Member
    Posted 1 year ago #

    I solved my problem by using wp_enqueue_script() and wp_enqueue_style() instead of <script> and <link> tags in my functions.php for those interested.
    But my question is still valid, is there a rule that says that functons.php should not output code directly?

  3. Eve Alexander
    Member
    Posted 1 year ago #

    Out of curiosity, what theme are you using Bartoli?

  4. stevesinyard
    Member
    Posted 1 year ago #

    I am having this exact problem, it just spins but I receive the mail. For now i've replace the ajax-loader.gif with a tick so people know that their message has been sent. I am using the theme Volume by Themezill, any help in Lehmans terms would be great as I'm a newb myself although I am ok at changing code.

    Thanks in advance

  5. stevesinyard
    Member
    Posted 1 year ago #

    PS my contact form won't work unless I have Configure SMTP plug in activated.

  6. bartoli
    Member
    Posted 1 year ago #

    Eve (or is your firstname Alexander?), I'm using a custom child theme of Twenty Eleven on WP3.4.1

    Steve, if your problem has the same cause than mine, you can see it by watching the content of the result page when you submit the form.
    CF7 sends the form to the same page address than your contact form with aditionnal arguments (the mail info), and gets the result of the operation in the content of that second page.
    You can see it in the network tab of firebug/chrome debugger. if you only get something like {"mailSent":true,"into":"#wpcf7-f215-p33-o1","captcha":null,"message":"Votre message a bien \u00e9t\u00e9 envoy\u00e9. Merci."}, you are not in the case of my problem. If you have some additional HTML there (I had <script> and <link> tags that i wanted to add to my wordpress pages from functions.php), then your problem is caused by the same thing as me. You will have to find where that additional code is loaded from, an modify the problematic theme/plugin.
    For other causes of this problem, there are plenty of other threads on the web on this problem, i'm not export enough

  7. lxm7
    Member
    Posted 1 year ago #

    Just for anyone having the issue ( i think its very similar to bartoli) except I have SMTP configure plugin and Contact Form 7 together and there was a js clash. I removed the gmail bit in configure-smtp.php as im using Rackspace with send mail for my mail relay:

    /**
    * Outputs JavaScript
    *
    * @return void (Text is echoed.)
    */
    public function add_js() {
    $alert = __( 'Be sure to specify your full GMail email address (including the "@gmail.com") as the SMTP username, and your GMail password as the SMTP password.', $this->textdomain );
    $checked = $this->gmail_config['smtp_auth'] ? '1' : '';
    echo <<<JS
    <script type="text/javascript">
    function configure_gmail() {
    // The .attr('checked') == true is only for pre-WP3.2
    if (jQuery('#use_gmail').attr('checked') == 'checked' || jQuery('#use_gmail').attr('checked') == true) {
    jQuery('#host').val('{$this->gmail_config['host']}');
    jQuery('#port').val('{$this->gmail_config['port']}');
    if (jQuery('#use_gmail').attr('checked') == 'checked')
    jQuery('#smtp_auth').prop('checked', $checked);
    else // pre WP-3.2 only
    jQuery('#smtp_auth').attr('checked', {$this->gmail_config['smtp_auth']});
    jQuery('#smtp_secure').val('{$this->gmail_config['smtp_secure']}');
    if (!jQuery('#smtp_user').val().match(/.+@gmail.com$/) ) {
    jQuery('#smtp_user').val('USERNAME@gmail.com').focus().get(0).setSelectionRange(0,8);
    }
    alert('{$alert}');
    return true;
    }
    }
    </script>

    JS;
    }

    /**
    * If the 'Use GMail' option is checked, the GMail settings will override whatever the user may have provided
    *
    * @param array $options The options array prior to saving
    * @return array The options array with GMail settings taking precedence, if relevant
    */
    public function maybe_gmail_override( $options ) {
    // If GMail is to be used, those settings take precendence
    if ( $options['use_gmail'] )
    $options = wp_parse_args( $this->gmail_config, $options );
    return $options;
    }

    This was causing the clash with the AJAX code, causing the infinite spinning arrows.

  8. bartoli
    Member
    Posted 1 year ago #

    I just found back the file where i had written the solution in my case :
    When you submit a contact form, the plugin makes a POST form submit to the same page, with the info about the mail to send. It apparently only expects to have the result of the operation in the HTML content, but i had modified my functions.php to output some HTML code (so that it is displayed on every page), so the result was badly interpreted and i got the infinite spinning wheel

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic