
🚫 WooCommerce kassa indeks segab kliente: 4 viisi kinnituse eemaldamiseks
Miks sihtnumbri valideerimine on tarbetu takistus
WooCommerce nõuab vaikimisi sihtnumbri välja ja valideerib seda. Kuid tegelikkus on järgmine: kümned riigid Aafrikas, Kesk-Ameerikas ja Okeaanias ei kasuta üldse sihtnumbreid. Ostja Keeniast või Jamaicalt sisestab suvalised numbrid, saab veateate ja lahkub.

Lisaväljad ja veateated kassalehel kahjustavad otseselt konversiooni. Baymard Institute'i andmetel on 17% USA ostjatest katkestanud kassas ostu just seetõttu, et see oli liiga pikk või keeruline. Ühe või kahe tarbetu välja eemaldamine on odavaim viis müüki suurendada ilma reklaamieelarveta.
Allpool on neli võimalust valideerimise keelamiseks: alates välja täielikust eemaldamisest kuni selle lihtsalt ümbernimetamiseni. Vali oma sihtrühma põhjal.
💡 Kiirülevaade:
- Eemalda sihtnumbri väli täielikult
unset()abil, poodidele, kes seda üldse ei vaja - Muuda sihtnumber valikuliseks, segatud geograafilise sihtrühmaga poodidele
- Eemalda arvevormilt mittevajalikud väljad, kui sihtnumber on vaid osa probleemist
- Muuda välja silt kasutajale arusaadavaks, minimaalne sekkumine
- Kaalu pistikprogramme, kui eelistad koodi mitte puutuda
1. Meetod: eemalda sihtnumbri väli kassast täielikult
Kõige radikaalsem ja puhtam meetod. woocommerce_checkout_fields konks annab täieliku kontrolli kõigi kassaväljade üle: võta massiiv, lõika välja billing_postcode ja tagasta see.
Lisa kood oma alamteema functions.php faili:
1 /** 2 * Remove the postal code field (billing_postcode) from checkout. 3 */ 4 add_filter( 'woocommerce_checkout_fields', 'quadlayers_remove_billing_postcode_checkout' ); 5 function quadlayers_remove_billing_postcode_checkout( $fields ) { 6 unset( $fields['billing']['billing_postcode'] ); 7 return $fields; 8 }

Mis siin toimub. woocommerce_checkout_fields konks saab kogu kassaväljade massiivi: arveldus, tarne ja tellimus. Funktsioon unset() lõikab konkreetse võtme billing_postcode billing sektsioonist välja. Massiiv tagastatakse WooCommerce'ile ilma sihtnumbri väljata, seega kaob see nii vormilt kui ka valideerimisest.
Kuid kui su sihtrühm on segane ja mõned kliendid vajavad sihtnumbrit, vaata 2. meetodit.
2. Meetod: muuda sihtnumber valikuliseks
Selle asemel, et väli eemaldada, võid lihtsalt kohustuslikkuse lipu maha võtta. Väli jääb lehele, kuid ostja saab selle veateateta vahele jätta.
Siin kasutame woocommerce_default_address_fields filtrit, mis haldab kõigi aadressiväljade vaikesätteid:
1 /** 2 * Make the postal code field optional. 3 */ 4 add_filter( 'woocommerce_default_address_fields', 'quadlayers_optional_postcode_checkout' ); 5 function quadlayers_optional_postcode_checkout( $p_fields ) { 6 $p_fields['postcode']['required'] = false; 7 return $p_fields; 8 }

