CURLSQUEEN Human Hair Extensions

<div id="paypal-express-cart-payments"></div> <script> paypal.Buttons({ style: { label: 'checkout', tagline: false, size: 'responsive', height:55, layout: 'horizontal', }, commit: true, env: 'production', onClick: () => {}, createOrder: async function() { LoadingMask(true); return fetch('/modules/paypal/api/?mod=order-create&express_checkout=cart', { method: 'post', body: '', headers: { 'content-type': 'application/json' } }).then(function(res) { return res.json(); }).then(function(data) { return data.id; }).finally(function() { LoadingMask(false); }); }, onApprove: function(data, actions) { LoadingMask(true); return actions.order.get().then(function(orderDetails) { return fetch( '/modules/paypal/api/?mod=expresscart-callback&express_checkout=cart&token=' + orderDetails.id, { method: 'GET', headers: { 'content-type': 'application/json' } }).then(function(res) { return res.json(); }).then(function(data) { if (data.redirect) { setTimeout(function() { LoadingMask(true); }, 100); window.location.href = data.redirect; } else { // Handle error case when no redirect URL is returned console.error('No redirect URL received'); sweetAlert("Oops...", "Network error, please try again", "error"); } }).catch(function(error) { // Handle any fetch or processing errors console.error('Error processing payment:', error); LoadingMask(false); }).finally(function() { LoadingMask(false); }); }) }, onCancel: function(data) { console.log(data); }, onError: function(err) { console.log(err); } }).render('#paypal-express-cart-payments'); </script>

Prom? Wedding? Festival? Get Red-Carpet Hair in 5 Mins

HAIR NOW, PAY LATER  4-easy Payments

how to choose the best hair extensions for short hair

Struggling to choose the right hair extensions? We’ll guide you through comparing the pros and cons of different types of extensions and help you select the best hair extensions for short hair with...