✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Juhend, kuidas lisada WooCommerce Checkoutile koodi järgi kohandatud tasusid

9

Mõnel juhul peate võib-olla lisama ostukorvi kogusummale tasu. Mõnikord ainult siis, kui teatud tingimus on täidetud, näiteks sõltuvalt ostukorvi kogusummast või saatmiskohast. WooCommerce’iga on tasu lisamine üsna lihtne – palju lihtsam kui tegelikult allahindluse lisamine. Selles postituses õpime, kuidas lisada WooCommerce’ile kohandatud tasu.

WooCommerce’il on ostukorvi objektil sisseehitatud funktsioon tasude lisamiseks. Kõik, mida vajate, on haakuda õige toiminguga ja kaasasoleva ostukorvi objektiga kutsuda funktsioon tasu lisamiseks. WooCommerce kuvab tasud automaatselt ostukorvis ja kassa kogusumma. Teie otsustate tasu sildi ja suuruse.

Juhend, kuidas lisada WooCommerce Checkoutile koodi järgi kohandatud tasusid

Oluline on tähele panna, et tasu suurus ei tohi olla negatiivne – seega kliendile allahindlust. See "häkkimine" töötas varem vanemates WooCommerce’i versioonides, kuid enam mitte.

Läheme koodi üksikasjadesse! Ainus konks, mille pärast pead muretsema, on woocommerce_cart_calculate_fees. Selle konksu sees saate käruobjekti kätte helistades WC()->cart. Selle objektiga saate helistada, add_fee()mis aktsepteerib nelja parameetrit (tõenäoliselt vajate kõigepealt ainult kahte); add_fee($fee_name, $amount_in_float, $taxable_boolean, $tax_class_string). Esimesed kaks on iseenesestmõistetavad. Kolmas parameeter on tõeväärtus, mis otsustab, kas tasu on maksustatav või mitte. Ja neljas on tasu maksuklassi andmiseks (kui kolmas parameeter on tõene). Kuid standardse maksuklassi puhul võib selle tühjaks jätta.

Fikseeritud tasu lisamine

Kohandatud tasu lisamine toimub selle kõige lihtsamal kujul, näiteks järgmiselt:

Esimene samm on tasu lisamise takistamine, kui oleme administraatoris või kui Ajax on pooleli. Järgmisena kutsume add_fee()vankriobjekti juurde. See lisab tasu nimetusega „Väike tasu", mille väärtus on 5. Väärtus on mis tahes valuutas, mis teie poes on. Kui poe valuutaks on määratud dollarid, muutub see 5 dollariks. Kohandage nimi ja summa vastavalt oma vajadustele.

Tasu lisamine protsendina ostukorvi kogusummast

Kui soovite, et tasu suurus oleks protsent ostukorvi kogusummast, peate selle lihtsalt teisiti arvutama. Pidage meeles, et meil on alati juurdepääs ostukorvi objektile helistades WC()->cartja sealt saame kogusummad kätte.

Ülaltoodud kood lisab tasu, mis moodustab 5% ostukorvi kogusummast, mis on ostukorvi kaupade kogusumma (get_cart_contents_total()) pluss ostukorvi saatmiskulu (get_shipping_total()). Reguleerige määra ja seda, millised kogusummad lisada või välja jätta, mida vajate.

Nii et see on päris tore, kuid mõnel juhul soovime tasu lisamise aega kohandada. Võib-olla soovite lisada tasu ainult teatud saatmisviisi, makseviisi või ostukorvi kogusumma alusel. Protsess on sama, lisame tasu ainult siis, kui meie tingimused on täidetud.

Lisandub tasu olenevalt ostukorvi kogusummast

Oletagem, et soovite lisada tasu ainult siis, kui ostukorvi kogusumma oli alla teatud summa. Oletame, et soovite lisada tasu väikeste summade käitlemise eest. Saate seda teha nii:

Kasutage WC()->cart->get_cart_contents_total()ostukorvi koguarvu ujunumbri saamiseks, välja arvatud saatmine. (Kui soovite kaasata ka saatmiskulud, vaadake ülalt, lisades protsenditasu, kuidas saada tarnesummasid). Seejärel tehke oma võrdlused.

Samuti võite selle ümber pöörata ja otsustada tasu lisada, kui käru ületab teatud piiri.

Lisandub tasu olenevalt saatmiskohast

Saate lisada tasu ka sõltuvalt saatmiskohast, näiteks riigiti. Sarnaselt ostukorvi objekti hankimisele saame kasutada WC()->customerkliendiobjekti jaoks. Pidage meeles, et kui klient pole sisse logitud ega kassasse jõudnud ning oma aadressi sisestanud, on kliendiobjekti väärtused tühjad või teie kaupluses määratud vaikeväärtused.

Peate teadma riigikoodi – siin on kena riigikoodi viide. Siin on näide tasu lisamisest, kui klient on Norrast.

Lisan tasu olenevalt valitud saatmisviisist

Tarneviisi hankimine on veidi keerulisem, kuna see sõltub kasutaja seansist ega ole "kena arusaadavas vormingus". Praeguse valitud tarneviisiga saate tutvuda WC()->session->get('chosen_shipping_methods'). Pange tähele, et see ütleb "meetodid", mitte "meetod", seega tagastab see massiivi. Tavaliselt sisaldab massiiv ühte elementi, kus iga element koosneb tarne ID stringidest, koolonist ja sellele järgnevast ID-st. Soovitan kasutada PHP stringimeetodeid, et kontrollida, kas string sisaldab näiteks ID-d strpos()ja mitte, kas see on võrdne.

Lisan tasu olenevalt valitud makseviisist

Kui soovite lisada tasu olenevalt valitud makselüüsist, saate praeguse valitud makselüüsiga WC()->session->get('chosen_payment_method')tutvuda ja võrrelda selle nimega (nt Paypali puhul tagastaks see 'paypal'). Siiski võite märgata, et kui klient vahetab kassas makselüüside vahel, tasu dünaamiliselt ei lisata ega eemaldata. Seega peate lisama täiendava Javascripti, et WooCommerce värskendaks ostukorvi, et teie tasu järjepidevalt toimiks.

Javascripti lisamiseks haakime selle külge, woocommerce_review_order_before_paymentmis toimub kassas vahetult enne maksekasti ja väljastame tekstisisese skripti. Kõik, mida kood teeb, on WooCommerce’i konksu käivitamine, update_checkoutkui makseviisi valikut muudetakse. See tagab, et kõik vajalikud PHP meetodid ja konksud (kaasa arvatud tasu konks) käivituvad iga kord, kui ostukorvi uuendatakse.

Lisan tasu olenevalt sellest, millised tooted ostukorvis on

Mainin seda enne, aga mainin uuesti: Teil on täielik juurdepääs ostukorvi objektile rakendusega WC()->cart, nii et saate otsida ostukorvi sisust konkreetse toote ID-d ja lisada tasu, kui see on ostukorvis olemas.

Kasutamine WC()->cart->get_cart_contents()tagastab hulga kõiki ostukorvis olevaid tooteid. Saate selle lihtsa foreachtsükliga läbi teha ja kontrollida iga toote soovitud seisundit või kui soovite lihtsalt ID-sid kontrollida, saate kõik toote ID-d ühele reale eraldada järgmiselt:

Allolev näide näitab, kuidas saate lisada tasu sõltuvalt sellest, kas ostukorvis on teatud ID-ga toode:

Sarnaseid toiminguid saate kasutada ka koguste eraldamiseks, kui peate lisama tasu, kui klient lisab midagi tõesti suure koguse.

Kokkuvõtteks

See postitus on näidanud, kuidas lisada kohandatud tasu ja viie näite kaudu, kuidas teatud tingimustel tasu lisada. Need tingimused olid kõik, millega ma olen kokku puutunud ja millele suutsin mõelda, ning need peaksid andma vähemalt vihjeid selle kohta, kuidas saada teavet, et oma tingimusi veelgi kohandada. Andke mulle teada, kas need töötasid teie jaoks või kui olete leidnud mõne muu seisundi, millele ma ei mõelnud!

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem