Open HLFH opened 6 months ago
@HLFH
Since the issue is not related to the WordPress core or the WooComerce plugin itself, I think there is nothing that can be done on our end.
I took a quick look at the WooCommerce PayPal plugin and found that it uses the WC_Order after processing orders to get the billing phone number and complete the payment.
Try to manipulate the billing phone number value, you can use this hook such as the code below:
add_filter('woocommerce_order_get_billing_phone', function ($value) {
return ltrim( $value, '+' );
}, 10 );
This filter removes the leading "+" character from your billing phone number when fetched from an order.
keep in mind that applying this filter globally may lead to unintended consequences. It's advisable to implement specific conditions or rules to determine when this hook should be applied to avoid potential issues.
Describe the Bug
There is a conflict with International Phone Number Format plugin on international phone number validation and WooCommerce PayPal Payments. WooCommerce PayPal Payments may have to adapt its validation code in order to support E.164 international phone number format.
To Reproduce
modules/ppcp-api-client/src/Factory/PayerFactory.php
Required modification of the code to support international numbers that contain the "+" sign.
PayPal orders may not go through because of this conflict. It is better to have support for E.164 standard to have reliable SMS notifications for shipping.
Expected Behavior
Support E.164 and PayPal orders would go through. For that, we may have to solve this plugin conflict on either side.
Actual Behavior
PayPal orders are not going through because of incomplete billing phone validation.
Environment