From 10810fde3552f3a4edf06079a11bffe817bcfa40 Mon Sep 17 00:00:00 2001 From: bogdan202 Date: Tue, 11 Jun 2024 17:17:20 +0200 Subject: [PATCH] refs #46281 pui form. pre-fill birthday and phone --- classes/PUI/DataUserForm.php | 13 +++++++++++-- classes/PUI/FraudNetForm.php | 4 ++++ paypal.php | 2 ++ views/templates/pui/fraudNetForm.tpl | 10 +++++++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/classes/PUI/DataUserForm.php b/classes/PUI/DataUserForm.php index 2d64b5d0..80c103f9 100644 --- a/classes/PUI/DataUserForm.php +++ b/classes/PUI/DataUserForm.php @@ -27,6 +27,9 @@ namespace PaypalAddons\classes\PUI; +use DateTime; +use PayPal; + if (!defined('_PS_VERSION_')) { exit; } @@ -131,9 +134,15 @@ public function setEmail($email) /** * @return string */ - public function getBirth() + public function getBirth($format = PayPal::PS_CUSTOMER_DATE_FORMAT) { - return (string) $this->birth; + $date = DateTime::createFromFormat(PayPal::PS_CUSTOMER_DATE_FORMAT, (string) $this->birth); + + if (!$date) { + return ''; + } + + return $date->format($format); } /** diff --git a/classes/PUI/FraudNetForm.php b/classes/PUI/FraudNetForm.php index 4d9f9d6b..730018db 100644 --- a/classes/PUI/FraudNetForm.php +++ b/classes/PUI/FraudNetForm.php @@ -29,6 +29,7 @@ use Address; use Context; +use Customer; use Exception; use PaypalAddons\classes\AbstractMethodPaypal; use Throwable; @@ -83,12 +84,15 @@ protected function getSourceId() protected function getUserData() { $billingAddress = new Address($this->context->cart->id_address_invoice); + $customer = new Customer($billingAddress->id_customer); $userData = new DataUserForm(); $userData->setFirstName($this->context->customer->firstname); $userData->setLastName($this->context->customer->lastname); $userData->setEmail($this->context->customer->email); $userData->setPhone($billingAddress->phone); + $userData->setBirth($customer->birthday); + $userData->setPhone($billingAddress->phone); return $userData; } diff --git a/paypal.php b/paypal.php index 98073558..312083c1 100755 --- a/paypal.php +++ b/paypal.php @@ -132,6 +132,8 @@ class PayPal extends \PaymentModule implements WidgetInterface const SCA_ALWAYS = 'SCA_ALWAYS'; + const PS_CUSTOMER_DATE_FORMAT = 'Y-m-d'; + public static $dev = true; public $express_checkout; public $message; diff --git a/views/templates/pui/fraudNetForm.tpl b/views/templates/pui/fraudNetForm.tpl index 2b7ab7a8..401c3d76 100644 --- a/views/templates/pui/fraudNetForm.tpl +++ b/views/templates/pui/fraudNetForm.tpl @@ -109,7 +109,7 @@ required class="form-control" type="date" - data-date={l s='DD.MM.YYYY' mod='paypal'} + data-date={if isset($userData) && $userData->getBirth('d.m.Y')}{$userData->getBirth('d.m.Y')}{else}{l s='DD.MM.YYYY' mod='paypal'}{/if} max="{$currentDate nofilter}" name="paypal_pui_birhday" id="paypal_pui_birhday" @@ -167,7 +167,9 @@ class="form-control" type="tel" name="paypal_pui_phone" + value="{if isset($userData)}{$userData->getPhone()}{/if}" id="paypal_pui_phone"> + @@ -204,6 +206,12 @@ separateDialCode: true } ); + + if (paypalPuiPhone.getSelectedCountryData().iso2 !== 'de') { + paypalPuiPhone.telInput.value = null; + paypalPuiPhone.setCountry('de'); + } + document.querySelector('form[pui-form]').addEventListener('submit', function(e) { if (paypalPuiPhone.getValidationError() == 0) { return;