GOOGLE ADS

Sonntag, 17. April 2022

Ist es möglich, die Validierung für einige Checkout-Felder dynamisch mit JavaScript zu deaktivieren?

Ich habe einige Checkout-Felder mit ähnlichen Daten erstellt und sie sind erforderlich.

add_filter('woocommerce_checkout_fields', 'custom_woocommerce_billing_fields', 50);
function custom_woocommerce_billing_fields($fields) {
$fields['billing']['billing_company'] = array(
'label' => 'Company',
'type' => 'text',
'class' => array( 'form-row-first' ),
'required' => true,
);
$fields['billing']['billing_OIB'] = array(
'label' => 'OIB',
'type' => 'text',
'class' => array( 'form-row-last' ),
'required' => true,
);
}

Ein Kunde hat eine Radio-Button-Option, um auszuwählen, ob er als Privatperson oder im Auftrag eines Unternehmens kauft. Wenn er für private Zwecke kauft, blende ich mit JavaScript einige nicht benötigte Felder wie den Firmennamen aus und entferne auch den Klassennamen validate-required. Wenn er für ein Unternehmen einkauft, verstecke ich Vorname, Nachname usw. Dieser Code ist größer, aber ich denke, Sie verstehen es.

 notNeededField.style.display = 'none';
notNeededField.classList.remove('validate-required');

Dies funktioniert jedoch nicht vollständig, da WooCommerce wahrscheinlich jedes Feld in PHP zusätzlich validiert. Auch nachdem ich als Privatperson zur Kasse gehen möchte, gibt mir Woocommerce immer noch die Nachricht, dass der Firmenname erforderlich ist.

Ist es möglich, die Validierung mit JavaScript im Handumdrehen ein- und auszuschalten, und wie? Alternativ, was wäre die beste Lösung? Vielleicht requiredParameter für diese Felder auf "false" setzen und nur benutzerdefinierte JavaScript-Validierung durchführen?


Lösung des Problems

Es gibt einige WooCommerce-Plugins, die diese Art von Hide/Show-Job verwalten können.

Dies hier ist ein Beispiel: https://wordpress.org/plugins/advanced-product-fields-for-woocommerce/

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...