2013-07-03 52 views
1

我正在一個電子商務網站(shopp),那裏有基於訂閱的產品。購買產品時有用戶姓名和電子郵件的輸入。用jQuery提交WordPress的多個表單註冊

客戶希望購買該產品的用戶在WordPress中註冊爲訂閱者。所以我想要做的是從中獲取電子郵件的價值,並使用他們的電子郵件作爲用戶名和電子郵件在WordPress註冊。我能夠讓註冊部分工作,但不知道如何讓這兩個表單正確提交。現在只需提交登記表,忽略添加到購物車的產品表格。

購物車形式:

<form action="<?php shopp('cart','url'); ?>" method="post" class="shopp product validate validation-alerts"> 
    <!-- extra code --> 
    <?php 
    if (shopp('product', 'in-category', 'id=32')) : // courses ?> 
     <div id="guests" class="guests"> 
      <div>Enter the names and emails of the people subscribing</div> 
      <div class="guest-list"> 
       <p class="guest"> 
        <label>First Name </label><?php shopp('product','input',"name=First Name 1"); ?><br /> 
        <label>Last Name </label><?php shopp('product','input',"name=Last Name 1"); ?><br /> 
        <label>Email </label><?php shopp('product','input',"name=Email 1"); ?> 
       </p> 
      </div> 
      <?php shopp('product', 'addtocart'); ?> 
     </div> 
     <?php 
    else : 
     shopp('product', 'addtocart'); 
    endif; 
    ?> 
    <?php wp_nonce_field('check-user', '_check-user-nonce', true, true); ?> 
</form> 

登記表:

<form id="register-form" action="<?php echo site_url('wp-login.php?action=register', 'login_post') ?>" method="post"> 
    <input type="hidden" name="user_login" value="Username" id="user_login" class="input" /> 
    <input type="hidden" name="user_email" value="E-Mail" id="user_email" class="input" /> 
    <?php do_action('register_form'); ?> 
    <input type="hidden" value="Register" id="register" /> 
</form> 

的jQuery:

(function ($) { 
    $('#guests').on('click', '.addtocart', function() { 
     var id = $('.product-qty-wrapper').attr('id'), 
      userEmail = $('#data-email-1-'+ id).val(); 

     // take users email and use for register form 
     $('#register-form input[name="user_login"]').val(userEmail); 
     $('#register-form input[name="user_email"]').val(userEmail); 
     $('#register-form').submit(); 
    }); 
}(jQuery)); 

更新

發現這個職位WHI CH工作對我來說submitting multiple forms with AJAX

$('form').each(function() { 
    var $this = $(this); 
    $.post($this.attr('action'), $this.serialize()); 
}); 
+1

您將需要AJAX做一個POST請求,而無需刷新頁面,所以通過AJAX發送註冊表單併成功提交購物車表格 –

+0

謝謝,幫助我走向正確的方向 – ferne97

+0

您不一定需要AJAX,您也可以使用'target'屬性將表單提交到iFrames。但是,如果/因爲你沒有任何文件上傳,AJAX是更好的方法。 – Nic

回答

0

另一種方法是使用一個鉤狀shopp_cart_add_item並做WP-登記在那裏。

我個人會在成功購買後的稍後時間觸發wp註冊。現在,當您的客戶從購物車中刪除課程時,wp註冊已經發生。