Overenie dĺžky tel. čísla

overenie tel cisla woocomerce
overenie tel cisla woocomerce
if ( document.querySelector('.checkout') ){
	document.getElementById('billing_phone').addEventListener('change', skontrolujCislo)  // alebo keyup
}

function skontrolujCislo () {
    if(document.getElementById('billing_phone').value.length!=13 ) {
    	document.getElementById('place_order').disabled = true
    }
    else {
	document.getElementById('place_order').disabled = false
    }
}

Tento javascript vypne vo woocomerce tlačídlo odoslať objednávku ak nie je dĺžka telefónneho čísla 13 znakov.

const node = document.createElement("i");
const textnode = document.createTextNode("Telefónne číslo uviest v tvare +421");
node.appendChild(textnode);
document.querySelector('#billing_phone').appendChild(node)

Týmto scriptom zas pridáme element s textom pod input s telefónnym číslom.

Min. alebo max dĺžku tel. čísla však vieme nastaviť aj cez wordpress snippet:

add_filter( 'woocommerce_checkout_fields', 'checkout_fields_custom_attributes', 9999 );
 
function checkout_fields_custom_attributes( $fields ) {
  
  //$fields['billing']['billing_phone']['maxlength'] = 10; // ak by sme chceli nastaviť max. dĺžku staci pridať toto

  //V predvolenom nastavení platobné polia WooCommerce podporujú len niektoré atribúty  napr. maxlenght áno ale minlenght nie takže ho tam treba pridať jedným z týchto spôsobov
 
  //$fields['billing']['billing_phone']['custom_attributes'] = array( "minlength" => "10" ); 
  // $fields['billing']['billing_phone']['custom_attributes']['pattern'] = '.{15,}';   // ak by nefungovali prve 2 moznosti

  $fields['billing']['billing_company']['custom_attributes']['minlength'] = 10;
   return $fields;
}

 Tento snippet síce pridá do pole pokladňa atribút minlenght ale stále sa odosiela, aj keď došlo k chybe pri zadávaní poľa. Takže bez ohľadu na to, čo robíme, aj keď nastavíme atribút minlength , WooCommerce neoveruje vstupnú hodnotu poľa pokladne . Jedinou možnosťou ktorú máme, je zastaviť proces platby, pokiaľ má pole viac ako 10 znakov.

// overí a  vypíše error
add_action( 'woocommerce_checkout_process', 'checkout_fields_phone_validation' );
   
function checkout_fields_phone_validation() { 
   if ( isset( $_POST['billing_phone'] ) && ! empty( $_POST['billing_phone'] ) ) {
      if ( strlen( $_POST['billing_phone'] ) < 10 ) {
         wc_add_notice( 'Min. dĺžka telefónného čísla je 10 znakov.', 'error' );
      }
   }   
}

Dostaneme takýto výsledok:

Viac na: https://www.businessbloomer.com/woocommerce-maxlength-minlength-checkout-fields/

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *