Viewing 1 replies (of 1 total)
  • Plugin Author zaus

    (@zaus)

    I just added a hook you can use if the service returns a fail response — see http://wordpress.org/extend/plugins/contact-form-7-3rd-party-integration/other_notes/#Hooks. You can use this to check if there was a problem and update the message accordingly.

    Unfortunately I couldn’t really find an easy way to alter the success style (i.e. not green box) – you could try some trickery like this:

    function mycf7_fail(&$cf7, $service, $response) {
    	$cf7->skip_mail = true;
    	// hijack message to well to notify user
    	///TODO: how to modify the "mail_sent" variable so the message isn't green?  on_sent_ok hack?
    	$cf7->messages['mail_sent_ok'] = 'Could not complete mail request: ' . $response['safe_message'];
    	// save to a "persistant" variable so we can use it in later hook
    	global $abt_cf7_mailnotsent;
    	$abt_cf7_mailnotsent = true;
    }
    add_action('Cf73rdPartyIntegration_onfailure', 'mycf7_fail', 10, 3);
    
    function mycf7_fail_json_echo($items, $result = null) {
    	// use our "persistant" variable from before
    	global $abt_cf7_mailnotsent;
    
    	if( isset($abt_cf7_mailnotsent) && true === $abt_cf7_mailnotsent ) :
    		$items['mailSent'] = false;
    		$items['invalids'] []= array(
    							'into' => 'span.wpcf7-form-control-wrap',
    							'message' => 'Mail was stopped due to service failure.' );
    	endif;
    
    	return $items;
    }
    add_filter('wpcf7_ajax_json_echo', 'mycf7_fail_json_echo');

    That is for the ajax submission – for the nonajax (plain post), I think you’d have to alter the $_POST variables that were set in wpcf7_submit_nonajax by hooking later in the init action (12) and using your “persistant variable” to check.

Viewing 1 replies (of 1 total)
  • The topic ‘[Plugin: Contact-Form-7: 3rd-Party Integration] Can i submit the form after the third party script r’ is closed to new replies.