Tworzenie Wtyczek WordPress od Podstaw do Wdrożenia

Ekosystem WordPress napędza ponad 43% stron w internecie. Tworzenie własnych wtyczek (plugins) to jedna z najbardziej dochodowych i poszukiwanych umiejętności na rynku programistycznym.

W tym poradniku krok po kroku przeprowadzimy Cię przez proces budowy nowoczesnej, skalowalnej wtyczki do WordPressa i WooCommerce — od pierwszego pliku PHP aż po wdrożenie i dystrybucję.


1. Wymagania wstępne i środowisko deweloperskie

Przed rozpoczęciem upewnij się, że Twoje lokalne środowisko programistyczne spełnia współczesne standardy:

  • PHP: wersja 8.1+ (z aktywnymi typami zmiennych, enums i readonly properties).
  • Lokalny serwer: Docker, LocalWP, DDEV lub Laragon / XAMPP.
  • Menedżer pakietów: Composer do autoloadingu i zarządzania zależnościami.
  • WordPress: Najnowsza stabilna wersja (6.x+).

2. Krok 1: Nagłówek pliku głównego wtyczki

Każda wtyczka WordPress musi posiadać unikalny folder w katalogu /wp-content/plugins/ oraz plik główny z poprawnym nagłówkiem docblock, który silnik WordPressa odczytuje podczas indeksowania w panelu administratora:

Terminal / Kod
<?php
/**
 * Plugin Name:       Pluger Custom Feature PRO
 * Plugin URI:        https://pluger.pl/market
 * Description:       Zaawansowany moduł rozszerzający możliwości WooCommerce o szybkie zamówienia.
 * Version:           1.0.0
 * Requires at least: 6.0
 * Requires PHP:      8.1
 * Author:            Pluger Engineering Team
 * Author URI:        https://pluger.pl
 * License:           GPL v2 or later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       pluger-custom-feature
 * Domain Path:       /languages
 */

// Blokada bezpośredniego uruchomienia pliku poza środowiskiem WordPress
if (!defined('ABSPATH')) {
    exit;
}

3. Krok 2: Bootstrap i Cykl Życia Wtyczki

Dobra wtyczka rejestruje procedury instalacyjne (activation_hook), deaktywacyjne (deactivation_hook) oraz odinstalowujące (uninstall.php):

Terminal / Kod
// Rejestracja aktywacji (np. tworzenie tabeli w bazie lub domyślnych opcji)
register_activation_hook(__FILE__, function() {
    if (!get_option('pluger_feature_installed_at')) {
        update_option('pluger_feature_installed_at', time());
    }
});

// Rejestracja deaktywacji (np. czyszczenie cronów)
register_deactivation_hook(__FILE__, function() {
    wp_clear_scheduled_hook('pluger_sync_cron_event');
});

4. Krok 3: Rejestracja Strony Opcji w Panelu WP Admin

Aby administrator mógł konfigurować ustawienia wtyczki, dodajemy stronę menu za pomocą akcji admin_menu:

Terminal / Kod
add_action('admin_menu', function () {
    add_menu_page(
        __('Ustawienia Pluger Feature', 'pluger-custom-feature'), // Tytuł strony
        __('Pluger Feature', 'pluger-custom-feature'),          // Etykieta menu
        'manage_options',                                      // Wymagane uprawnienie
        'pluger-feature-settings',                             // Slug menu
        'render_pluger_settings_view',                         // Funkcja renderująca
        'dashicons-superhero',                                 // Ikona Dashicons
        58                                                     // Pozycja w menu
    );
});

function render_pluger_settings_view(): void {
    if (!current_user_can('manage_options')) {
        return;
    }
    ?>
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <form method="post" action="options.php">
            <?php
            settings_fields('pluger_feature_group');
            do_settings_sections('pluger-feature-settings');
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

5. Krok 4: Tworzenie Endpointu REST API

Nowoczesne wtyczki komunikują się z frontendem (np. komponentami React lub aplikacjami mobilnymi) za pomocą oficjalnego WordPress REST API:

Terminal / Kod
add_action('rest_api_init', function () {
    register_rest_route('pluger/v1', '/status', [
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => 'handle_pluger_status_endpoint',
        'permission_callback' => function () {
            // Zezwalaj tylko użytkownikom z uprawnieniem do edycji postów
            return current_user_can('edit_posts');
        },
    ]);
});

function handle_pluger_status_endpoint(WP_REST_Request $request): WP_REST_Response {
    $data = [
        'status'    => 'ok',
        'version'   => '1.0.0',
        'timestamp' => current_time('mysql'),
    ];

    return new WP_REST_Response($data, 200);
}

6. Krok 5: Przygotowanie Wtyczki do Monetyzacji i Aktualizacji

Gdy Twoja wtyczka jest gotowa, pojawia się pytanie: jak zarządzać licencjami, płatnościami i automatycznymi aktualizacjami bez pisania własnego serwera od zera?

Zamiast budować własną infrastrukturę i martwić się o bezpieczeństwo kluczy, serwery plików i płatności Stripe:

  1. Skorzystaj z platformy Pluger.pl.
  2. Zintegruj gotowy moduł sprawdzania licencji i auto-updatera w mniej niż 15 minut.
  3. Sprzedawaj swoje wtyczki w modelu subskrypcyjnym z obsługą BLIK, kart i faktur VAT.

Podsumowanie

Gratulacje! Znasz już kluczowe zasady tworzenia wtyczek do WordPressa. Kolejnym krokiem jest opanowanie dobrych praktyk bezpieczeństwa i wydajności oraz podłączenie systemu automatycznych aktualizacji.