cancel
Showing results for 
Search instead for 
Did you mean: 

radio buttons instead of drop down list in Customize the Smart Payment Button

Options
erasimosa
Contributor
Posted on

hello,

I create a payment form using paypal checkout, you may see here

connectphone.gr/validation/pay/?num=  &nbs[Removed. Phone #s not permitted]/p>

but client want the options to be appear as radio check box instead of drop down list.

 

I replace this part of html 

<select id="item-options">
<option value="5 euros" price="5">5 EUR - SIM card</option>
<option value="10 euros" price="10">10 EUR -SIM with 2 GB data </option>
<option value="20 euros" price="20" selected>20 EUR - Sim with 4 GB data</option>
</select>

with 

<input type="radio" name="item-options" value="5 euros" price="5">5 EUR - SIM card
<input type="radio" name="item-options" value="10 euros" price="10">10 EUR -SIM with 2 GB data
<input type="radio" name="item-options" value="20 euros" price="20">20 EUR - Sim with 4 GB data

But it didn't work. Payment not procceed

Any idea how I can do that?

 

below i attached the original script

-------------------------------

<script type = "text/javascript">
var wrongnum = 0;
var str = '[urlparam param="num"/]';

if ((str.length == 10) && (str.charAt(0) =="6")) {

document.write("<center><h3>Prepaid Card Number [urlparam param="num"/] </h3></center>");


} else {
document.write("<h2>The number "+str +" is wrong.<br/>");
document.write("<br/>Number of digits :" + str.length);
document.write(" <br/> The first digit is:" + str.charAt(0));
document.write("</h2>");

wrongnum = 1;

}
</script>

 


<div id="smart-button-container">
<div style="text-align: center;">
<div style="margin-bottom: 1.25rem;">
<p>Please select your SIM option:</p>


<select id="item-options">
<option value="5 euros" price="5">5 EUR - SIM card</option>
<option value="10 euros" price="10">10 EUR -SIM with 2 GB data </option>
<option value="20 euros" price="20" selected>20 EUR - Sim with 4 GB data</option>
</select>

<select style="visibility: hidden" id="quantitySelect"></select>
</div>
<div id="paypal-button-container"></div>
</div>
</div>
<script src="https://www.paypal.com/sdk/js?client-id=AUiqj4vWgqHbZ-xa3_n35pn_n8fQpyr9t9sbv7Z-EfT4FAQvv2L0KEDI-1f4..." data-sdk-integration-source="button-factory"></script>
<script>
if (wrongnum == 0) {

function initPayPalButton() {
var shipping = 0;
var itemOptions = document.querySelector("#smart-button-container #item-options");
var quantity = parseInt();
var quantitySelect = document.querySelector("#smart-button-container #quantitySelect");
if (!isNaN(quantity)) {
quantitySelect.style.visibility = "visible";
}
var orderDescription = 'Connectphone Prepaid Card [urlparam param="num"/]';
if(orderDescription === '') {
orderDescription = 'Item';
}
paypal.Buttons({
style: {
shape: 'pill',
color: 'gold',
layout: 'vertical',
label: 'pay',

},
createOrder: function(data, actions) {
var selectedItemDescription = itemOptions.options[itemOptions.selectedIndex].value;
var selectedItemPrice = parseFloat(itemOptions.options[itemOptions.selectedIndex].getAttribute("price"));
var tax = (0 === 0 || false) ? 0 : (selectedItemPrice * (parseFloat(0)/100));
if(quantitySelect.options.length > 0) {
quantity = parseInt(quantitySelect.options[quantitySelect.selectedIndex].value);
} else {
quantity = 1;
}

tax *= quantity;
tax = Math.round(tax * 100) / 100;
var priceTotal = quantity * selectedItemPrice + parseFloat(shipping) + tax;
priceTotal = Math.round(priceTotal * 100) / 100;
var itemTotalValue = Math.round((selectedItemPrice * quantity) * 100) / 100;

return actions.order.create({
purchase_units: [{
description: orderDescription,
amount: {
currency_code: 'EUR',
value: priceTotal,
breakdown: {
item_total: {
currency_code: 'EUR',
value: itemTotalValue,
},
shipping: {
currency_code: 'EUR',
value: shipping,
},
tax_total: {
currency_code: 'EUR',
value: tax,
}
}
},
items: [{
name: selectedItemDescription,
unit_amount: {
currency_code: 'EUR',
value: selectedItemPrice,
},
quantity: quantity
}]
}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(orderData) {

// Full available details
console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));

// Show a success message within this page, e.g.
const element = document.getElementById('paypal-button-container');
element.innerHTML = '';
element.innerHTML = '<h3>Thank you for your payment!</h3>';

// Or go to another URL: actions.redirect('thank_you.html');

});
},
onError: function(err) {
console.log(err);
},
}).render('#paypal-button-container');
}
initPayPalButton();
}
</script>

-----------------

Haven't Found your Answer?

It happens. Hit the "Login to Ask the community" button to create a question for the PayPal community.