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

Juhend: muutke hindu WooCommerce’is koodi järgi

6

See postitus on mõeldud teile, kes soovite lisada koodi, mis kohandab teie WordPressi WooCommerce’i veebipoe hindu. Saate kas hindu tõsta või allahinnata. Ja kuidas ja kust kohandused tulevad, sõltub täielikult teie juhtumist. Teie veebipood võib töötada protsentuaalsete allahindlustega, mis on määratud igale registreeritud kasutajale, kohandatud globaalse seadistusega WooCommerce’i seadetes, fikseeritud fikseeritud summaga või millegagi, mis on määratud igale tootele või tootekategooriale.

Olen püüdnud muuta koodi võimalikult üldiseks, et saaksite seda oma juhtumile kohandada. Minu puhul tulenevad hinnamuutused kasutaja metana lisatud allahindluse protsendist.

Kood on värskendatud töötama WooCommerce 3.x ja uuemate versioonide jaoks. Ma ei saa garanteerida, et see töötab madalamate versioonide jaoks.

1 samm: määrake oma koodi jaoks koht

Esimene samm on lihtne; vajate koodi lisamise kohta. See sõltub täielikult teist. Saate selle lisada otse oma teemasse functions.phpvõi kuhugi pistikprogrammi failidesse. Mulle meeldib töötada klassidega, mis hoiavad kõik kenasti ühes kohas koos. Lihtsuse huvides panen klassi /src/oma teemasse alamkataloogi ning lisan ja eksemplareerin selle functions.php.

require_once(get_stylesheet_directory().'/src/ChangePrices.php'); new ChangePrices();

Muutke seda sammu vastavalt oma juhtumile.

2 samm: otsustage, kuidas hinna korrigeerimine peaks toimima

See samm võib teie jaoks juba selge olla – siin peate teadma, kuidas ja kust hinda korrigeerida. Lõpp-eesmärk peaks olema arv, millega hinnad liita, lahutada, korrutada või jagada.

Minu puhul on mul igal kasutajal meta, mis sisaldab allahindlusprotsenti; arv vahemikus 0 kuni 99. Saidi administraator saab määrata igale kasutajale allahindluse. Ma ei näita kasutaja metavälja lisamise koodi, kuna see ei pruugi olla teie jaoks ja seda on lihtne teha nt Advanced Custom Fields abil .

Oma klassis hoian klassi muutujat, mis konstruktoris seatakse kordajaks. Olenevalt sellest, kas kasutaja on sisse logitud, võtan kasutajalt salvestatud allahindluse ja koostan sellest kordaja. Vaikimisi peaks kordaja olema 1. Hind 1 = sama hind mis varem. Aga näiteks 10% allahindluse korral oleks kordaja 0,9. Hind 0,9 = hind soodushinnaga 10%.

Nüüd, kui mul on kasutusvalmis kordaja, on aeg uurida WooCommerce’i hindade tegelikku kohandamist.

3 samm: hinnafiltrid WooCommerce’is

WooCommerce’is on üks filter lihtsate, rühmitatud ja väliste tootetüüpide jaoks ning teine ​​muutuvate tootetüüpide jaoks. Soovitan lisada mõlemad filtrid, et katta kõik tootetüübid. Lisaks sellele töötab WooCommerce kolme täiendava hinnafiltriga:

  • Tavahinnad (woocommerce_product_get_regular_priceja woocommerce_product_variation_get_regular_price)
  • Müügihinnad (woocommerce_product_get_sale_priceja woocommerce_product_variation_get_sale_price)
  • Praegune aktiivne hind (woocommerce_product_get_priceja woocommerce_product_variation_get_price). Praegune aktiivne hind võetakse kas tavahinnast või müügihinnast.

Nüüd saate lihtsalt filtreerida hetke aktiivse hinna ja helistada sellele päevale, kuid see sõltub sellest, kuidas soovite oma veebipoes hindade kuvamist käsitleda. Pidage meeles, et vaikimisi müügil olevatel toodetel on läbikriipsutatud vana hind (tavahind) ja selle kõrval müügihind (aktiivne hind). Kui filtreerite ainult x_get_priceja toode on müügil, kuvatakse vana hind allahindluseta.

Seetõttu valin filtreerimiseks nii aktiivse hetkehinna (x_get_price) kui ka tavahinna (x_get_regular_price), sest ma ei taha oma veebipoe kasutajaid segadusse ajada.

Hinnafiltri kirjutamine

Kõik neli filtrit viitavad samale funktsioonile. Funktsiooni sees korrutame pakutud hinna lihtsalt klassi muutujaga. Pidage meeles, et kui allahindlust ei määrata, on kordaja 1, mille tulemusel hind ei muutu.

Pange tähele, et kõik filtrid pakuvad tooteobjekti teise parameetrina. Kui soovisite hindu vastavalt toodetele kohandada, saate selleks kohandada koodi.

Kui vaatate oma veebipoodi allahindlusega kasutajana sisse logides, peaksite nüüd nägema soodushindu! Siiski pole me veel päris valmis. WooCommerce tegi versioonis 2.4.7 (loe lähemalt siit) mõned muudatused, mis mõjutavad muutuvate toodete dünaamilist hinnakujundust.

Muutuvate tootehindade käsitlemine

Muutuvate toodete dünaamilise hinnakujunduse toimimiseks peaksite lisama ülaltoodud blogipostituses mainitud filtrid; woocommerce_variation_prices_price(ja vastav tavahinnafilter woocommerce_variation_prices_regular_price) ja filter woocommerce_get_variation_prices_hash. Räsifilter haldab WooCommerce’i sisemist vahemälu – ja me peame käskima WooCommerce’il see korralikult kustutada, kui muudame hindu koodi järgi.

Esimesed kaks hinnafiltrit järgivad sama protseduuri nagu adjustPrice(), kuid määran neile erineva funktsiooni, kuna parameetrid on erinevad. Mis puudutab räsifiltri funktsiooni, peame räsi massiivi lisama, et teha kindlaks, millal tuleks vahemälu tühjendada. Kasutaja ID lisamine on hea mõte, kuna kordaja on iga kasutaja jaoks kordumatu.

Lõpuks peaks see olema!

Pange tähele, et teil on juurdepääs kogu tooteobjektile kõigis filtrites (ka kahes viimases variandis). See on kasulik juhtudel, kui soovite kohandada hindu tooteteabe alusel; näiteks teatud toodete allahindlusest väljajätmine või tootekategooriate alusel allahindluse rakendamine. Teil peaks olema üsna lihtne koodi kohandada oma juhtumi jaoks vajalikuks.

Täielik lõplik kood

Nagu tavaliselt, loodan, et olete seda postitust samm-sammult järgides midagi õppinud, kuid ma annan kogu klassi viitamiseks:

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