diff --git a/assets/js/checkout.js b/assets/js/checkout.js index ed88947..46d8c7a 100755 --- a/assets/js/checkout.js +++ b/assets/js/checkout.js @@ -510,14 +510,16 @@ const UnzerManager = { if (document.getElementById( 'unzer-invoice-id' ).value) { return true; } - if ( ! document.getElementById( 'unzer-invoice-dob' ).value) { - UnzerManager.error( unzer_i18n.errorDob || 'Please enter your date fo birth' ); - return false; - } if (UnzerManager.isB2B() && ! document.getElementById( 'unzer-invoice-company-type' ).value) { UnzerManager.error( unzer_i18n.errorCompanyType || 'Please enter your company type' ); return false; } + if (!UnzerManager.isB2B() || (UnzerManager.isB2B() && document.getElementById( 'unzer-invoice-company-type' ).value === 'sole')) { + if ( ! document.getElementById( 'unzer-invoice-dob' ).value) { + UnzerManager.error( unzer_i18n.errorDob || 'Please enter your date of birth' ); + return false; + } + } invoiceInstance.createResource() .then( function (result) { @@ -989,8 +991,29 @@ jQuery( UnzerManager.checkCountry(); const companyTypeInputContainer = document.getElementById( 'unzer-invoice-company-type-container' ); + const birthdate_form = document.getElementById('unzer-checkout-dob-row'); + const birthdate = document.getElementById('unzer-invoice-dob'); if (companyTypeInputContainer) { companyTypeInputContainer.style.display = UnzerManager.isB2B() ? 'block' : 'none'; + if (UnzerManager.isB2B()) { + if (document.getElementById('unzer-invoice-company-type').value === "sole") { + birthdate_form.style.display = "block"; + birthdate.setAttribute("required", "required"); + birthdate.name = "unzer-invoice-dob"; + } else { + birthdate_form.style.display = "none"; + birthdate.removeAttribute("required"); + birthdate.name = ""; + } + } else { + birthdate_form.style.display = "block"; + birthdate.setAttribute("required", "required"); + birthdate.name = "unzer-invoice-dob"; + } + } else { + birthdate_form.style.display = "block"; + birthdate.setAttribute("required", "required"); + birthdate.name = "unzer-invoice-dob"; } const placeOrderButton = document.querySelector( '#place_order' ); diff --git a/composer.json b/composer.json index 0b47ca3..7f94826 100755 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "require": { - "unzerdev/php-sdk": "^3.7.0", + "unzerdev/php-sdk": "^3.11.0", "php": ">=7.1" } } diff --git a/includes/gateways/Invoice.php b/includes/gateways/Invoice.php index f14b29f..18f2af8 100755 --- a/includes/gateways/Invoice.php +++ b/includes/gateways/Invoice.php @@ -153,7 +153,7 @@ public function payment_fields() { } Util::getNonceField(); ?> -