Erinevus esimesest meetodist on konksus. woocommerce_default_address_fields töötab ühe taseme võrra madalamal: see määrab väljade endi omadused (silt, kohatäide, kohustuslikkus) enne, kui need jõuavad arvelduse ja tarne sektsioonidesse. Seetõttu on võti siin lihtsalt postcode, ilma billing_ eesliiteta.
Sobib poodidele, mis müüvad nii sihtnumbrit kasutavatesse kui ka mittekasutavatesse riikidesse.
3. Meetod: eemalda arvevormilt mittevajalikud väljad
Sageli on probleem laiem kui ainult sihtnumber. Ettevõtte, aadressi_2, linna ja osariigi väljad pole samuti alati vajalikud: igaüks neist lisab kassas hõõrdumist.
Sama woocommerce_checkout_fields konks eemaldab identifikaatori järgi mis tahes välja. Siin on arveldussektsiooni saadaolevate võtmete täielik loend:
1 unset( $fields['billing']['billing_company'] ); 2 unset( $fields['billing']['billing_address_2'] ); 3 unset( $fields['billing']['billing_city'] ); 4 unset( $fields['billing']['billing_state'] ); 5 unset( $fields['billing']['billing_phone'] );
Nimed on iseenesestmõistetavad. billing_ eesliide näitab, et väli kuulub arvevormile. Näiteks company ja address_2 eemaldamiseks koos sihtnumbriga:
1 /** 2 * Remove company, address_2 and postal code from checkout. 3 */ 4 add_filter( 'woocommerce_checkout_fields', 'quadlayers_remove_billing_fields' ); 5 function quadlayers_remove_billing_fields( $fields ) { 6 unset( $fields['billing']['billing_company'] ); 7 unset( $fields['billing']['billing_address_2'] ); 8 unset( $fields['billing']['billing_postcode'] ); 9 return $fields; 10 }

Mitu unset() väljakutset eksisteerivad ühe funktsiooni sees rahulikult koos: lihtsalt loetle võtmed, mida soovid peita.
Meetod 4: Nimeta väli ümber millekski, millest kasutaja aru saab
Minimaalne sekkumine maksimaalse efektiga. Sa ei puuduta valideerimist, vaid muudad lihtsalt krüptilise sildi „Postcode / ZIP" millekski, millest sinu publik aru saab. Näiteks „Maakond" või „Postiindeks (kui on)".
Kasutame gettext konksu, sedasama, mida WordPress ja WooCommerce kasutavad liidese tõlkimiseks:
1 /** 2 * Change checkout field labels via gettext. 3 */ 4 add_filter( 'gettext', 'quadlayers_billing_field_strings', 20, 3 ); 5 function quadlayers_billing_field_strings( $translated_text, $text, $domain ) { 6 switch ( $translated_text ) { 7 case 'Postcode / ZIP': 8 $translated_text = __( 'Area code', 'woocommerce' ); 9 break; 10 } 11 return $translated_text; 12 }
Kui soovid mitu välja ümber nimetada, lisa switch-i sisse juhtumeid:
1 function quadlayers_billing_field_strings( $translated_text, $text, $domain ) { 2 switch ( $translated_text ) { 3 case 'Billing details': 4 $translated_text = __( 'Order information', 'woocommerce' ); 5 break; 6 case 'Ship to a different address?': 7 $translated_text = __( 'Send to other location please', 'woocommerce' ); 8 break; 9 case 'Company name': 10 $translated_text = __( 'Company', 'woocommerce' ); 11 break; 12 case 'Postcode / ZIP': 13 $translated_text = __( 'Area code', 'woocommerce' ); 14 break; 15 } 16 return $translated_text; 17 }

Ülaltoodud ekraanipildil on lähenemiste kombineerimise tulemus: mitu välja on peidetud, postiindeksi väli on ümber nimetatud „Suunakoodiks" ja muudetud valikuliseks, arve- ja tarneaadressi sektsioonide pealkirjad on asendatud kohandatud pealkirjadega. Kassa muutus lühemaks ja selgemaks, ilma pluginate kasutamiseta.
Pluginad kassaväljade haldamiseks
Kui sa ei soovi functions.php faili puutuda, on olemas valmistööriistad. Vaatame kahte tasuta pluginat, mis lahendavad probleemi ilma ühegi koodireata.
Checkout field manager for WooCommerce
Checkout Field Manager, üks populaarsemaid kassaväljade redaktoreid. See võimaldab lisada, eemaldada ja ümber järjestada välju Arve, Tarne ja Lisa sektsioonides, kõike visuaalse liidese kaudu.

