Panduan Praktikal untuk Membangunkan Plugin WooCommerce: Membina Fungsi E-dagang Kustom dari Awal

Bacaan 3 minit
2026-03-16
2026-06-03
2,292
Saya mendapat komisen apabila anda membeli-belah melalui pautan di bawah, tanpa sebarang kos tambahan kepada anda.

Membina persekitaran pembangunan plugin WooCommerce.

Untuk memulakan pembangunan plugin WooCommerce, anda mesti terlebih dahulu menyediakan persekitaran pembangunan tempatan yang profesional. Adalah disyorkan untuk menggunakanLocal by FlywheelXAMPPMengaturkan persekitaran bersepadu dan memasang versi terbaru WordPress dan WooCommerce. Pastikan bahawa dalamwp-config.phpDokumen tersebut akanWP_DEBUGTetapkan kepadatrueUntuk menangkap kesilapan dan amaran semasa dalam proses pembangunan.

Membuat struktur asas plugin biasanya bermula dengan satu fail utama. Fail ini merupakan titik masuk plugin dan mesti mengandungi maklumat header plugin standard, yang digunakan oleh WordPress untuk mengenal pasti plugin. Nama fail utama plugin harus unik, sepertimy-custom-woocommerce.phpBerikut ialah contoh struktur fail-fail plugin asas.

