Puddinq.com sharing knowledge

WooCommerce Checkout maak huisnummer verplicht als het niet lokaal afhalen is

WooCommerce Checkout maak huisnummer verplicht als het niet lokaal afhalen is

Bij de laatste versies van WooCommerce is de tweede adres regel in Nederlandse installaties verdwenen. In het verleden hernoemde ik deze tweede regel vaak naar Huisnummer en maakte ik hem verplicht. Nu is dat niet meer mijn eerste keus. Het volgende script controleert of er in de eerste regel een cijfer staat. Als dat niet zo is wordt een foutmelding gegeven. (En dit allemaal alleen weer als het niet een local pickup bestelling betreft)

add_action('woocommerce_checkout_process', 'custom_validation_process');


function custom_validation_process()

{

    global $woocommerce;

    $chosen_shipping = WC()->session->get( 'chosen_shipping_methods' )[0];
    $chosen_shipping = explode(':', $chosen_shipping);

    if ( $chosen_shipping[0] != 'local_pickup' ) {

        if (isset($_POST['billing_address_1']) and $_POST['billing_address_1'] != '') {
            if (!preg_match('/([0-9]+)/Uis', $_POST['billing_address_1'])) {

                if (function_exists('wc_add_notice')) {
                    wc_add_notice(__('Om je pakketje te bezorgen hebben we ook je huisnummer nodig. Voeg deze toe in het adresveld.'),
                        'error');
                } else {
                    $woocommerce->add_error(__('Om je pakketje te bezorgen hebben we ook je huisnummer nodig. Voeg deze toe in het adresveld.'));
                }

            }

        }


        if (isset($_POST['ship_to_different_address'])) {

            if (isset($_POST['shipping_address_1']) and $_POST['shipping_address_1'] != '') {

                if (!preg_match('/([0-9]+)/Uis', $_POST['shipping_address_1'])) {

                    if (function_exists('wc_add_notice')) {
                        wc_add_notice(__('Om je pakketje te bezorgen hebben we ook je huisnummer nodig. Voeg deze toe in het adresveld.'),
                            'error');
                    } else {
                        $woocommerce->add_error(__('Om je pakketje te bezorgen hebben we ook je huisnummer nodig. Voeg deze toe in het adresveld.'));
                    }

                }

            }

        }
    }

}