Kompletny przewodnik po niestandardowym rozwoju wtyczki WooCommerce: tworzenie dedykowanych funkcji e-commerce od podstaw.

3 minuty na przeczytanie.
2026-03-16
2026-06-03
2,355
Zarabiam prowizję, gdy robisz zakupy poprzez poniższe linki, bez żadnych dodatkowych kosztów dla Ciebie.

WooCommerce, jako najpotężniejszy plugin do sprzedaży online w ekosystemie WordPress, ma w swoim potencjale przede wszystkim wielką rozszerzalność. Dzięki możliwościom dostosowywania można przezwyciężyć ograniczenia standardowych pluginów i tematów i stworzyć unikalne funkcje sprzedaży dostosowane do potrzeb firmy. Ten przewodnik pomoże ci nauczyć się od podstaw, jak bezpiecznie i efektywnie tworzyć własne rozszerzenia dla WooCommerce.

Ustawienie środowiska rozwoju i podstawowe przygotowania

Przed napisaniem pierwszego linii kodu stabilne i profesjonalne środowisko rozwoju stanowi klucz do sukcesu. To nie tylko poprawia efektywność, ale także pomaga uniknąć wielu potencjalnych błędów.

Konfiguracja lokalnego środowiska deweloperskiego.

Zaleca się korzystać z lokalnych serwerów w środowisku integracyjnym, takich jak Local by Flywheel, Laragon lub XAMPP. Te narzędzia umożliwiają jednorazową instalację WordPressa i WooCommerce. Upewnij się, że twoja wersja PHP jest powyżej 7.4, a także włącz logowanie błędów. wp-config.php W dokumencie zostanie przedstawiony WP_DEBUG Ustaw na trueAby w czasie rozwoju można było w czasie rzeczywistym wykrywać błędy i ostrzeżenia.

Polecamy lekturę. Praktyczny przewodnik po tworzeniu pluginów dla WooCommerce: budowanie własnych funkcji e-commerce od zera

Tworzenie podstawowej struktury dla pliku rozszerzenia (pluginu)

Nigdy nie dodawaj swojego własnego kodu bezpośrednio do tematu (tema w programie). functions.php W pliku. Stworzenie osobnego pluginu jest bardziej profesjonalnym rozwiązaniem, łatwiejszym w utrzymaniu i migracji. W twoim przypadku… wp-content/plugins W katalogu utwórz nowy folder, na przykład nazwany „new_folder”. my-custom-woocommerceW tym folderze utwórz plik zawierający główną moduł (plug-in). my-custom-woocommerce.php

UltaHost – hostingu dla stron WordPress
Gwarancja zwrotu pieniędzy w ciągu 30 dni, nieograniczony przepustowość sieci i dostęp do bazy danych, bezpłatna ochrona przed atakami typu DDoS. Promocja: 50% przy zakupie na 3 lata.

Na początku tego pliku muszą znajdować się standardowe komentarze zawierające informacje o wtyczkach (plug-inach).

<?php
/**
 * Plugin Name: My Custom WooCommerce Functions
 * Plugin URI:  https://yourwebsite.com/
 * Description: 为 WooCommerce 添加自定义功能。
 * Version:     1.0.0
 * Author:      Your Name
 * License:     GPL v2 or later
 * Text Domain: my-custom-wc
 */

Podstawowe metody rozszerzania: haczyki akcji (action hooks) i filtry (filters)

Rozszerzalność platformy WooCommerce opiera się na systemie hooków w WordPress, składającym się głównie z działań (Actions) i filtrów (Filters). Zrozumienie i skuteczne wykorzystanie tych elementów jest kluczowe przy tworzeniu własnych rozszerzeń.

Dodawanie funkcji za pomocą aktywnych háków (action hooks)

Aktywnie działające „haki” (ang. action hooks) umożliwiają wykonywanie własnego kodu w określonych momencach procesu w WooCommerce. Na przykład możesz chcieć wykonać dodatkowy wywołanie API po otrzymaniu zamówienia od użytkownika.

Często używanym „hakiem” (elementem programowym) jest… woocommerce_thankyouAktywuje się na stronie podziękowania (stronie potwierdzenia zamówienia). Możesz go używać w następujący sposób:

Polecamy lekturę. Świetny przewodnik po pluginach dla platformy WooCommerce oraz szczegółowe wyjaśnienia kodu: od instalacji po rozwój na potrzeby użytkownika

add_action( 'woocommerce_thankyou', 'my_custom_thankyou_action' );
function my_custom_thankyou_action( $order_id ) {
    // 获取订单对象
    $order = wc_get_order( $order_id );
    // 执行你的自定义逻辑,例如记录日志或调用 API
    error_log( "订单 {$order_id} 已完成支付,客户邮箱: " . $order->get_billing_email() );
}

Kolejnym istotnym elementem jest… woocommerce_add_to_cartWykorzystuje się do uruchomienia określonych działań w momencie dodawania produktu do koszyka zakupów.

Modyfikacja danych za pomocą filtrów