<?php
/**
 * Plugin Name: My Custom WooCommerce Features
 * Description: 为WooCommerce添加自定义电商功能。
 * Version: 1.0.0
 * Author: Your Name
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // 防止直接访问
}

Dalam infrastruktur, anda juga perlu memahami mekanisme pemuatan ketergantungan WooCommerce. Kod plugin anda harus berada dalam <plugins_loadedinitIni dilakukan selepas pengaitan, untuk memastikan kelas-kelas teras WooCommerce telah dimuatkan sepenuhnya. Anda boleh melakukan ini dengan menggunakanclass_exists( 'WooCommerce' )Periksa jika WooCommerce telah diaktifkan, ini merupakan langkah pertama untuk memastikan keserasian yang baik.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Menganalisis secara mendalam pembangunan plugin WordPress: Membina ekstensi fungsi kustom dari awal.

Pembangunan fungsi teras: penggunaan pengait dan penyaring.

Kekuatan WooCommerce terletak pada skalabilitasnya, yang dicapai terutamanya melalui pengait tindakan (Action Hooks) dan pengait penyaring (Filter Hooks). Pengait tindakan membenarkan anda untuk “melaksanakan” kod khusus pada masa tertentu, sementara pengait penyaring membolehkan anda untuk “mengubahsuai” data yang dihantar.

UltaHost – Penyedia Hosting untuk WordPress
Jaminan pemulangan wang dalam tempoh 30 hari, lebar jalur dan pangkalan data yang tidak terhad, perlindungan DDoS percuma, diskaun 50% untuk pembelian selama 3 tahun.

Bagaimana untuk menambah medan pembayaran kustom

Keperluan biasa ialah menambahkan medan tambahan pada halaman checkout. Ini boleh dilakukan dengan menggunakanwoocommerce_checkout_fieldsIni dicapai dengan menggunakan penyaring. Kod di bawah ini menunjukkan cara menambahkan medan “Nombor Cukai Syarikat” yang ringkas ke kawasan maklumat bil.

add_filter( 'woocommerce_checkout_fields', 'my_custom_checkout_fields' );
function my_custom_checkout_fields( $fields ) {
    $fields['billing']['billing_vat_number'] = array(
        'label'     => __('税号 / VAT Number', 'woocommerce'),
        'placeholder'   => _x('请输入您的公司税号', 'placeholder', 'woocommerce'),
        'required'  => false, // 根据需求设置为 true 或 false
        'class'     => array('form-row-wide'),
        'clear'     => true
    );
    return $fields;
}

Selepas menambah medan, anda juga perlu menggunakanwoocommerce_checkout_update_order_metaAksi tersebut akan menyimpan nilai medan ke dalam data unit pesanan, dan menggunakanwoocommerce_admin_order_data_after_billing_addresswoocommerce_order_details_after_customer_detailsTunggu hingga pengait menunjukkan nilai tersebut pada halaman pesanan depan dan belakang.

Mengubah logik pengiraan harga produk.

Scenario utama yang lain ialah menyesuaikan harga barang berdasarkan peraturan khusus. Sebagai contoh, memberikan diskaun tambahan kepada peranan pengguna tertentu. Ini boleh dilakukan melaluiwoocommerce_product_get_priceIni dicapai dengan menggunakan penyaring. Penyaring ini dipanggil setiap kali harga diperoleh, lalu menyediakan kemungkinan untuk penetapan harga dinamik.

add_filter( 'woocommerce_product_get_price', 'custom_role_based_discount', 10, 2 );
function custom_role_based_discount( $price, $product ) {
    if ( is_user_logged_in() && current_user_can( 'wholesale_customer' ) ) {
        // 为批发客户提供15%的折扣
        $price = $price * 0.85;
    }
    return $price;
}

Mencipta antaramuka pengurusan khusus dan pilihan tetapan.

Untuk membuat plugin anda boleh dikonfigurasi, biasanya anda perlu mencipta halaman tetapan pentadbiran yang jelas. WordPress menyediakanSettings APIUntuk menambah halaman tetapan, bahagian, dan medan secara standard.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan lengkap untuk plugin WooCommerce dan penjelasan kod terperinci: daripada pemasangan hingga pembangunan kustomisasi.

Tambahkan tab baharu dalam tetapan WooCommerce.

Amalan terbaik ialah mengintegrasikan tetapan-tetapan plugin anda ke dalam struktur tetapan sedia ada WooCommerce. Anda boleh menggunakanwoocommerce_get_settings_pagesPengayah untuk menambahkan halaman tetapan baru. Pertama, cipta satu yang mewarisi daripadaWC_Settings_PageKami akan mengajar anda cara membuat model 3D menggunakan perisian SketchUp.

add_filter( 'woocommerce_get_settings_pages', 'add_my_custom_settings_page' );
function add_my_custom_settings_page( $settings ) {
    $settings[] = include plugin_dir_path( __FILE__ ) . 'includes/class-wc-settings-my-plugin.php';
    return $settings;
}

Kemudian, dalamclass-wc-settings-my-plugin.phpDokumen ini mentakrifkan kelas ini, dan menulis semulaget_settings()Metod untuk mengembalikan susunan medan tetapan anda.

class WC_Settings_My_Plugin extends WC_Settings_Page {
    public function __construct() {
        $this->id = ‘my-plugin’;
        $this->label = __(‘我的插件’, ‘my-text-domain’);
        parent::__construct();
    }

public function get_settings() {
        return array(
            array(
                ‘title’ => __(‘基本配置’, ‘my-text-domain’),
                ‘type’  => ‘title’,
                ‘id’    => ‘my_plugin_options’
            ),
            array(
                ‘title’   => __(‘启用功能’, ‘my-text-domain’),
                ‘desc’    => __(‘启用自定义折扣功能’),
                ‘id’      => ‘my_plugin_enable_discount’,
                ‘default’ => ‘no’,
                ‘type’    => ‘checkbox’
            ),
            // ... 更多设置字段
        );
    }
}

Simpan dan sahkan data tetapan

melaluiSettings APIWC_Settings_PageTetapan-tetapan yang ditambahkan ke kelas, proses penyimpanan dan pengesahan mereka ditangani secara automatik oleh WooCommerce Core. Walau bagaimanapun, anda masih boleh melakukannya melaluiwoocommerce_admin_settings_sanitize_option_{option_id}Filternya melakukan pembersihan dan pengesahan tambahan terhadap nilai-nilai dalam medan tertentu, memastikan ketepatan dan keselamatan data yang dimasukkan.

hosting.com Hosting Bersama
Prestasi tinggi, menampilkan CPU AMD EPYC, storan SSD NVMe dan LiteSpeed, dengan sokongan pakar dalaman 24/7, langkah keselamatan canggih termasuk SSL, perlindungan serangan paksa kata laluan, perisian hasad dan DDoS, menjimatkan sehingga 73%.

Fungsi-fungsi canggih dan jadual data yang boleh disesuaikan.

Apabila plugin memerlukan penyimpanan data hubungan yang kompleks atau besar, menggunakan jadual data tersuai WordPress mungkin lebih baik daripada bergantung padawp_postmetaIni lebih cekap. Ini biasanya dicipta apabila plugin diaktifkan.

Mencipta jadual data semasa plugin diaktifkan.

Anda perlu menggunakanregister_activation_hookHook digunakan untuk mentakrifkan fungsi yang akan dijalankan apabila plugin diaktifkan. Di dalam fungsi ini, gunakan$wpdbObjek dandbDelta()Gunakan fungsi ini untuk mencipta atau mengemaskini struktur jadual anda dengan selamat.dbDelta()Fungsi tersebut memerlukan format pernyataan SQL yang sangat ketat.

register_activation_hook( __FILE__, ‘my_plugin_create_tables’ );
function my_plugin_create_tables() {
    global $wpdb;
    $charset_collate = $wpdb->get_charset_collate();
    $table_name = $wpdb->prefix . ‘my_plugin_subscriptions’;

$sql = “CREATE TABLE $table_name (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        user_id bigint(20) NOT NULL,
        product_id bigint(20) NOT NULL,
        status varchar(20) DEFAULT ‘active’ NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY (id),
        KEY user_id (user_id),
        KEY product_id (product_id)
    ) $charset_collate;”;

require_once( ABSPATH . ‘wp-admin/includes/upgrade.php’ );
    dbDelta( $sql );
}

Mengintegrasikan data kustom ke dalam pertanyaan WooCommerce.

Selepas mencipta jadual tersuai, anda mungkin perlu mengintegrasikan data ini dengan sistem pesanan atau carian produk WooCommerce. Sebagai contoh, menambahkan lajur yang memaparkan bilangan pelanggan berlangganan dalam senarai produk pentadbir. Anda boleh menggunakanmanage_edit-product_columnsmanage_product_posts_custom_columnFiltr dan tindakan, digabungkan dengan pertanyaan pangkalan data anda sendiri untuk melaksanakan fungsi ini. Ini menunjukkan cara mengintegrasikan data luaran dengan lancar ke dalam aliran kerja lalai WooCommerce.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan lengkap untuk membina laman web dengan WooCommerce: Membina laman web e-dagang dengan tahap konversi tinggi daripada awal.

RINGKASAN

Membangunkan plugin khusus WooCommerce merupakan projek sistematik, mulai daripada menyiapkan persekitaran, menggunakan pengait, mencipta antara muka pengurusan hingga memproses data khusus jika perlu. Intinya adalah untuk memahami secara mendalam sistem pengait WooCommerce, yang membolehkan anda menyisipkan logik khusus pada hampir semua peringkat. Mengikuti standard pengekodan WordPress dan WooCommerce, serta mencipta kod yang jelas, selamat dan berkesan adalah kunci untuk memastikan plugin stabil dalam jangka panjang, mudah untuk diselenggara dan serasi dengan versi masa depan. Dengan mengikuti panduan di atas, anda akan dapat membina fungsi e-dagang yang kuat dan profesional yang memenuhi keperluan perniagaan khusus.

FAQ - Soalan Lazim

Untuk membangunkan plugin WooCommerce, apakah pengetahuan awal yang diperlukan?
Anda perlu memahami asas-usul bahasa pengaturcaraan PHP dan konsep berorientasikan objek. Selain itu, pemahaman yang jelas tentang mekanisme teras WordPress seperti pengait (Hooks), penyaring (Filters) dan tindakan (Actions) adalah penting. Pengetahuan tentang HTML, CSS dan JavaScript asas akan membantu anda membangunkan fungsi interaktif di bahagian depan. Pemahaman tentang struktur data asas WooCommerce, seperti pesanan, produk, kupon dan pengguna, akan membuat proses pembangunan lebih lancar.

Hosting Bersama InterServer
Hosting kongsi: 1TB/bulan pada $2.50 USD, bulan pertama pada $0.10 USD dengan kod promo tryinterserver. 461 skrip aplikasi awan tersedia untuk pemasangan satu klik.

Bagaimana untuk memastikan plugin kustom saya kompatibel dengan versi WooCommerce pada masa akan datang?

Mengikuti standard pembangunan rasmi dan amalan terbaik adalah syarat utama. Elakkan mengubah suai fail-fail teras WooCommerce secara langsung, dan sentiasa lakukan perluasan melalui pengait yang disediakan oleh pihak berkuasa. Jangan gunakan fungsi atau kaedah yang telah dihentikan dalam kod anda, dan beri perhatian kepada log kemaskini WooCommerce. Nyatakan nombor versi WooCommerce terbaru yang telah diuji dalam plugin anda. Uji plugin anda sepenuhnya, terutamanya sebelum dan selepas kemaskini besar WooCommerce dikeluarkan.

Bolehkah saya mengakses semua API tanpa membeli pelanjutan WooCommerce?

Ya, REST API teras WooCommerce diaktifkan secara lalai setelah pemasangan, dan ia menyediakan titik akhir CRUD lengkap untuk model data utama seperti pesanan, produk, pelanggan, dan lain-lain. Anda boleh menggunakan API ini untuk operasi baca dan tulis. Namun, beberapa fungsi khusus atau titik akhir tersuai yang disediakan oleh sambungan berbayar (seperti perkhidmatan langganan atau sistem keanggotaan) mungkin memerlukan sambungan yang sepadan untuk diaktifkan sebelum boleh diakses melalui API. Kebenaran untuk API teras dikawal oleh sistem peranan dan kebenaran pengguna WordPress.

Apakah alat-alat berguna untuk men-debug plugin WooCommerce?

Pertama, pastikan anda mengaktifkan mod debugging WordPress, yaitu di dalamwp-config.phpDi dalam pengaturandefine(‘WP_DEBUG’, true);Ini akan memaparkan ralat dan amaran pada skrin atau dicatatkan dalam log. Gunakan alat pembangun pelayar (F12) untuk memeriksa dan menyunting permintaan JavaScript dan AJAX di bahagian depan. Untuk menjejak logik kod, anda boleh memasangkan plugin pemantauan pertanyaan seperti “Query Monitor”, yang membantu menganalisis pertanyaan pangkalan data, pelaksanaan pengaitan, dan masalah prestasi. Untuk aliran transaksi yang kompleks, adalah penting untuk memeriksa fail log WooCommerce (terletak di bawah “Status” > “Log” dalam panel pentadbiran WordPress).