mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 18:16:38 +08:00
Improve fallback to shipping address when no billing
This commit is contained in:
parent
dc2c60a6f2
commit
b0ef0649bb
1 changed files with 15 additions and 10 deletions
|
@ -76,8 +76,8 @@ export const paypalShippingToWc = (shipping) => {
|
||||||
* @returns {Object}
|
* @returns {Object}
|
||||||
*/
|
*/
|
||||||
export const paypalPayerToWc = (payer) => {
|
export const paypalPayerToWc = (payer) => {
|
||||||
const firstName = payer.name.given_name;
|
const firstName = payer?.name?.given_name ?? '';
|
||||||
const lastName = payer.name.surname;
|
const lastName = payer?.name?.surname ?? '';
|
||||||
const address = payer.address ? paypalAddressToWc(payer.address) : {};
|
const address = payer.address ? paypalAddressToWc(payer.address) : {};
|
||||||
return {
|
return {
|
||||||
...address,
|
...address,
|
||||||
|
@ -100,11 +100,13 @@ export const paypalOrderToWcShippingAddress = (order) => {
|
||||||
const res = paypalShippingToWc(shipping);
|
const res = paypalShippingToWc(shipping);
|
||||||
|
|
||||||
// use the name from billing if the same, to avoid possible mistakes when splitting full_name
|
// use the name from billing if the same, to avoid possible mistakes when splitting full_name
|
||||||
|
if (order.payer) {
|
||||||
const billingAddress = paypalPayerToWc(order.payer);
|
const billingAddress = paypalPayerToWc(order.payer);
|
||||||
if (`${res.first_name} ${res.last_name}` === `${billingAddress.first_name} ${billingAddress.last_name}`) {
|
if (`${res.first_name} ${res.last_name}` === `${billingAddress.first_name} ${billingAddress.last_name}`) {
|
||||||
res.first_name = billingAddress.first_name;
|
res.first_name = billingAddress.first_name;
|
||||||
res.last_name = billingAddress.last_name;
|
res.last_name = billingAddress.last_name;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -116,11 +118,14 @@ export const paypalOrderToWcShippingAddress = (order) => {
|
||||||
*/
|
*/
|
||||||
export const paypalOrderToWcAddresses = (order) => {
|
export const paypalOrderToWcAddresses = (order) => {
|
||||||
const shippingAddress = paypalOrderToWcShippingAddress(order);
|
const shippingAddress = paypalOrderToWcShippingAddress(order);
|
||||||
let billingAddress = paypalPayerToWc(order.payer);
|
let billingAddress = shippingAddress;
|
||||||
|
if (order.payer) {
|
||||||
|
billingAddress = paypalPayerToWc(order.payer);
|
||||||
// no billing address, such as if billing address retrieval is not allowed in the merchant account
|
// no billing address, such as if billing address retrieval is not allowed in the merchant account
|
||||||
if (!billingAddress.address_line_1) {
|
if (!billingAddress.address_line_1) {
|
||||||
billingAddress = {...shippingAddress, ...paypalPayerToWc(order.payer)};
|
billingAddress = {...shippingAddress, ...paypalPayerToWc(order.payer)};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {billingAddress, shippingAddress};
|
return {billingAddress, shippingAddress};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue