A·R
EN SR

WordPress dodaci koji se ne lome

Namenski dodaci napravljeni sa pravom arhitekturom. Bezbedni, održivi i spremni za produkciju.

Započni projekat Pogledaj naš proces
Custom WordPress plugin development by Aleksandar Rasevic

Gotovi dodaci su rizik, ne rešenje

Direktorijum WordPress dodataka sadrži preko 60.000 dodataka, a značajan deo njih nije ažuriran već više od dve godine. Instaliranje generičkog dodatka znači da nasleđujete tuđ tehnički dug: sukobljene JavaScript biblioteke, natrpanu bazu podataka sa neiskorišćenim tabelama, bezbednosne propuste koji se nikad ne zakrpe, i forume podrške pune nerešenih problema. Kada autor napusti dodatak, ostajete da sami održavate forkovan kod ili u žurbi tražite zamenu. Custom dodatak od Aleksandra Raševića se razvija tačno po vašim specifikacijama, prati WordPress standarde kodiranja, i dolazi sa potpunom dokumentacijom i vlasništvom nad izvornim kodom.

Bez sukoba sa drugim dodacima

Klase u sopstvenom namespace-u, funkcije sa prefiksom i izolovane tabele u bazi znače da se naši dodaci nikad ne sudaraju sa vašom temom ili drugim dodacima.

Potpuno vlasništvo nad kodom

Vi posedujete 100% koda. Bez naknada za licencu, bez SaaS paketa, bez zavisnosti od jednog proizvođača. Hostujte ga gde god želite.

Bezbednosno provereno

Svaki dodatak prolazi bezbednosnu proveru: pripremljeni upiti, provera dozvola, nonce provera i sanitizacija svakog unosa i izlaza podataka.

Dodaci napravljeni za produkciju

Custom REST API endpoint-i

Razvijamo custom WordPress REST API endpoint-e pomoću register_rest_route(), sa pravilnom izolacijom namespace-a, proverom šeme preko WP_REST_Schema, i proverom dozvola vezanom za WordPress ovlašćenja. Endpoint-i podržavaju paginaciju, filtriranje i sortiranje po WordPress REST API konvencijama. Proveru zahteva implementiramo kroz args definicije šeme, keširanje odgovora pomoću WP_Object_Cache, i detaljne odgovore o greškama sa ispravnim HTTP statusnim kodovima. Svi endpoint-i su dokumentovani šemama kompatibilnim sa OpenAPI standardom i testirani preko PHPUnit-a sa simuliranim WP_REST_Server zahtevima.

Izrada admin kontrolnih tabli

Custom admin interfejsi napravljeni sa Gutenberg komponentama pokretanim na React-u ili Vue.js 3 ugrađenim preko wp_enqueue_script(). Koristimo WP_List_Table za tabele podataka koje se sortiraju, WP_Customize za podešavanja vezana za temu, i add_meta_box() za ekrane za uređivanje sadržaja. Stranice sa podešavanjima koriste WordPress Settings API sa register_setting(), add_settings_section(), i ispravnom nonce proverom. Admin obaveštenja, grupne akcije i izvoz u CSV format su standard. Izgled interfejsa prati stil WordPress admina preko wp-admin/css/colors integracije.

Integracije sa spoljnim API-jevima

WordPress povezujemo sa spoljnim servisima preko wp_remote_get() i wp_remote_post(), sa ugrađenom logikom ponovnih pokušaja, eksponencijalnim čekanjem za API-jeve sa ograničenjem broja zahteva, i privremenim keširanjem odgovora. Webhook handleri obrađuju dolazne zahteve uz proveru HMAC potpisa i proveru idempotencije. Napravili smo integracije sa Salesforce REST API-jem, HubSpot CRM-om, Stripe Billing-om, Mailchimp Marketing API-jem, Twilio SMS-om, Slack Webhook-ovima i posebnim internim API-jevima klijenata. OAuth 2.0 tokovi su implementirani preko WP_Http API-ja sa bezbednim čuvanjem tokena u šifrovanim opcijama.

Sistemi za zakazivanje i rezervacije