Filtry hooki umożliwiają modyfikację danych przekazywanych przez WooCommerce. Na przykład, chcesz automatycznie dodawać tekst “(w cenie podatkowej)” do cen wszystkich produktów.

Możesz użyć woocommerce_get_price_html Filtr:

hosting.com Hosting współdzielony
Wysoka wydajność dzięki procesorom AMD EPYC, pamięci masowej NVMe SSD i LiteSpeed, wewnętrzne wsparcie ekspertów 24/7, zaawansowane środki bezpieczeństwa, w tym SSL, brute force, ochrona przed złośliwym oprogramowaniem i DDoS, oszczędność do 73%
add_filter( 'woocommerce_get_price_html', 'my_custom_price_suffix', 10, 2 );
function my_custom_price_suffix( $price, $product ) {
    if ( is_admin() ) return $price; // 避免在后台管理界面修改
    return $price . ' <small>(含税)</small>';
}

parametry 10 Oznacza standardową priorytetność.2 To oznacza, że funkcja wywołana w ramach callbacka przyjmuje dwa parametry.$price$product)。

Dane i pola produktów dostosowane według potrzeb

Dodawanie unikalnych metadanych do produktów to często występujący wymóg. Na przykład do produktów odzieżnych można dodać pole “ tabela rozmiarów”, a do elektronicznych produktów – informację o okresie gwarancji.

Dodać pole w interfejsie administracyjnym w tle (w obszarze nie widzianym przez użytkowników).

Musisz dodać te pola do kartki “Dzięki” lub “Standardowa” na stronie edycji produktu. To zwykle wymaga połączenia kilku opcji (zwanych „hakami”/„checkboxes”).woocommerce_product_options_general_product_data Wykorzystywany do wyświetlania pola.woocommerce_process_product_meta Znaczek używany do zapisywania wartości pola.

Polecamy lekturę. Kompletny przewodnik po optymalizacji wydajności witryn e-commerce w WooCommerce: od szybkości ładowania do konwersji płatności.

Poniższy przykład pokazuje, jak dodać do wszystkich produktów pola tekstowe z ustawieniem “okresu gwarancji”:

// 1. 显示字段
add_action( 'woocommerce_product_options_general_product_data', 'add_custom_warranty_field' );
function add_custom_warranty_field() {
    woocommerce_wp_text_input( array(
        'id'          => '_custom_warranty',
        'label'       => '保修期',
        'description' => '例如:2年全球联保',
        'desc_tip'    => true,
    ) );
}

// 2. 保存字段值
add_action( 'woocommerce_process_product_meta', 'save_custom_warranty_field' );
function save_custom_warranty_field( $post_id ) {
    $warranty = isset( $_POST['_custom_warranty'] ) ? sanitize_text_field( $_POST['_custom_warranty'] ) : '';
    update_post_meta( $post_id, '_custom_warranty', $warranty );
}

Na stronie produktu na stronie front-endu wyświetlają się ustawione przez użytkownika pola (custom fields).

Po zapisaniu danych należy je wyświetlić użytkownikom na frontendzie. Można to zrobić za pomocą woocommerce_product_additional_information Hook dodaje to do kartki “Dodatkowe informacje” albo używa innych metod do przenoszenia tego elementu. the_content Hakówki są wyświetlone bezpośrednio po opisie.

Hosting współdzielony InterServer
Hosting współdzielony $2.50 USD miesięcznie, pierwszy miesiąc $0.1 USD kod promocyjny tryinterserver, 461 skryptów aplikacji w chmurze, instalacja jednym kliknięciem.
add_action( 'woocommerce_product_additional_information', 'display_custom_warranty_frontend' );
function display_custom_warranty_frontend() {
    global $product;
    $warranty = get_post_meta( $product-&gt;get_id(), '_custom_warranty', true );
    if ( $warranty ) {
        echo '<p><strong>Gwarancja i serwis:</strong>'`. esc_html($warranty)`.'</p>';
    }
}

Tworzenie własnych poli i procedur rozliczeniowych

Proces rozliczeń dostosowany do indywidualnych potrzeb może znacząco poprawić jakość obsługi klienta oraz efektywność gromadzenia danych.

Dodaj dodatkowe pola do rozliczeń.

WooCommerce oferuje specjalne “hooki” (zdarzenia programowe), które umożliwiają dodawanie, sprawdzanie i zapisywanie polów stosowanych przy procesie płatności. Na przykład, można dodać pole „Numer podatkowy firmy” dla klientów typu B2B.

// 1. 在结算表单中添加字段
add_filter( 'woocommerce_checkout_fields', 'add_custom_checkout_field' );
function add_custom_checkout_field( $fields ) {
    $fields['billing']['billing_vat'] = array(
        'label'       => '公司税号',
        'placeholder' => '请输入您的增值税税号',
        'required'    => false, // 或 true
        'class'       => array('form-row-wide'),
        'clear'       => true,
    );
    return $fields;
}

// 2. 保存字段值到订单
add_action( 'woocommerce_checkout_update_order_meta', 'save_custom_checkout_field' );
function save_custom_checkout_field( $order_id ) {
    if ( ! empty( $_POST['billing_vat'] ) ) {
        update_post_meta( $order_id, '_billing_vat', sanitize_text_field( $_POST['billing_vat'] ) );
    }
}

