| 1 |
|
| 2 |
const { extensionCartUpdate } = wc.blocksCheckout; |
| 3 |
|
| 4 |
export const saveShippingAndPaymentMethods = function ( shipping, payment ) { |
| 5 |
let paymentId = null; |
| 6 |
if ( payment ) { |
| 7 |
paymentId = payment.value || payment.paymentMethodSlug; |
| 8 |
} else { |
| 9 |
const paymentMethodInput = document.querySelector( 'input[name="radio-control-wc-payment-method-options"]:checked' ); |
| 10 |
if ( paymentMethodInput !== null ) { |
| 11 |
paymentId = paymentMethodInput.value; |
| 12 |
} |
| 13 |
} |
| 14 |
|
| 15 |
let shippingId = null; |
| 16 |
if ( shipping ) { |
| 17 |
shippingId = shipping.shippingRateId; |
| 18 |
} else { |
| 19 |
let radioInputs = document.querySelectorAll( '.wc-block-components-shipping-rates-control input[type="radio"]' ); |
| 20 |
for ( let i = 0; i < radioInputs.length; i++ ) { |
| 21 |
if ( radioInputs[ i ].checked ) { |
| 22 |
shippingId = radioInputs[ i ].value; |
| 23 |
break; |
| 24 |
} |
| 25 |
} |
| 26 |
} |
| 27 |
|
| 28 |
let data = {}; |
| 29 |
if ( shippingId ) { |
| 30 |
data.shipping_method = shippingId; |
| 31 |
} |
| 32 |
if ( paymentId ) { |
| 33 |
data.payment_method = paymentId; |
| 34 |
} |
| 35 |
|
| 36 |
if ( JSON.stringify( data ) !== '{}' ) { |
| 37 |
extensionCartUpdate( { |
| 38 |
namespace: 'packetery-js-hooks', |
| 39 |
data: data, |
| 40 |
} ); |
| 41 |
} |
| 42 |
} |
| 43 |
|