Custom dodaci za zakazivanje i rezervacije, napravljeni oko stvarnih pravila dostupnosti vašeg biznisa — termina, rasporeda osoblja/resursa i vremenskih razmaka — uz WP_Cron za podsetnike i WP_Background_Process za masovno slanje potvrda putem emaila ili SMS-a. Razvijamo sinhronizaciju sa kalendarima (Google Calendar, iCal), sprečavanje dupliranja termina zaključavanjem na nivou baze podataka, i admin kontrolne table za upravljanje terminima. Nastavak sesije, liste čekanja i zakazivanje za više lokacija su nativno podržani, ne dodati naknadno preko page-builder dodatka.

Članstvo i kontrola pristupa

Custom sistemi za članstvo sa kontrolom pristupa po ulogama preko WP_Roles i WP_User API-ja, ograničavanjem sadržaja preko template_redirect i the_content filtera, i upravljanjem pretplatama uz Stripe Billing integraciju. Implementiramo provere ovlašćenja preko current_user_can(), pravila vidljivosti za custom tipove sadržaja, postepeno otključavanje sadržaja preko WP_Cron, i beleženje aktivnosti u posebnim tabelama baze. Naši dodaci za članstvo su podneli 12.000+ istovremenih korisnika tokom prenosa uživo, bez ijednog pada u performansama.

Alati za uvoz i izvoz podataka

Razvijamo alate za masovnu obradu podataka pomoću WP_Background_Process, za uvoz 100.000+ zapisa bez prekida veze ili prekoračenja memorije. Tokovi uvoza podržavaju CSV, JSON, XML i Excel formate, sa interfejsom za mapiranje polja, pravilima provere i probnim pregledom pre stvarnog uvoza. Alati za izvoz generišu filtrirane izveštaje po periodu, sa custom kolonama, i automatskim slanjem putem emaila ili SFTP-a na zadati raspored. Implementiramo trake napretka preko AJAX proveravanja, mogućnost vraćanja na prethodno stanje kod neuspelog uvoza, i detaljno beleženje uz Monolog integraciju.

Automatizovani radni tokovi

Custom sistemi za automatizaciju napravljeni na WP_Cron-u sa pravim UNIX cron rezervnim rešenjem, Action Scheduler-om za pouzdanu obradu poslova u pozadini, i arhitekturom vođenom događajima preko WordPress action hook-ova. Razvijamo sisteme za obaveštenja sa uslovnom logikom, višestepene tokove odobravanja sa custom prelazima statusa sadržaja, i okidače integracije koji se aktiviraju pri objavi sadržaja, registraciji korisnika, slanju forme ili zakazivanju termina. Svi tokovi uključuju evidenciju izvršavanja, upozorenja o greškama, i mehanizme ponovnog pokušaja sa redovima za neuspele poruke radi lakšeg otklanjanja grešaka.

Migracija zastarelih dodataka

Prenosimo funkcionalnost iz napuštenih ili zastarelih dodataka u moderan, održiv kod. Proces uključuje analizu hook-ova i šeme baze podataka starog dodatka, mapiranje podataka u nove custom tabele ili tipove sadržaja preko dbDelta(), i reprodukovanje prikaza kroz moderne šablone. Rešavamo prevođenje shortcode-ova u blokove, čišćenje tabele opcija, i uklanjanje napuštenih podataka. Migracione skripte su idempotentne, uključuju mogućnost vraćanja na prethodno stanje, i testiraju se na staging kopijama pre postavljanja na produkciju. Dokumentacija pokriva svaku zamenjenu funkciju i hook za vaš razvojni tim.

Kako radimo

1

Analiza zahteva

Počinjemo od strukturiranog dokumenta zahteva koji vaš poslovni proces mapira na WordPress hook-ove i strukture podataka. Utvrđujemo koji WordPress API-jevi su relevantni: custom tipovi sadržaja, taksonomije, REST endpoint-i, cron rasporedi ili korisnički meta podaci. Analiziramo vaš postojeći skup dodataka radi mogućih sukoba i definišemo šemu baze podataka sa CREATE naredbama kompatibilnim sa dbDelta(). Rezultat: tehnička specifikacija sa dijagramom klasa, spiskom hook-ova, API ugovorom i šemom baze podataka.

