Trumpas atsakymas: svetainės custom kodas reikalingas tada, kai rinkoje nėra papildinio, darančio būtent tai, ko reikia, arba kai gatavas sprendimas atsineša dešimt nereikalingų funkcijų, metinę licenciją ir sulėtėjusią svetainę. Visais kitais atvejais protingiau naudoti brandų papildinį. Šiame straipsnyje surašiau, kaip pats sprendžiu tarp šių dviejų variantų ir kiek kiekvienas jų realiai kainuoja.
Trys būdai pridėti funkciją WordPress svetainėje
Prieš kalbant apie kainą, verta suprasti, kad variantų yra ne du, o trys.
- Gatavas papildinys iš katalogo. Greičiausias kelias. Įdiegiate, sukonfigūruojate, veikia. Kaina — nuo 0 € iki maždaug 200 € per metus už licenciją.
- Kodo fragmentas. Kelios dešimtys eilučių vaikinėje temoje arba per Code Snippets papildinį. Tinka nedideliems pakeitimams: paslėpti lauką atsiskaitymo lange, pakeisti mygtuko tekstą, pridėti sąlygą.
- Savas įskiepis. Atskiras failų rinkinys, kuris daro vieną darbą ir yra jūsų nuosavybė. Tinka viskam, kas didesnio už fragmentą.
Klaida, kurią matau dažniausiai — visi pakeitimai suverčiami į temos functions.php. Po temos atnaujinimo jie dingsta, o svetainė nustoja veikti taip, kaip veikė vakar.
Kada užtenka papildinio
Papildinys yra teisingas pasirinkimas, kai poreikis standartinis ir jį turi tūkstančiai kitų svetainių. Konkretūs pavyzdžiai iš lietuviškų projektų:
- Kontaktų forma su priedais — Contact Form 7, WPForms, Fluent Forms.
- Slapukų sutikimo juosta su Consent Mode — Complianz, CookieYes.
- Paštomatų pasirinkimas atsiskaitymo lange — Omniva, LP Express ir DPD papildiniai.
- SEO meta duomenys — Rank Math arba Yoast.
- Atsarginės kopijos — UpdraftPlus.
Čia rašyti savo kodą būtų brangu ir beprasmiška: gatavas sprendimas nuolat atnaujinamas, testuojamas tūkstančiuose aplinkų ir turi palaikymą.
Kada svetainės custom kodas atsiperka
Yra keturios situacijos, kuriose kodas beveik visada laimi.
1. Integracija su lietuviška sistema
Rivilė, Finvalda, B1, sandėlio programos, tiekėjų XML katalogai — universalių papildinių šioms sistemoms tiesiog nėra arba jie apleisti. Užsakymų perdavimas į buhalteriją, likučių sinchronizavimas ar sąskaitų generavimas rašomas individualiai. Tokie darbai prasideda nuo 600 €, bet pakeičia kelias valandas rankinio darbo kas savaitę.
2. Sava kainodaros logika
B2B kainos pagal klientų grupes, nuolaidos pagal kiekį ir kategoriją kartu, kaina pagal matmenis ar svorį. Papildiniai tokius dalykus daro, bet dažniausiai per sudėtingus nustatymų medžius, kuriuos vėliau bijoma liesti. Dešimt eilučių kodo su aiškia taisykle yra suprantamesnės ir greitesnės.
3. Licencijos kaina viršija darbo kainą
Jei už vieną reikalingą funkciją mokate 180 € per metus, per trejus metus tai 540 €. Individuali funkcija kainuoja nuo 300 € vieną kartą ir lieka jūsų. Skaičiavimas paprastas, tik retai kas jį atlieka.
4. Papildinys daro dešimt dalykų, o reikia vieno
Universalūs papildiniai krauna savo CSS ir JavaScript visuose puslapiuose, net ten, kur jų funkcija nenaudojama. Penki tokie papildiniai — ir Core Web Vitals rodikliai nukrenta. Apie tai, kaip tai atrodo praktiškai, rašiau WordPress įskiepių kūrimo e-komercijai straipsnyje.
Kaip nuspręsti: paprasta lentelė
| Situacija | Sprendimas | Orientacinė kaina |
|---|---|---|
| Standartinis poreikis, yra brandus papildinys | Papildinys | 0–200 €/metus |
| Nedidelis pakeitimas esamoje funkcijoje | Kodo fragmentas vaikinėje temoje | 40 €/val, dažniausiai 1–2 val. |
| Viena aiški funkcija, kurios rinkoje nėra | Savas įskiepis | nuo 300 € |
| Duomenų mainai su išorine sistema | Individuali integracija | nuo 600 € |
| Sudėtinga verslo logika, B2B, daugiapakopė sistema | Pagal techninę specifikaciją | pagal sąmatą |
Ką turi atitikti geras custom kodas
Nesvarbu, kas jį rašo — yra kelios sąlygos, kurių verta reikalauti.
- Naudojami oficialūs kabliukai. WordPress ir WooCommerce turi dokumentuotas action ir filter sąsajas. Kodas, kuris keičia branduolio failus, po pirmo atnaujinimo tampa problema.
- Atskiras įskiepis, ne temos failas. Tada pakeitus dizainą funkcijos lieka.
- Klaidų apdorojimas. Jei tiekėjo API neatsako, svetainė neturi rodyti baltos klaidos ekrano.
- Veiksmų žurnalas integracijoms. Be jo neįmanoma sužinoti, kodėl vakar neperdavė trijų užsakymų.
- Komentarai ir dokumentacija. Kodą turi suprasti ir kitas programuotojas, ne tik autorius.
Dažniausios klaidos, kurias tenka taisyti
Iš praktikos — pasikartojantys atvejai, kai kodas rašytas skubant: pakeitimai tiesiai temos faile, kurie dingsta po atnaujinimo; užklausos į duomenų bazę kiekvieno puslapio įkėlimo metu be kešavimo; pakeitimai, atlikti tiesiogiai gyvoje svetainėje be testinės aplinkos; kodas be jokių komentarų, kurio autorius nebepasiekiamas. Kiekvienas iš jų sprendžiamas, bet perrašyti dažnai pigiau nei taisyti.
Kaip galiu padėti
Rašau individualius WordPress ir WooCommerce įskiepius: nedidelė aiškiai apibrėžta funkcija — nuo 300 €, integracija su išorine sistema — nuo 600 €, esamo kodo taisymas ar plėtra — 40 €/val. Techninis vertinimas kainuoja 0 €: peržiūriu poreikį ir atvirai pasakau, ar verta rašyti kodą, ar užteks esamo papildinio. Detalus apimčių aprašymas — custom įskiepių kūrimo puslapyje, o jei reikia nuolatinės techninės priežiūros, žiūrėkite priežiūros planus.
Dažniausiai užduodami klausimai
Kur WordPress svetainėje dėti custom kodą?
Ne į temos functions.php failą — po atnaujinimo jis bus perrašytas. Saugios vietos yra trys: vaikinė tema (child theme), nedidelis savas įskiepis arba kodo fragmentų papildinys, pavyzdžiui, Code Snippets. Didesnėms funkcijoms visada renkuosi atskirą įskiepį.
Ar custom kodas sulėtins svetainę?
Teisingai parašytas — priešingai. Dažnai jis pakeičia sunkų universalų papildinį, kuris kraunasi visuose puslapiuose. Lėtinimas atsiranda tada, kai kodas kviečia duomenų bazę kiekvieno puslapio įkėlimo metu be kešavimo.
Kas nutinka custom kodui po WordPress atnaujinimo?
Jei naudojami oficialūs kabliukai (hooks) ir API, kodas atnaujinimus atlaiko. Problemos kyla tada, kai kodas keičia branduolio ar papildinio failus tiesiogiai arba remiasi nedokumentuotomis funkcijomis.
Kiek kainuoja nedidelė individuali funkcija?
Mano įkainis nedidelei aiškiai apibrėžtai funkcijai — nuo 300 €. Integracija su išorine sistema, pavyzdžiui, buhalterine programa ar tiekėjo API — nuo 600 €. Esamo kodo taisymas skaičiuojamas valandomis, 40 €/val.
Ar galiu kodą perduoti kitam programuotojui?
Taip, ir tai vienas iš argumentų rinktis savą kodą, o ne uždarą licencinį sprendimą. Kodas priklauso užsakovui, todėl jį galima skaityti, keisti ir perduoti bet kam.
Ar visada geriau savas kodas nei papildinys?
Ne. Jei rinkoje yra brandus, palaikomas papildinys, kuris daro būtent tai, ko reikia, jį naudoti pigiau ir saugiau. Savas kodas prasmingas ten, kur gatavo sprendimo nėra arba jis atneša daug nereikalingo svorio.