0
私は2つのストライプサブスクリプション(基本と高度)の選択を処理するために1つのページに2つのフォームを持っており、私はJavaScriptを使用して、基本計画については1つのページに2つのフォーム - 入力タイプの転送
:
<form id="payment_form_basic" action="" method="POST">
<input type="hidden" name="subscription_purchase_non_trial" value="subscription_purchase_non_trial_basic" />
<button id="pricing__action_grey">Choose Plan</button>
</form>
<script src="https://checkout.stripe.com/checkout.js"></script>
<script>
// ******************************************
// ****** Basic Plan Form Processor *********
// ******************************************
var handler = StripeCheckout.configure({
key: '<?php echo $stripe['publishable_key']; ?>',
image: 'https://example.com/example.png',
locale: 'auto',
allowRememberMe: 'false',
token: function(token) {
$('#payment_form_basic').append($('<input type="hidden" name="stripeToken" />').val(token.id));
$('#payment_form_basic').append($('<input type="hidden" name="stripeEmail" />').val(token.email));
$("#payment_form_basic").submit();
}
});
document.getElementById('pricing__action_grey').addEventListener('click', function(e) {
// Open Checkout with further options:
handler.open({
name: 'Basic',
description: 'example description',
zipCode: true,
amount: 10
});
e.preventDefault();
});
// Close Checkout on page navigation:
window.addEventListener('popstate', function() {
handler.close();
});
</script>
と高度な計画のための
:<form id="payment_form_advanced" action="" method="POST">
<input type="hidden" name="subscription_purchase_non_trial" value="subscription_purchase_non_trial_advanced" />
<input type="hidden" name="subscription_type" value="advanced" />
<button id="pricing__action">Choose Plan</button>
</form>
<script>
// ******************************************
// ****** Advanced Plan Form Processor ******
// ******************************************
var handler = StripeCheckout.configure({
key: '<?php echo $stripe['publishable_key']; ?>',
image: 'https://example.com/example.png',
locale: 'auto',
allowRememberMe: 'false',
token: function(token) {
$('#payment_form_advanced').append($('<input type="hidden" name="stripeToken" />').val(token.id));
$('#payment_form_advanced').append($('<input type="hidden" name="stripeEmail" />').val(token.email));
//$('#payment_form_advanced').append($('<input type="hidden" name="subscription_type" value="advanced" />'));
$("#payment_form_advanced").submit();
}
});
document.getElementById('pricing__action').addEventListener('click', function(e) {
// Open Checkout with further options:
handler.open({
name: 'Advanced',
description: 'example descript',
zipCode: true,
amount: 12
});
e.preventDefault();
});
// Close Checkout on page navigation:
window.addEventListener('popstate', function() {
handler.close();
});
</script>
私はスイッチなどの高度な形でSUBSCRIPTION_TYPEフィールドを使用しようとしているときに、ページの投稿基本的なプラン価格を処理するか、アドバンスドプランを処理するかを判断するために、それ自体に適用されますが、フォームは基本フォームが提出されるときに「アドバンス」サブスクリプションタイプを投稿しますが、受け取った投稿変数を印刷するとどうなるかはわかりません。誰がなぜこれが起こっているのか知っていますか?
あなたのjsコードを表示 –
はい、そうです。特にあなた自身で提出する場合。代わりに、各「サブスクリプション」の名前を変更します。たぶん "subscription_basic"と "subscription_advanced" –
実際には、一方は他方を上書きしてはいけません。私はあなたのコードを実行し、それが必要なように動作します。私は$をgetElementByIdに置き換えますので、vanilla jsを使用してください。ただし、diffを作成するべきではありません。私はFirefoxを使用しています。 'vardump()' '$ _POST'を実行して投稿を投稿して更新してください。 – mseifert