2

Dizajn arhitekture

Arhitekturu dodatka dizajniramo po objektno-orijentisanim principima: PSR-4 autoloading preko Composer-a, klase u namespace-u koje prate Vendor\Plugin\ konvenciju, i singleton šablon za osnovne klase dodatka. Definišemo hook-ove za aktivaciju i deaktivaciju radi kreiranja i čišćenja tabela baze, planiramo integraciju sa Settings API-jem, i dizajniramo wireframe-ove admin interfejsa. Dokument arhitekture navodi svaki hook callback, prioritet filtera i proveru ovlašćenja pre nego što je napisana ijedna linija produkcionog koda.

3

Osnovni razvoj

Razvoj prati naše polazište za dodatke sa Composer autoloading-om, tipiziranim svojstvima i povratnim tipovima u PHP 8.2, i strogom proverom unosa na svakoj javno dostupnoj funkciji. Koristimo wpdb sa pripremljenim upitima za sve upite ka bazi, check_ajax_referer() za AJAX handlere, i current_user_can() na svakoj admin akciji. Admin interfejsi se grade React komponentama kompajliranim preko Webpack-a 5. Kod čuvamo na Git-u sa semantičkim verzionisanjem i postavljamo na staging preko CI/CD tokova.

4

Integraciono testiranje

Pišemo PHPUnit testove koristeći WordPress test suite sa WP_UnitTestCase osnovnim klasama, postižući preko 80% pokrivenosti poslovne logike testovima. Testovi pokrivaju cikluse aktivacije/deaktivacije, odgovore REST endpoint-a, CRUD operacije nad bazom, provere ovlašćenja, i granične slučajeve poput praznih unosa i neispravnih zahteva. Dodatak proveravamo na 10 najpopularnijih WordPress tema i 20 uobičajenih dodataka radi provere kompatibilnosti. Admin tokovi se testiraju automatizacijom pregledača od početka do kraja pomoću Codeception-a.

5

Bezbednosna revizija

Svaki dodatak prolazi bezbednosnu reviziju od 25 tačaka pre isporuke. Proveravamo zaštitu od SQL injekcija pripremljenim upitima, zaštitu od XSS napada preko esc_html(), esc_attr() i wp_kses_post() na svakom izlazu, CSRF zaštitu preko nonce provere na svakoj formi i AJAX handleru, i proveru ovlašćenja na svim admin endpoint-ima. Pokrećemo statičku analizu alatom PHPStan na nivou 8 i koristimo wp_nonce_field() proveru na svim POST zahtevima. Svako proširenje korisničkih ovlašćenja je izričito dokumentovano i obrazloženo.

6

Postavljanje i primopredaja

Dodaci se isporučuju kao ZIP fajlovi sa oznakom verzije, uz README.md, CHANGELOG.md, i PHPDoc komentare na svakoj klasi i metodi. Prvo instaliramo i aktiviramo na staging okruženju, proveravamo da li migracije baze prolaze bez greške, i pravimo video pregled admin ekrana. Dokument primopredaje pokriva filter i action hook-ove dostupne za prilagođavanje, šeme tabela baze podataka, reference API endpoint-a, i vodiče za rešavanje problema. Za složenije dodatke obezbeđujemo razvojno okruženje sa test podacima.

Tehnologije koje koristimo

PHP 8.2 WordPress REST API WP Cron Action Scheduler WP_List_Table WP_Customize Composer PHPUnit PHPStan React Webpack 5 WP-CLI Sistemi zakazivanja Stripe API OAuth 2.0 Codeception Monolog dbDelta
"WordPress dodatak koji je Aleksandar Rašević napravio za naš sajt za članove podnosi 12.000 istovremenih korisnika tokom prenosa uživo. Čist kod, prava arhitektura, nijedan pad sistema."
David Kim Osnivač, TeachStream Academy, Kalifornija

Često postavljana pitanja