Wyświetlaj pola zapisań na stronie klienta (frontend) oraz na stronie serwera (backend).

Po zapisaniu należy umożliwić wyświetlenie tego pola na stronie z szczegółami zamówienia oraz na stronie zarządzania zamówieniami w backendzie. Można to zrealizować poprzez odpowiednie modyfikacje w kodzie aplikacji lub w bazie danych. woocommerce_order_details_after_customer_detailswoocommerce_admin_order_data_after_billing_address Implementacja „haka”.

// 在前端订单详情页显示
add_action( 'woocommerce_order_details_after_customer_details', 'display_vat_on_order_frontend', 10, 1 );
function display_vat_on_order_frontend( $order ) {
    $vat = $order-&gt;get_meta( '_billing_vat' );
    if ( $vat ) {
        echo '<p><strong>Numer podatkowy firmy:</strong>'`. esc_html($vat)`.'</p>';
    }
}

Podsumowanie.

WooCommerce to platforma do sprzedaży online, a jej rozszerzenia (plug-iny) umożliwiają dostosowanie funkcji według indywidualnych wymagań biznesowych. Tworzenie własnych rozszerzeń polega na precyzywnym dostosowaniu kodu do potrzeb użytkownika. Kluczowym elementem jest stosowanie standardów rozwoju pluginów dla WordPress, głębokie zrozumienie systemu hooków (działań i filtrów) w WooCommerce oraz organizacja kodu w sposób modułowy. Proces rozpoczyna się od przygotowania profesjonalnego środowiska lokalnego, następnie rozszerzania funkcji standardowych za pomocą hooków, a potem dodawania własnych polów do produktów i procesów płatności. Każdy krok skupia się na bezpieczeństwie, łatwości konserwacji i portowalności kodu. Unikaj modyfikacji plików podstawowych platformy i zawsze implementuj nowe funkcje w formie odrębnych pluginów – to gwarantuje, że Twoje zmiany będą kompatybilne z przyszłymi aktualizacjami WooCommerce. Opanowanie tych metod pozwoli ci przekroczyć ograniczenia i stworzyć wyjątkowe, funkcjonalne rozwiązania e-commerce.

FAQ – najczęściej zadawane pytania.

Czy dostosowanie wtyczek do platformy WooCommerce może wpłynąć na wydajność witryny internetowej?

Jeśli kod jest dobrze napisany, jego wpływ na wydajność systemu jest zwykle minimalny. Problemy z wydajnością wynikają przede wszystkim z nieefektywnych zapytań do bazy danych, pobierania zasobów w niewłaściwych miejscach (na przykład włączania skryptów położonych w tle w interfejsie użytkownika) lub wykonywania zbędnych operacji w cyklach. Upewnij się, że twój kod jest optymalizowany – używaj mechanizmów cache, ustawiaj zapytania do bazy danych tak, by były jak najskuteczniejsze, i montuj elementy interfejsu tylko wtedy, gdy to jest konieczne.

Jak zapewnić, że mój własny kod będzie kompatybilny po aktualizacjach WooCommerce?

To jeden z największych zalet rozwoju niezależnych pluginów. Warto pamiętać, że firma WooCommerce staraje się zapewnić zgodność swoich publicznych hooków (Action i Filter) z wcześniejszymi wersjami produktu podczas aktualizacji. Zawsze należy korzystać z publicznych hooków opisanych w oficjalnych dokumentach, unikając nieujawnionych funkcji lub klas. Przed aktualizacją głównych wersji WooCommerce konieczne jest przeprowadzenie dokładnych testów w środowisku testowym.

Czy mogę przejąć kontrolę nad plikami szablonów w WooCommerce w ramach mojego własnego, dostosowanego pluginu?

Tak, ale zgodnie z najlepszymi praktykami nie należy bezpośrednio modyfikować szablonów wewnętrznych pluginu WooCommerce, lecz zamiast tego kopiować je do swojego tematu lub innego pluginu i tam je edytować. WooCommerce używa systemu hierarchii szablonów. Możesz skorzystać z pliku szablonu celowego (na przykład…) single-product.phpKopij to do folderu z twoimi tematami. woocommerce W obrębie podkatalogów można dokonywać zmian, co zapewnia bezpieczniejsze zarządzanie tymi zmianami podczas aktualizacji tematów.

Jak debugować problemy w autorskim pluginie do WooCommerce?

Najpierw upewnij się, że na wp-config.php Włączono. WP_DEBUGWP_DEBUG_LOGZapisuj wszystkie błędy i ostrzeżenia do… wp-content/debug.log W pliku. Ponadto, w przypadku problemów związanych z „hakami” (hookami), należy użyć… has_action()has_filter() Funkcja sprawdza, czy hook został poprawnie zarejestrowany. W przypadku problemów z frontendem należy użyć narzędzi deweloperskich w przeglądarzu do sprawdzenia błędów w konsole oraz żądań sieciowych.