Kami menyediakan layanan Jasa Pembuatan Plugin WordPress custom yang dirancang sesuai kebutuhan untuk memenuhi tujuan website Anda, baik itu menambah fitur tertentu, integrasi sistem pihak ketiga, automasi proses bisnis, maupun penyesuaian fungsi internal.
Dengan pendekatan yang fleksibel, aman, dan sesuai standar WordPress, kami berusaha plugin yang dibuat tidak hanya fungsional tetapi juga efisien dan mudah dipelihara.
Penjelasan…
Plugin WordPress adalah perangkat lunak tambahan (add-on) yang dipasang ke dalam website WordPress untuk menambahkan atau mengubah fitur dan fungsionalitasnya, tanpa perlu mengubah kode inti WordPress.
Ibaratnya seperti aplikasi di smartphone, plugin memungkinkan Anda menyesuaikan website sesuai kebutuhan, seperti:
- Menambahkan form kontak,
- Membuat toko online (dengan WooCommerce),
- Mengoptimalkan SEO,
- Menghubungkan ke sistem pihak ketiga (seperti API pembayaran),
- Atau bahkan membuat sistem login khusus.
Plugin bisa gratis, berbayar, atau dibuat khusus (custom plugin) untuk kebutuhan tertentu. WordPress sendiri memiliki ribuan plugin yang tersedia di direktori resminya, tapi banyak bisnis atau pemilik website memilih plugin kustom agar fungsi yang dibuat benar-benar sesuai dengan sistem dan tujuan mereka.
Yang perlu kita ketahui Tentang Plugin WordPress.
Berikut beberapa materi yang perlu kita bahas:
1. Struktur Folder Plugin.
Struktur folder plugin adalah cara Anda mengorganisasi file dan kode dalam plugin WordPress agar:
- Lebih rapi dan mudah dikelola.
- Lebih mudah dikembangkan.
- Sesuai dengan standar WordPress.
- Siap dipublikasikan atau dibagikan.
Secara umum, plugin WordPress terdiri dari:
- File utama (file PHP dengan header plugin).
- Folder terpisah untuk script (JS), style (CSS), dan file pendukung (helper, template, dll).
Contoh Struktur Folder Plugin
lummatun/
├── lummatun.php
├── readme.txt
├── includes/
│ └── functions.php
├── assets/
│ ├── css/
│ │ └── style.css
│ └── js/
│ └── script.js
├── languages/
│ └── lummatun.pot
Penjelasan Tiap Bagian:
| Folder/File | Fungsi |
|---|---|
lummatun/ | Nama folder plugin Anda (harus unik). Biasanya sama dengan nama plugin. |
lummatun.php | File utama plugin. Memuat header plugin dan kode awal. |
readme.txt | File dokumentasi. Penting jika kamu ingin mengunggah plugin ke WordPress.org. |
includes/ | Berisi file PHP tambahan (misalnya fungsi helper, logika admin, dll). |
assets/css/ | File CSS yang digunakan untuk styling plugin. |
assets/js/ | File JavaScript yang digunakan oleh plugin. |
languages/ | File bahasa/penerjemahan agar plugin mendukung multi-bahasa. |
Contoh Isi File lummatun.php (File Utama Plugin)
<?php
/*
Plugin Name: Lummatun
Plugin URI: https://lummatun.com/
Description: Plugin sederhana untuk menunjukkan struktur plugin WordPress.
Version: 1.0
Author: Kang Mursi
Author URI: https://lummatun.com
Text Domain: lummatun
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Keamanan: blokir akses langsung
}
// Contoh fungsi sederhana
function lummatun_hello_world() {
echo "<p style='padding:10px; background:#f0f0f0;'>Halo dari Plugin Lummatun!</p>";
}
add_action('wp_footer', 'lummatun_hello_world');
// Termasuk file fungsi tambahan
require_once plugin_dir_path(__FILE__) . 'includes/functions.php';
Itulah penjelasan singkat tentang Folder Plugin.
2. Hook Plugin.
Hook adalah mekanisme di WordPress yang memungkinkan Anda untuk “menyisipkan” atau “menghubungkan” fungsi khusus ke dalam sistem WordPress tanpa harus mengubah kode core WordPress.
Ada dua jenis utama:
| Jenis Hook | Fungsi |
|---|---|
Action | Untuk menjalankan fungsi pada titik tertentu, misalnya saat posting disimpan atau halaman dimuat. |
Filter | Untuk memodifikasi data sebelum ditampilkan atau disimpan, seperti memodifikasi judul posting atau isi konten. |
Contoh Penggunaan Hook dengan Nama “Lummatun”
1. Contoh Action Hook: Menambahkan Pesan di Footer
add_action('wp_footer', 'lummatun_footer_message');
function lummatun_footer_message() {
echo '<p style="text-align:center;">Plugin by Lummatun</p>';
}
Penjelasan:
wp_footeradalah hook bawaan WordPress.- Fungsi
lummatun_footer_messageakan dipanggil saat WordPress menampilkan bagian footer halaman.
2. Contoh Filter Hook: Memodifikasi Judul Posting
add_filter('the_title', 'lummatun_modify_title');
function lummatun_modify_title($title) {
return 'Lummatun: ' . $title;
}
Penjelasan:
the_titleadalah filter bawaan WordPress yang menangani judul posting.- Fungsi
lummatun_modify_titleakan menambahkan teks “Lummatun: ” di awal semua judul posting.
3. Contoh Membuat Custom Hook Sendiri
Kamu juga bisa membuat hook sendiri di plugin atau tema kamu:
// Buat custom action hook
do_action('lummatun_custom_action');
// Atur fungsi yang akan merespons hook tersebut
add_action('lummatun_custom_action', 'lummatun_handle_custom_action');
function lummatun_handle_custom_action() {
echo "Ini hook kustom buatan Lummatun!";
}
Penjelasan:
do_action('lummatun_custom_action')membuat titik hook.add_action()menentukan fungsi yang dijalankan saat hook itu dipanggil.
Kesimpulan Singkat
| Istilah | Penjelasan |
|---|---|
add_action | Menambahkan aksi ketika hook dijalankan |
add_filter | Menambahkan fungsi yang memodifikasi data |
do_action | Menjalankan custom action hook |
apply_filters | Menjalankan custom filter hook |
3. Keamanan Plugin.
Keamanan plugin merujuk pada serangkaian praktik pengkodean dan perlindungan yang bertujuan untuk mencegah plugin menyebabkan atau membuka celah terhadap serangan siber seperti:
- SQL Injection
- Cross-Site Scripting (XSS)
- Cross-Site Request Forgery (CSRF)
- Privilege Escalation (peningkatan hak akses)
- Code Injection
Tujuan utama dari keamanan plugin adalah melindungi situs WordPress pengguna dari kerusakan, penyalahgunaan data, atau akses tidak sah.
Kenapa Keamanan Plugin Penting?
- Plugin adalah pintu masuk ke sistem WordPress.
- Plugin yang tidak aman bisa menjadi “lubang” bagi hacker.
- Plugin berjalan dengan hak akses penuh WordPress.
- Jika disusupi, bisa mengambil alih seluruh situs.
- Bisa berdampak pada reputasi developer.
- Jika plugin bermasalah, pengguna akan kehilangan kepercayaan.
Prinsip Dasar Keamanan Plugin WordPress
1. Sanitasi, Validasi, dan Escaping Data
✅ Validasi
Pastikan input memiliki nilai yang diharapkan.
$age = isset($_POST['age']) ? intval($_POST['age']) : 0;
✅ Sanitasi
Hilangkan karakter yang berbahaya dari input pengguna.
$name = sanitize_text_field($_POST['name']);
✅ Escaping
Lindungi data saat ditampilkan di browser untuk mencegah XSS.
echo esc_html($user_input);
2. Gunakan Nonce (Number used once)
Untuk mencegah CSRF (Cross-Site Request Forgery).
Menambahkan nonce ke form:
wp_nonce_field('my_action', 'my_nonce');
Verifikasi nonce saat submit:
if (!isset($_POST['my_nonce']) || !wp_verify_nonce($_POST['my_nonce'], 'my_action')) {
die('Akses tidak sah.');
}
3. Cek Hak Akses Pengguna
Sebelum melakukan tindakan, pastikan user memiliki izin:
if (!current_user_can('manage_options')) {
wp_die('Kamu tidak memiliki izin untuk melakukan ini.');
}
4. Lindungi File Plugin
Cegah akses langsung ke file PHP:
if (!defined('ABSPATH')) {
exit; // Keluar jika akses langsung
}
5. Gunakan Kueri Database yang Aman
Hindari membuat query SQL mentah dengan input user. Gunakan $wpdb->prepare():
global $wpdb;
$user_id = 5;
$wpdb->get_results($wpdb->prepare("SELECT * FROM wp_users WHERE ID = %d", $user_id));
6. Minimalkan Akses File
Jangan biarkan pengguna mengunggah file sembarangan tanpa filter:
$allowed_types = ['image/jpeg', 'image/png'];
if (!in_array($_FILES['upload']['type'], $allowed_types)) {
wp_die('Tipe file tidak diperbolehkan.');
}
4. Internasionalisasi (i18n).
Internasionalisasi (internationalization dalam bahasa Inggris) adalah proses mempersiapkan perangkat lunak agar dapat diterjemahkan ke berbagai bahasa dan budaya lokal tanpa perlu mengubah kode sumber secara besar-besaran.
Kenapa Disebut i18n?
“I18n” adalah bentuk singkatan dari kata internationalization, dengan perhitungan sebagai berikut:
- Huruf pertama: “i”
- Huruf terakhir: “n”
- Terdapat 18 huruf di antara keduanya
Sehingga disingkat menjadi: i18n
Tujuan i18n dalam WordPress
WordPress digunakan oleh jutaan pengguna di seluruh dunia. Oleh karena itu, penting bagi plugin dan tema untuk mendukung multi-bahasa.
Internasionalisasi memungkinkan:
- Plugin atau tema dapat diterjemahkan ke bahasa lain tanpa mengubah kode inti
- Pengguna di berbagai negara merasa nyaman dengan antarmuka yang berbahasa lokal
️ Cara Kerja i18n di WordPress
WordPress menyediakan fungsi-fungsi khusus untuk mendukung i18n, antara lain:
| Fungsi | Kegunaan |
|---|---|
__() | Mengembalikan string terjemahan |
_e() | Menampilkan string terjemahan secara langsung |
_x() | Memberikan konteks untuk string yang ambigu |
esc_html__() | Versi aman untuk HTML |
esc_attr__() | Versi aman untuk atribut HTML |
Contoh penggunaan:
echo __('Halo Dunia', 'nama-plugin'); // Mengembalikan string terjemahan
_e('Selamat datang!', 'nama-plugin'); // Menampilkan langsung
'nama-plugin'adalah text domain, yang berfungsi sebagai identitas terjemahan plugin Anda.
File Terjemahan
Untuk mendukung penerjemahan, diperlukan file berikut:
.pot→ File template berisi string asli.po→ File terjemahan dalam format teks.mo→ File hasil kompilasi dari.po, dibaca oleh WordPress
Kita dapat membuat atau mengelola file ini menggunakan:
- Poedit
- WP-CLI (
wp i18n make-pot)
Contoh Sederhana
function sapaan_pengguna() {
$pesan = __('Halo, pengguna!', 'nama-plugin');
echo "<p>$pesan</p>";
}
Jika diterjemahkan ke bahasa Inggris, misalnya:
"Halo, pengguna!" => "Hello, user!"
Maka yang tampil di situs WordPress berbahasa Inggris adalah: “Hello, user!”
Perbedaan dengan “Lokalizasi” (L10n)
- i18n (Internasionalisasi) = Proses menyiapkan kode agar dapat diterjemahkan
- l10n (Lokalizasi) = Proses menerjemahkan string ke bahasa tertentu
Contoh:
Internasionalisasi = Anda menulis kode dengan fungsi
__()
Lokalizasi = Anda membuat file.poberbahasa Indonesia
5. Performance dan Kode Bersih.
⚡ 1. Performance (Kinerja Plugin)
Performance mengacu pada seberapa efisien plugin Anda berjalan, tanpa membuat situs WordPress menjadi lambat atau berat untuk diakses.
Mengapa Performance Penting?
- Pengunjung tidak menyukai situs yang lambat.
- Google mempertimbangkan kecepatan situs dalam peringkat pencarian.
- Hosting bisa terbebani jika plugin menggunakan terlalu banyak resource (RAM, CPU, atau query database).
Tips Menjaga Performance:
✅ Jalankan Kode Hanya Saat Dibutuhkan
Misalnya, jika fungsi tertentu hanya dibutuhkan di halaman admin:
if (is_admin()) {
add_action('admin_menu', 'lummatun_admin_menu');
}
✅ Load Script dan CSS Secara Selektif
Jangan memuat file CSS atau JavaScript di seluruh halaman situs.
Kurang baik (membebani semua halaman):
add_action('wp_enqueue_scripts', 'lummatun_load_assets');
Lebih baik (hanya di halaman yang memerlukan):
function lummatun_load_assets() {
if (is_page('kontak')) {
wp_enqueue_script('lummatun-script', plugin_dir_url(__FILE__) . 'assets/js/script.js');
}
}
add_action('wp_enqueue_scripts', 'lummatun_load_assets');
✅ Gunakan Caching Jika Perlu
Jika plugin Anda melakukan query database yang berat, simpan hasilnya dalam cache sementara:
$data = get_transient('lummatun_cached_data');
if (false === $data) {
$data = lummatun_query_berat(); // Fungsi berat
set_transient('lummatun_cached_data', $data, HOUR_IN_SECONDS);
}
2. Kode Bersih (Clean Code)
Kode bersih berarti kode yang mudah dibaca, dipahami, dan dirawat — baik oleh Anda sendiri di masa depan, maupun oleh orang lain.
Ciri-Ciri Kode Bersih:
- Nama variabel dan fungsi deskriptif.
- Penulisan kode rapi dan konsisten (indentasi, spasi, komentar).
- Tidak ada kode duplikat.
- Struktur file terorganisir.
Tips Menulis Kode Bersih:
✅ Gunakan Nama yang Jelas dan Bermakna
// Tidak jelas
function x1($a) {}
// Lebih baik
function lummatun_hitung_total_harga($daftar_produk) {}
✅ Pisahkan Kode Berdasarkan Fungsi
Contoh struktur direktori plugin:
lummatun-plugin/
├── lummatun-plugin.php
├── includes/
│ ├── admin-page.php
│ ├── frontend.php
│ └── helper-functions.php
✅ Ikuti Standar Penulisan WordPress
Gunakan indentasi 4 spasi, penamaan snake_case, dan pemisah logis:
if ( $user_id && current_user_can( 'edit_posts' ) ) {
// Lakukan aksi khusus
}
✅ Gunakan Komentar yang Relevan
Komentar digunakan untuk menjelaskan mengapa suatu logika dibuat, bukan apa yang sudah jelas dari kode.
✨ Kesimpulan
| Aspek | Tujuan |
|---|---|
| Performance | Plugin berjalan efisien, tidak membebani situs |
| Kode Bersih | Mudah dibaca, dipelihara, dan dikembangkan |
6. Mengikuti Coding Standard WordPress.
Coding Standard WordPress adalah kumpulan pedoman penulisan kode yang ditetapkan oleh tim pengembang inti WordPress. Tujuannya adalah untuk memastikan bahwa semua kode PHP, JavaScript, HTML, dan CSS yang digunakan dalam proyek WordPress (termasuk plugin dan tema) konsisten, mudah dibaca, mudah dipelihara, serta mengikuti praktik terbaik pengembangan perangkat lunak.
Mengapa Coding Standard Penting untuk Diterapkan?
- ✅ Konsistensi Kode
Membuat kode lebih rapi dan mudah dipahami oleh pengembang lain (dan oleh Anda sendiri di masa mendatang). - ✅ Kesesuaian dengan Ekosistem WordPress
Menjamin bahwa plugin atau tema yang Anda buat dapat terintegrasi dengan baik dalam lingkungan WordPress. - ✅ Kemudahan Kolaborasi
Jika Anda bekerja dalam tim atau dalam proyek open source, standar ini mempermudah kerja sama dalam pengelolaan kode. - ✅ Mengurangi Risiko Bug dan Masalah Keamanan
Beberapa aturan dirancang untuk membantu mencegah kesalahan umum dan celah keamanan.
Jenis Coding Standard WordPress
Berikut adalah jenis standar yang berlaku sesuai bahasa pemrograman:
| Bahasa | Panduan Resmi |
|---|---|
| PHP | WordPress PHP Coding Standards |
| JavaScript | JavaScript Standards |
| HTML/CSS | HTML/CSS Standards |
| SQL | SQL Standards |
Contoh Penulisan Kode
❌ Tidak sesuai standar:
function DoSomething(){
echo "Halo Dunia";
}
✅ Sesuai standar WordPress:
function do_something() {
echo 'Halo Dunia';
}
Penyesuaian yang dilakukan:
- Nama fungsi menggunakan huruf kecil dengan underscore (
snake_case) - Menggunakan indentasi 4 spasi
- Menggunakan tanda kutip tunggal
'bila tidak perlu interpolasi variabel
️ Cara Menerapkan Coding Standard WordPress
1. Menggunakan PHP_CodeSniffer (PHPCS)
PHPCS adalah alat untuk memindai dan menilai apakah kode Anda sesuai dengan standar WordPress.
Langkah instalasi:
composer global require "squizlabs/php_codesniffer=*"
composer global require wp-coding-standards/wpcs
Konfigurasi:
phpcs --config-set installed_paths ~/.composer/vendor/wp-coding-standards/wpcs
phpcs -i
Cek file:
phpcs --standard=WordPress my-plugin.php
2. Menggunakan Editor Kode dengan Plugin Linter
Editor seperti Visual Studio Code dan PHPStorm mendukung plugin untuk membantu menerapkan standar, contohnya:
- PHP Intelephense
- PHP CS Fixer
- PHPCS
Rangkuman
- Coding Standard WordPress adalah pedoman penulisan kode yang rapi, konsisten, dan profesional.
- Menerapkannya membantu menjaga kualitas kode, keamanan, dan kemudahan kerja tim.
- Anda dapat menggunakan alat bantu seperti PHPCS dan plugin editor untuk memeriksa kode secara otomatis.
7. Update & Kompatibilitas.
“Update & Kompatibilitas” merujuk pada kemampuan plugin untuk tetap berjalan dengan baik meskipun terjadi perubahan pada:
- Versi inti WordPress
- Versi PHP
- Tema atau plugin lain yang digunakan bersama
Tujuannya adalah agar plugin tetap stabil, aman, dan tidak menimbulkan konflik saat sistem diperbarui.
Hal-hal yang Perlu Diperhatikan
1. ✅ Menentukan Versi WordPress dan PHP yang Didukung
Dalam file utama plugin, sertakan informasi berikut:
/*
Requires at least: 5.0
Tested up to: 6.5
Requires PHP: 7.4
*/
Ini menunjukkan bahwa plugin:
- Membutuhkan WordPress versi minimal 5.0
- Telah diuji hingga WordPress versi 6.5
- Memerlukan PHP versi minimal 7.4
2. Melakukan Pembaruan Secara Berkala
Setiap kali WordPress merilis versi baru:
- Lakukan pengujian terhadap plugin Anda
- Jika plugin tetap berjalan dengan baik, perbarui informasi versi dan catatan perubahan (changelog)
Contoh pembaruan versi di header plugin:
/*
Version: 1.1.0
*/
3. Menguji Kompatibilitas dengan WordPress dan PHP
Gunakan lingkungan pengujian lokal seperti Local WP, DevKinsta, atau WP-CLI untuk menguji plugin Anda pada berbagai versi PHP dan WordPress.
Pastikan tidak menggunakan fungsi PHP yang sudah usang (deprecated).
Contoh yang sebaiknya dihindari di PHP 8.1+:
$something = each($array); // Sudah deprecated
4. Mengandalkan Fungsi API Resmi WordPress
Gunakan fungsi bawaan WordPress untuk menjaga kompatibilitas jangka panjang.
Contoh:
- Gunakan
wp_enqueue_script()alih-alih menyisipkan tag<script>secara langsung - Gunakan
get_option()daripada menulis query database mentah
5. ⚠️ Menghindari Konflik dengan Plugin atau Tema Lain
- Lakukan pengujian bersama plugin dan tema populer
- Gunakan prefix unik pada nama fungsi agar tidak bertabrakan dengan plugin lain
Contoh:
// Hindari penamaan umum seperti ini
function load_settings() {...}
// Gunakan nama fungsi unik seperti ini
function myplugin_load_settings() {...}
Kesimpulan
Update & Kompatibilitas adalah proses penting untuk:
- Menjaga plugin agar tetap berjalan di versi terbaru WordPress
- Menghindari penggunaan kode yang sudah usang
- Melakukan pengujian lintas versi PHP dan WordPress
- Melakukan pembaruan berkala dan dokumentasi versi
8. Dokumentasi Plugin.
Dokumentasi plugin adalah kumpulan informasi tertulis yang menjelaskan cara menginstal, menggunakan, mengonfigurasi, dan mengembangkan plugin WordPress Anda.
Dokumentasi sangat penting untuk:
- Pengguna (agar tahu cara penggunaan plugin)
- Developer lain (agar memahami cara kontribusi atau memodifikasi plugin)
- Reviewer WordPress.org (jika Anda ingin mempublikasikan plugin di repositori resmi)
Jenis Dokumentasi yang Umum Ada
1. readme.txt
File ini wajib ada jika Anda ingin merilis plugin ke WordPress.org. Isinya meliputi:
- Nama dan deskripsi plugin
- Versi dan informasi penulis
- Cara instalasi
- Catatan perubahan (changelog)
- Frequently Asked Questions (FAQ)
- Lisensi
Contoh isi minimal readme.txt:
=== My Custom Plugin ===
Contributors: namaanda
Tags: shortcode, custom post, widget
Requires at least: 5.0
Tested up to: 6.5
Stable tag: 1.0
License: GPLv2 or later
== Description ==
Plugin ini menambahkan fitur X ke dalam WordPress.
== Installation ==
1. Upload folder plugin ke `/wp-content/plugins/`
2. Aktifkan melalui menu 'Plugins' di WordPress
== Changelog ==
= 1.0 =
* Rilis pertama
== Frequently Asked Questions ==
= Apakah plugin ini gratis? =
Ya.
2. Dokumentasi Pengguna (User Guide)
Dokumentasi ini bisa berupa halaman HTML, file PDF, atau wiki online. Isinya meliputi:
- Panduan instalasi dan aktivasi plugin
- Cara mengatur dan menggunakan plugin
- Contoh penggunaan (misalnya cara menggunakan shortcode atau widget)
3. Dokumentasi Pengembang (Developer Docs)
Jika plugin Anda menyediakan API, hook, atau dapat dikembangkan lebih lanjut, sertakan:
- Daftar fungsi beserta cara penggunaannya
- Hook (action & filter) yang tersedia
- Struktur file dan folder plugin
- Cara memperluas plugin (misalnya dengan child plugin)
4. ✏️ Komentar di Kode (Inline Comments)
Sertakan komentar pada kode PHP atau JavaScript plugin Anda, misalnya:
// Fungsi untuk menambahkan shortcode [my_shortcode]
function my_custom_shortcode() {
return '<p>Hello from shortcode!</p>';
}
add_shortcode('my_shortcode', 'my_custom_shortcode');
✅ Manfaat Dokumentasi
- Pengguna lebih mudah memahami dan menggunakan plugin Anda
- Developer lain dapat membantu kontribusi atau melakukan debugging
- Meningkatkan kepercayaan terhadap plugin Anda
- Merupakan syarat agar plugin dapat diterima di direktori resmi WordPress
Syarat dan Ketentuan.
Berikut beberapa syarat dan ketentuan jika Anda memesan jasa pembuatan plugin wordpress custom yang sesuai dengan kebutuhan:
- Kami tidak menerima plugin yang tujuannya untuk menipu, atau merugikan pengunjung website.
- Harga standar ini bisa berubah, karena kami menghitung dari tingkat kesulitan membuat plugin.
- Ada dua lisensi, yaitu Lisensi Standar, dan Lisensi Profesional.
Penjelasan Lisensi.
Lisensi standar, berarti plugin yang sudah dibuat boleh digunakan orang lain.
Lisensi profesional, plugin yang sudah dibuat berarti khusus untuk Anda. Kami tidak punya hak untuk membagikannya ke orang lain.
Cukup sekian, dan silahkan hubungi Kang Mursi melalui halaman kontak.
Terimakasih.



Ibu Ivana –
Semoga jasa yang disediakan Lummatun tambah sukses, dan berkah dunia dan akhirat.
Kang Mursi –
Aamiin ya Alloh…