✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Opas mukautettujen maksujen lisäämiseen WooCommerce Checkoutiin koodin mukaan

16

Joissakin tapauksissa saatat joutua lisäämään maksun ostoskorin loppusummaan. Joskus vain, jos tietty ehto täyttyy, esimerkiksi ostoskorin kokonaissummasta tai toimituspaikasta riippuen. WooCommercen avulla maksun lisääminen on melko helppoa – paljon helpompaa kuin itse asiassa alennuksen lisääminen. Tässä viestissä opimme lisäämään mukautetun maksun WooCommerceen.

WooCommercessa on sisäänrakennettu toiminto ostoskoriobjektissa maksujen lisäämistä varten. Sinun tarvitsee vain kytkeytyä oikeaan toimintoon ja kutsua mukana toimitetulla ostoskoriobjektilla toiminto maksun lisäämiseksi. WooCommerce näyttää maksut automaattisesti ostoskorissa ja kassasummat. Päätät maksun etiketin ja määrän.

Opas mukautettujen maksujen lisäämiseen WooCommerce Checkoutiin koodin mukaan

On tärkeää huomioida, että maksun määrä ei voi olla negatiivinen, jolloin asiakas saa alennuksen. Tämä "hakkerointi" toimi aiemmin vanhemmissa WooCommerce-versioissa, mutta ei enää.

Mennään koodin yksityiskohtiin! Ainoa koukku, josta sinun on huolehdittava, on woocommerce_cart_calculate_fees. Tämän koukun sisällä pääset käsiksi kärryesineeseen soittamalla WC()->cart. Tällä objektilla voit kutsua, add_fee()joka hyväksyy neljä parametria (tarvitset todennäköisesti vain kaksi ensin); add_fee($fee_name, $amount_in_float, $taxable_boolean, $tax_class_string). Kaksi ensimmäistä ovat itsestään selviä. Kolmas parametri on boolen arvo, joka päättää, onko maksu verotettava vai ei. Ja neljäs on veroluokan tarjoaminen maksulle (jos kolmas parametri on totta). Mutta se voidaan jättää tyhjäksi tavalliselle veroluokalle.

Lisätään kiinteä maksu

Mukautetun maksun lisääminen tapahtuu yksinkertaisimmassa muodossaan seuraavasti:

Ensimmäinen askel on estää maksun lisääminen, jos olemme järjestelmänvalvojana tai jos Ajax on käynnissä. Seuraavaksi kutsumme add_fee()kärrykohteen. Tämä lisää "Pieni maksu" -nimisen maksun, jonka arvo on 5. Arvo on missä tahansa valuutassa, joka sinulla on kaupassasi. Jos kaupan valuutaksi on asetettu dollareita, siitä tulee 5 dollaria. Muokkaa nimi ja summa tarpeidesi mukaan.

Lisätään maksu prosenttiosuutena ostoskorin loppusummasta

Jos haluat maksun olevan prosenttiosuus ostoskorin kokonaissummasta, sinun on vain laskettava se eri tavalla. Muistathan, että meillä on aina pääsy ostoskoriobjektiin soittamalla WC()->cartja sieltä voimme noutaa loppusummat.

Yllä oleva koodi lisää maksun, joka on 5 % ostoskorin kokonaissummasta, joka on ostoskorin tuotteiden kokonaismäärä (get_cart_contents_total()) plus ostoskorin toimituskulut (get_shipping_total()). Säädä korkoa ja summat, jotka sisällytetään tai jätetään pois mitä tarvitset.

Joten tämä on melko mukavaa, mutta joissain tapauksissa saatamme haluta mukauttaa maksun lisäämisajankohtaa. Haluat ehkä lisätä maksun vain tietystä toimitustavasta, maksutavasta tai ostoskorin loppusummasta. Prosessi on sama, lisäämme vain maksun vain, jos ehdot täyttyvät.

Lisätään maksu ostoskorin loppusummasta riippuen

Oletetaan, että haluat lisätä maksun vain, jos ostoskorin kokonaissummat ovat alle tietyn summan. Oletetaan, että haluat lisätä maksun pienten määrien käsittelystä. Voit tehdä sen näin:

Käytä WC()->cart->get_cart_contents_total()saadaksesi ostoskorin kokonaismäärän kelluvan numeron ilman toimituskuluja. (Jos haluat sisällyttää myös toimituskulut, katso yllä olevasta prosenttiosuuden lisäämisestä toimitussumman saamiseen). Tee sitten vertailut.