Kako obezbeđujete bezbednost dodatka?

Bezbednost se ugrađuje od prve linije koda, ne dodaje naknadno. Koristimo pripremljene upite za sve upite ka bazi preko $wpdb->prepare(), proveravamo i čistimo sve unose pomoću sanitize_text_field(), absint() i wp_kses_post(), i bezbedno prikazujemo sav izlaz preko esc_html(), esc_attr() i esc_url(). Svako slanje forme i AJAX handler proveravaju nonce preko wp_verify_nonce(), a sve admin akcije proveravaju ovlašćenja preko current_user_can(). Pre isporuke, pokrećemo statičku analizu alatom PHPStan na nivou 8 i ručnu proveru koda prema bezbednosnim smernicama WordPress Plugin Review tima.

Da li će vaš dodatak raditi sa mojom postojećom temom?

Da. Dodatke razvijamo koristeći WordPress osnovne API-jeve i standardne hook-ove, što znači da rade sa svakom temom koja prati WordPress standarde kodiranja. Koristimo klase u namespace-u i nazive funkcija sa prefiksom kako bismo izbegli sukobe, učitavamo skripte i stilove samo na stranicama gde su zaista potrebni preko wp_enqueue_script() sa uslovnim proverama, i nikad ne menjamo fajlove teme. Tokom razvoja, proveravamo kompatibilnost sa popularnim temama uključujući Astra, GeneratePress, Kadence, i FSE temama zasnovanim na blokovima. Ako imate custom temu, njen kod pregledamo u fazi otkrivanja kako bismo utvrdili eventualne granične slučajeve.

Možete li da izmenite postojeći dodatak?

Radije ne menjamo osnovne fajlove dodataka trećih strana, jer se te izmene brišu pri sledećem ažuriranju. Umesto toga, funkcionalnost proširujemo preko WordPress hook-ova: add_action() i add_filter() nam omogućavaju da menjamo ponašanje bez diranja originalnog koda. Ako dodatak ne izlaže hook-ove koji su vam potrebni, možemo napraviti prateći dodatak koji komunicira sa njegovim tabelama baze ili API-jem. Za napuštene dodatke bez aktivnog održavaoca, nudimo uslugu potpune izrade iznova, koja replicira funkcionalnost u modernom, održivom kodu sa potpunom dokumentacijom.

Da li obezbeđujete dokumentaciju za dodatak?

Svaki dodatak dolazi sa tri nivoa dokumentacije. Prvo, PHPDoc komentari na svakoj klasi, metodi i hook callback-u, kako bi se vaši programeri lakše snašli u kodu uz automatsko dopunjavanje u IDE-u. Drugo, README.md fajl koji pokriva instalaciju, podešavanje, dostupne filtere i akcije, i šemu baze podataka. Treće, vodič za korisnike sa snimcima ekrana admin panela, referencama shortcode-ova ako postoje, i najčešćim pitanjima za rešavanje problema. Za složenije dodatke snimamo video pregled koji pokazuje kako se koristi svaka funkcionalnost. Sva dokumentacija je napisana u Markdown formatu i čuva se u repozitorijumu vašeg projekta.

Šta je sa ažuriranjima i održavanjem?

Custom dodacima nisu potrebna ažuriranja zbog gomilanja nepotrebnih funkcija, jer rade tačno ono što vam treba i ništa više. Ipak, obezbeđujemo pokrivenost održavanja za kompatibilnost sa WordPress jezgrom: kada izađe nova verzija WordPress-a, testiramo vaš dodatak u odnosu na nju u staging okruženju i primenjujemo potrebna prilagođavanja. Ispravke grešaka su pokrivene 30 dana posle isporuke. Za dugoročnu sigurnost, naš plan održavanja uključuje: mesečno bezbednosno skeniranje, kvartalne testove kompatibilnosti sa WordPress-om, prioritetnu podršku sa odgovorom u roku od 24 časa, i do 4 sata unapređenja funkcionalnosti mesečno. Sva ažuriranja se isporučuju kroz izdanja sa oznakom verzije i detaljnim spiskom izmena.