1

私は、サブスクリプション ベースの製品がある e コマース サイト (shopp) に取り組んでいます。製品購入時のユーザー名とメールアドレスの入力があります。

顧客は、この製品を購入したユーザーを 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));

アップデート

AJAXで複数のフォームを送信するのに役立つこの投稿を見つけました

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

1 に答える 1

0

別の方法は、 shopp_cart_add_itemのようなフックを使用して、そこで wp-registration を行うことです。

個人的には、購入が成功した後、後で wp-registration をトリガーします。顧客がカートからコースを削除した時点で、WP 登録はすでに行われています。

于 2015-05-26T11:10:14.010 に答える