Get phone country code from billing country code

This commit is contained in:
dinamiko 2022-03-30 09:54:03 +02:00
parent 72efcbb71d
commit 6c216ad7bb
2 changed files with 11 additions and 25 deletions

View file

@ -111,16 +111,6 @@ class PayUponInvoice {
'clear' => true, 'clear' => true,
) )
); );
woocommerce_form_field(
'phone_country_code',
array(
'type' => 'number',
'label' => __('Phone country code (ex. 49)', 'woocommerce-paypal-payments'),
'class' => array('form-row-wide'),
'required' => true,
'clear' => true,
)
);
echo '</div><div>'; echo '</div><div>';
_e( 'By clicking on the button, you agree to the <a href="https://www.ratepay.com/legal-payment-terms">terms of payment</a> and <a href="https://www.ratepay.com/legal-payment-dataprivacy">performance of a risk check</a> from the payment partner, Ratepay. You also agree to PayPals <a href="https://www.paypal.com/de/webapps/mpp/ua/privacy-full?locale.x=eng_DE&_ga=1.267010504.718583817.1563460395">privacy statement</a>. If your request to purchase upon invoice is accepted, the purchase price claim will be assigned to Ratepay, and you may only pay Ratepay, not the merchant.', 'woocommerce-paypal-payments' ); _e( 'By clicking on the button, you agree to the <a href="https://www.ratepay.com/legal-payment-terms">terms of payment</a> and <a href="https://www.ratepay.com/legal-payment-dataprivacy">performance of a risk check</a> from the payment partner, Ratepay. You also agree to PayPals <a href="https://www.paypal.com/de/webapps/mpp/ua/privacy-full?locale.x=eng_DE&_ga=1.267010504.718583817.1563460395">privacy statement</a>. If your request to purchase upon invoice is accepted, the purchase price claim will be assigned to Ratepay, and you may only pay Ratepay, not the merchant.', 'woocommerce-paypal-payments' );
@ -136,18 +126,14 @@ class PayUponInvoice {
); );
add_action( add_action(
'woocommerce_checkout_order_processed', 'woocommerce_after_checkout_validation',
function( $order_id, $posted_data, $order ) { function( $fields, $errors ) {
if ( $order->get_billing_country() !== 'DE' ) { if ( $fields['billing_country'] !== 'DE' ) {
wp_send_json_error( $errors->add( 'validation', __( 'Billing country not available.', 'woocommerce-paypal-payments' ) );
array(
'result' => 'failure',
)
);
} }
}, },
10, 10,
3 2
); );
} }

View file

@ -9,7 +9,7 @@ class PaymentSourceFactory {
public function from_wc_order( WC_Order $order ) { public function from_wc_order( WC_Order $order ) {
$address = $order->get_address(); $address = $order->get_address();
$birth_date = filter_input( INPUT_POST, 'billing_birth_date', FILTER_SANITIZE_STRING ); $birth_date = filter_input( INPUT_POST, 'billing_birth_date', FILTER_SANITIZE_STRING );
$phone_country_code = filter_input( INPUT_POST, 'phone_country_code', FILTER_SANITIZE_STRING ); $phone_country_code = WC()->countries->get_country_calling_code( $address['country'] ?? '' );
return new PaymentSource( return new PaymentSource(
$address['first_name'] ?? '', $address['first_name'] ?? '',
@ -17,7 +17,7 @@ class PaymentSourceFactory {
$address['email'] ?? '', $address['email'] ?? '',
$birth_date ?? '', $birth_date ?? '',
$address['phone'] ?? '', $address['phone'] ?? '',
$phone_country_code ?? '', substr($phone_country_code, strlen('+')) ?? '',
$address['address_1'] ?? '', $address['address_1'] ?? '',
$address['city'] ?? '', $address['city'] ?? '',
$address['postcode'] ?? '', $address['postcode'] ?? '',