Plugin on tasuta; põhiversioon katab peamised stsenaariumid: peida väli, muuda see valikuliseks, nimeta ümber. Tingimusliku loogika (näita välja ainult kindla riigi puhul) ja täiendavate väljatüüpide jaoks on olemas premium-versioon.
Direct Checkout for WooCommerce
Direct Checkout for WooCommerce (endise nimega „WooCommerce Direct Checkout") lahendab laiema probleemi: see lihtsustab kogu kassaprotsessi. Lisaks väljade eemaldamisele saab see: jätta ostukorvi vahele ja viia kliendi otse kassasse, muuta „Lisa ostukorvi" nupu teksti, lisada tootelehtedele AJAX-iga ostukorvi lisamise.

Mõlemat pluginat uuendatakse regulaarselt ja need ühilduvad WordPressi ja WooCommerce’i praeguste versioonidega.
⁉️🤔 Korduma kippuvad küsimused
Kas ma saan valideerimise keelata ainult teatud riikide puhul?
Jah. Sa saad siduda kontrolli
WC()->customer->get_billing_country()-gawoocommerce_checkout_fieldsfiltri sees ja rakendadaunset()võirequired = falseainult nende riikide loetelule, kus postiindeksit pole. Nii näevad ostjad Saksamaalt või USA-st endiselt kohustuslikku välja, samas kui Keenia kliendid mitte.
Kas tarne läheb katki pärast postiindeksi valideerimise keelamist?
See sõltub tarneteenusest. Postiteenused nagu USPS või Royal Mail kasutavad postiindeksit hindade arvutamiseks; nende puhul on parem hoida väli kohustuslikuna või vähemalt nähtaval. Kui müüd digitaalseid kaupu või kasutad kullerteenust linna piires, võid postiindeksi julgelt eemaldada. Testi pärast muudatuste tegemist iga tarnetsooni maksumuse arvutust.
Kood ei tööta, postiindeksi väli on endiselt alles. Milles asi?
Kolm levinumat põhjust. Esiteks: vahemälu. Tühjenda oma saidi ja brauseri vahemälu; pärast
functions.phpmuutmist ava kassa inkognito režiimis. Teiseks: mõni teine plugin või teema kirjutab välja üle hiljem kui sinu filter. Proovi konksu prioriteeti tõsta:add_filter( 'woocommerce_checkout_fields', '...', 99 ). Kolmandaks: sa muudad valetfunctions.phpfaili. Kood peab olema aktiivse (alam)teema failis.
Kuidas eemaldada postiindeksi väli ilma functions.php-d muutmata?
Paigalda Checkout field manager for WooCommerce; see võimaldab kõiki välju administraatori paneeli kaudu keelata. Või kasuta Code Snippets pluginat: kleebi 1. meetodi PHP kood killuna ja aktiveeri see. Mõlemad variandid on ohutumad kui
functions.phpotsene muutmine ega lähe teema uuendamisel kaduma.
Mis siis, kui postiindeksi valideerimine on keelatud, aga WooCommerce annab ikka veateate?
Tõenäoliselt ei genereeri viga WooCommerce’i tuum, vaid mõni kolmanda osapoole plugin, näiteks tarneteenuse plugin või aadressivalidaator. Keela tarne- ja aadressi kinnitamise pluginad ükshaaval, et süüdlane leida. Kontrolli ka, kas valideerimine on seatud teema JavaScripti tasemel; mõnikord dubleerivad arendajad kontrolli esiküljel.
Praktiline näide videost
Vaata kassaväljade seadistamise elavat näidet, koodist kuni esikülje tulemuseni:
Kood või plugin: kumba valida?
Kui sul on vaja eemaldada vaid üks või kaks välja ja tunned end teemaredaktoris mugavalt, siis piisab neljast PHP reast meetodist 1 või 2. See on kergekaaluline ega lisa saidile üleliigset koodi.
Kui sul on palju välju seadistada, katsetad sageli kassaga või eelistad mitte puutuda functions.php faili, siis vali Checkout Field Manager for WooCommerce. See on tasuta ja annab sulle visuaalse kontrolli kõigi väljade üle, ilma et peaksid kartma saidi lõhkumist koodis oleva trükivea tõttu.
Põhjalikuks kassa optimeerimiseks (ostukorvi vahelejätmine, AJAX-nupud, kohandatud sildid) katab Direct Checkout for WooCommerce kõik ühe pluginaga.
Kuldreegel: pärast igat muudatust tee testtellimus algusest lõpuni. Viis minutit testimist hoiab ära tunnid, mis kuluksid päris klientide kaebuste lappimisele.


