2016-11-10 4 views
0

J'utilise le contact de 7 plugin et ma question est d'ouvrir le formulaire de contact 7 en popup via wordpress admin ajax mais mon code ne fonctionne pas. Seulement popup ouvert mais formulaire de contact 7 ne pas soumettre. Il réoriente dans l'URL admin ajax et renvoie 0.Comment ouvrir le formulaire de contact 7 en utilisant wordpress ajax

Voici le code que je fais dans functions.php

<?php 
add_action('wp_head', 'my_action_popup_cf7_javascript'); 

function my_action_popup_cf7_javascript() { 
?> 
<script type="text/javascript" > 
jQuery(document).ready(function($) { 
    $('.myajaxcarrer').click(function(){ 
     //alert(1); 
     var mydata = $(this).data(); 
     $(".overlay").fadeIn('slow');  
     var data = { 
      action: 'my_action_popup_cf7', 
      //whatever: 1234, 
      id: mydata.id 
     }; 
     // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php 
     //console.log(ajaxurl); 
     $('.item').removeClass('active'); 
     $('[data-id=' + mydata.id + ']').parent().addClass('active'); 
     $.post('<?php echo esc_url(home_url()); ?>/wp-admin/admin-ajax.php', data, function(response) { 
      // alert('Got this from the server: ' + response); 
      $('#testcarrer').html(response); 
      var offset = $(window).scrollTop(); 

      $(".career-form").css("top", offset+50); 

      $('.closeBtn').click(function(e){ 
       e.preventDefault(); 
       $(".overlay").fadeOut('slow'); 
       $('.career-form').css("top", -1000+"%") 
      }); 
     }); 
    }); 
}); 

</script> 
<?php 
} 

add_action('wp_ajax_my_action_popup_cf7', 'my_action_popup_cf7_callback'); 
add_action('wp_ajax_nopriv_my_action_popup_cf7', 'my_action_popup_cf7_callback'); 

function my_action_popup_cf7_callback() { 
    global $wpdb; // this is how you get access to the database 
    //$whatever = 'ID=> '. $_POST['id']; 
    //echo $whatever; 
    ?> 
    <a href="#" class="closeBtn">X</a> 
     <h3>Apply Now</h3> 
     <div class="formBox"> 
     <?php echo do_shortcode('[contact-form-7 id="905" title="My New Carrer Form"]'); ?> 
     </div> 
    <?php 
    exit(); // this is required to return a proper result & exit is faster than die(); 
} 

et le code dans le fichier de modèle de page est

<span class="applyBtn"><a class="myajaxcarrer" data-id="903">Apply Now</a></span> 

<div class="overlay"></div> 
<div class="career-form">Ajax result Load here..</div> 

Et js le code est ci-dessous.

$('.applyBtn').click(function(e){ 
    e.preventDefault(); 
    var offset = $(window).scrollTop(); 
    $(".overlay").fadeIn('slow'); 
    $(".career-form").css("top", offset+50) 
}); 

$('.closeBtn, .overlay').click(function(e){ 
    e.preventDefault(); 
    $(".overlay").fadeOut('slow'); 
    $('.career-form').css("top", -1000+"%") 
}); 

Répondre

0

Vous pouvez l'ouvrir en renvoyant do_shortcode ('[nom du formulaire avec id]'); dans votre fonction php.