Voit myös kääntää sen ympäri ja päättää lisätä maksun, jos kärry ylittää tietyn rajan.

Lisätään toimitusmaksu riippuen toimituspaikasta

Voit lisätä maksun myös toimituspaikan mukaan, esimerkiksi maittain. Samalla tavalla kuin ostoskoriobjektin hankkimista, voimme käyttää WC()->customerasiakaskohteena. Muista, että kun asiakas ei ole kirjautunut sisään eikä ole vielä saapunut kassalle ja täyttänyt osoitteensa, asiakasobjektin arvot ovat tyhjiä tai myymälässäsi asetettuja oletusarvoja.

Sinun on tiedettävä maakoodi – tässä on hyvä maakoodiviittaus. Tässä on esimerkki maksun lisäämisestä, jos asiakas on Norjasta.

Lisätään maksu valitun toimitustavan mukaan

Toimitustavan saaminen on hieman hankalampaa, koska se riippuu käyttäjän istunnosta, eikä se ole "mukavassa ymmärrettävässä muodossa". Voit tarkistaa valitun toimitustavan käyttämällä WC()->session->get('chosen_shipping_methods'). Huomaa, että se sanoo "methods" eikä "method", joten tämä palauttaa taulukon. Normaalisti matriisi sisältää yhden elementin, jossa jokainen elementti koostuu toimitustunnuksen merkkijonoista, kaksoispisteestä ja sen jälkeen tunnuksesta. Suosittelen PHP-merkkijonomenetelmien käyttöä tarkistaaksesi, sisältääkö merkkijono esimerkiksi tunnuksen, strpos()eikä jos se on sama.

Lisätään maksu valitun maksutavan mukaan

Jos halusit lisätä maksun valitun maksuyhdyskäytävän mukaan, voit ottaa yhteyttä nykyiseen valittuun maksuyhdyskäytävään WC()->session->get('chosen_payment_method')ja tehdä vertailun sen nimeen (esim. Paypalille se palaa 'paypal'). Saatat kuitenkin huomata, että kun asiakas vaihtaa maksuyhdyskäytävien välillä kassalla, maksua ei lisätä tai poisteta dynaamisesti. Joten sinun on lisättävä ylimääräinen Javascript varmistaaksesi, että WooCommerce päivittää ostoskorin, jotta maksusi toimii johdonmukaisesti.

Javascriptin lisäämistä varten kiinnitämme siihen, woocommerce_review_order_before_paymentjoka tapahtuu kassalla ennen maksuruutua ja inline-skriptin tulosta. Koodi laukaisee vain WooCommercen koukun update_checkoutaina, kun maksutavan valintaa muutetaan. Tämä varmistaa, että kaikki tarvittavat PHP-menetelmät ja koukut suoritetaan (mukaan lukien maksukoukku) joka kerta kun ostoskori päivitetään.

Lisätään maksu ostoskorissa olevien tuotteiden mukaan

Mainitsen sen aiemmin, mutta mainitsen sen uudelleen: Sinulla on täysi pääsy ostoskoriobjektiin käyttämällä WC()->cart, joten voit etsiä ostoskorin sisällöstä tietyn tuotetunnuksen ja lisätä maksun, jos se on ostoskorissa.

Käyttämällä WC()->cart->get_cart_contents()palauttaa joukon kaikkia ostoskorissa olevia tuotteita. Voit joko kiertää tämän yksinkertaisella foreachsilmukalla ja tarkistaa jokaisen tuotteen haluamaasi kuntoon, tai jos haluat vain tarkistaa tunnukset, voit poimia kaikki tuotetunnukset yhdelle riville seuraavasti:

Alla oleva esimerkki näyttää, kuinka voit lisätä maksun riippuen siitä, että ostoskori sisältää tietyn tunnuksen tuotteen:

Vastaavia toimintoja voi käyttää myös määrien poimimiseen, jos joudut lisäämään maksun, kun asiakas lisää todella suuren määrän jotain.

Tiivistettynä

Tämä viesti on osoittanut sinulle, kuinka voit lisätä mukautetun maksun, ja viiden esimerkin kautta, kuinka lisätä maksu tietyistä ehdoista. Nämä olosuhteet olivat kaikki, mitä olen kohdannut ja osasin ajatella, ja niiden pitäisi ainakin antaa vihjeitä siitä, kuinka saada tietoa olosuhteiden muokkaamiseksi edelleen. Kerro minulle, toimivatko ne sinulle, tai jos olet löytänyt toisen tilan, jota en tullut ajatelleeksi!

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja