WooCommerce eklenti geliştirme pratik rehberi: Özel e-ticaret işlevlerini sıfırdan oluşturma.

3 dakika okuma.
2026-03-16
2026-06-03
2,328
Aşağıdaki bağlantılar üzerinden alışveriş yaptığınızda, sizin için ek bir maliyet olmadan komisyon kazanıyorum.

WooCommerce Eklenti Geliştirme Ortamının Kurulması

WooCommerce eklenti geliştirmeye başlamak için öncelikle profesyonel bir yerel geliştirme ortamı oluşturmanız gerekmektedir. Kullanımı önerilen araçlar arasında…Local by FlywheelXAMPPEntegrasyon ortamını hazırlayın ve en yeni sürümlerdeki WordPress ile WooCommerce’ü yükleyin. Bunun doğru yapıldığından emin olun.wp-config.phpDosyada,WP_DEBUGAyarları yapın.trueHataları ve uyarıları geliştirme sürecinde tespit edebilmek için.

Eklentilerin temel yapısını oluşturmak genellikle bir ana dosyadan başlar. Bu dosya, eklentinin giriş noktasıdır ve WordPress tarafından tanınabilmesi için standart eklenti başlık bilgilerini içermelidir. Eklentinin ana dosyasının adı benzersiz olmalıdır, örneğin:my-custom-woocommerce.phpAşağıda, temel bir eklenti (plugin) dosyası yapısının örneği bulunmaktadır.

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

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

Temel yapıda, ayrıca WooCommerce’un bağımlılıkların yüklenme mekanizmasını da anlamanız gerekiyor. Eklenti kodunuzun bunu dikkate alması gerekir.plugins_loadedinitDüğümün ardından bu kodu çalıştırarak, WooCommerce’un temel sınıflarının tamamen yüklendiğinden emin olabilirsiniz. Bunu şu şekilde yapabilirsiniz:class_exists( 'WooCommerce' )WooCommerce’in etkinleştirilip etkinleştirilmediğini kontrol etmek, iyi bir uyumluluk sağlamanın ilk adımıdır.

Tavsiye edilen okuma WordPress Eklenti Geliştirme Üzerine Derinlemesine Analiz: Sıfırdan Özelleştirilmiş İşlevler Oluşturarak Eklenti Genişletme

Çekirdek İşlev Geliştirme: Hook’ların ve Filtrelerin Kullanımı

WooCommerce’in güçlü yanı, genişletilebilirliğidir ve bu özellik esas olarak Eylem Kancaları (Action Hooks) ve Filtre Kancaları (Filter Hooks) aracılığıyla sağlanır. Eylem Kancaları, belirli anlarda özel kodları çalıştırmanıza olanak tanır; Filtre Kancaları ise size iletilen verileri değiştirmenize imkan verir.

UltaHost WordPress Sunucusu
30 gün iade garantisi, sınırsız bant genişliği ve veritabanı kullanımı, ücretsiz DDoS koruması; 3 yıllık abonelikte indirim (50%).

Nasıl özel ödeme alanları eklenir?

Yaygın bir ihtiyaç, ödeme sayfasına ek alanlar eklemektir. Bu, aşağıdaki yöntemlerle gerçekleştirilebilir:woocommerce_checkout_fieldsBunu filtreler aracılığıyla gerçekleştirebilirsiniz. Aşağıdaki kod, fatura bilgi alanına basit bir “Şirket Vergi Numarası” alanının nasıl ekleneceğini göstermektedir.

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;
}

Alanları ekledikten sonra, bunları kullanmanız da gerekecek.woocommerce_checkout_update_order_metaBu eylem, alan değerlerini sipariş meta verilerine kaydeder ve bunları kullanır.woocommerce_admin_order_data_after_billing_addresswoocommerce_order_details_after_customer_detailsBu değeri, hem ön taraftaki hem de arka taraftaki sipariş sayfalarında göstermek için gerekli olan “hook” (düğüm/kontrol noktası) kodlarını ekleyin.

Ürün fiyatlarının hesaplama mantığını değiştirmek

Bir diğer temel senaryo, ürün fiyatlarını özelleştirilmiş kurallara göre ayarlamaktır. Örneğin, belirli kullanıcı rollerine ek indirimler sağlamak mümkündür. Bu, şu şekilde gerçekleştirilebilir:woocommerce_product_get_priceFiltreler, bu işlevi gerçekleştirmek için kullanılır. Filtre, her fiyat alımında çağrılır ve dinamik fiyatlandırmayı mümkün kılar.

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;
}

Özel bir yönetim arayüzü ve ayar seçenekleri oluşturun.

Eklentinizin işlevlerinin yapılandırılabilir olması için genellikle net bir yönetim ayarları sayfası oluşturmanız gerekir. WordPress bunu sağlar.Settings APIAyar sayfalarını, bölümleri ve alanları düzenli bir şekilde ekleyin.

Tavsiye edilen okuma WooCommerce Eklentileri için Kapsamlı Rehber ve Kod Açıklamaları: Kurulumdan Özelleştirilmiş Geliştirmeye

WooCommerce ayarlarında yeni bir sekme ekleyin.

En iyi uygulama, eklentinizin ayarlarını WooCommerce’un mevcut ayar yapısına entegre etmektir. Bunu yapmak için şu yöntemleri kullanabilirsiniz:woocommerce_get_settings_pagesBir yeni ayar sayfası sınıfı eklemek için bir filtre kullanılır. Öncelikle, mevcut bir sınıftan türetilen yeni bir sınıf oluşturun.WC_Settings_PageBu sınıfın…

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;
}

Sonra,class-wc-settings-my-plugin.phpBu sınıfı dosyada tanımlayın ve ardından yeniden yazın.get_settings()Bir ayarlar alanı dizisini döndürmek için kullanılan yöntem.

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’
            ),
            // ... 更多设置字段
        );
    }
}

Ayar verilerini kaydetme ve doğrulama

geçmek (bir fatura veya teftiş vb.)Settings APIWC_Settings_PageSınıfa eklenen ayarların kaydedilmesi ve doğrulanması işlemleri, WooCommerce çekirdeği tarafından otomatik olarak gerçekleştirilir. Yine de bunları kendiniz de yönetebilirsiniz.woocommerce_admin_settings_sanitize_option_{option_id}Filtreler, belirli alanlardaki değerleri ekstra bir şekilde temizler ve doğrular; böylece girilen verilerin doğruluğu ve güvenliği sağlanır.

hosting.com Paylaşımlı Barındırma
AMD EPYC CPU'lar, NVMe SSD depolama ve LiteSpeed ile yüksek performans, 7/24, 7x7 uzman şirket içi destek, SSL, kaba kuvvet, kötü amaçlı yazılım ve DDoS koruması dahil gelişmiş güvenlik önlemleri, 73%'ye kadar tasarruf

Gelişmiş Özellikler ve Özelleştirilebilir Veri Tabloları

Eklentilerin karmaşık veya büyük miktarda ilişkisel veriyi depolaması gerektiğinde, WordPress’in özel veri tablolarını kullanmak, başka kaynaklara bağımlı olmaktan daha avantajlı olabilir.wp_postmetaTablo daha verimli hale getirilmiştir. Bu genellikle bir eklenti etkinleştirildiğinde olur.

Eklenti etkinleştirildiğinde veritabanı tablosu oluşturulur.

Kullanmanız gereken şey…register_activation_hookKancalar, eklentinin etkinleştirildiğinde çalıştırılacak fonksiyonları tanımlamak için kullanılır. Bu fonksiyonun içinde, gerekli işlemler yapılır.$wpdbNesneler ve…dbDelta()Bu fonksiyon, tablo yapınızı güvenli bir şekilde oluşturmanıza veya güncellemenize olanak tanır.dbDelta()Fonksiyon, SQL ifadelerinin formatının çok katı olmasını gerektirir.

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 );
}

WooCommerce sorgularına özel verileri entegre etmek

Özel bir tablo oluşturduktan sonra, bu verileri WooCommerce’un sipariş veya ürün sorgulama sistemine entegre etmeniz gerekebilir. Örneğin, yönetici ürün listesine abone kullanıcı sayısını gösteren bir sütun ekleyebilirsiniz. Bunu yapmak için şu yöntemleri kullanabilirsiniz:manage_edit-product_columnsmanage_product_posts_custom_columnFiltreler ve eylemler, kendi veritabanı sorgularınızla birleştirilerek bu işlevin gerçekleştirilmesini sağlar. Bu, harici verilerin WooCommerce’in varsayılan iş akışına sorunsuz bir şekilde entegre edilmesinin nasıl yapıldığını göstermektedir.

Tavsiye edilen okuma WooCommerce tam web sitesi oluşturma rehberi: Sıfırdan yüksek dönüşüm oranına sahip bir e-ticaret web sitesi oluşturma

Özetle.

WooCommerce için özel eklentiler geliştirmek, bir ortam kurmaktan, eklentilerin işlevlerini yönetmek için gerekli araçları kullanmaktan, yönetim arayüzleri oluşturmaktan ve gerekli olduğunda özel verileri işlemeye kadar kapsamlı bir süreçtir. Önemli olan nokta, WooCommerce’un eklenti sisteminin derinlemesine anlaşılmasıdır; bu sistem sayesinde neredeyse her aşamada özel kodlar ekleyebilirsiniz. WordPress ve WooCommerce’un kodlama standartlarına uymak, yapısal olarak net, güvenli ve verimli kodlar oluşturmak, eklentinin uzun vadede stabil kalmasını, kolayca bakımının yapılabilmesini ve gelecekteki sürümlerle uyumlu olmasını sağlamanın anahtarıdır. Yukarıdaki yönergeleri uygulayarak, belirli iş ihtiyaçlarını karşılayacak güçlü ve profesyonel e-ticaret özellikleri geliştirebilirsiniz.

Sıkça Sorulan Sorular.

### için WooCommerce eklentisi geliştirmek istiyorsanız, hangi ön koşullara sahip olmanız gerekiyor?
PHP programlama dilinin temellerine ve nesne yönelimli programlama kavramlarına aşina olmanız gerekmektedir. Ayrıca, WordPress’in temel mekanizmaları olan Hook’lar (Kancalar), Filter’ler (Filtreler) ve Action’lar (Eylemler) konusunda net bir anlayışa sahip olmanız şarttır. Temel HTML, CSS ve JavaScript bilgileri, ön uç etkileşim özelliklerini geliştirmenize yardımcı olacaktır. WooCommerce’in temel veri yapılarını (siparişler, ürünler, kuponlar, kullanıcılar vb.) bilmek, geliştirme sürecini daha sorunsuz hale getirecektir.

InterServer Paylaşımlı Barındırma
Paylaşımlı hosting aylık $2.50 USD, ilk ay $0.1 USD promosyon kodu tryinterserver, 461 bulut uygulaması komut dosyası, tek tıklamayla yükleme.

Kendi özel eklentiminin WooCommerce’in gelecekteki sürümleriyle uyumlu olmasını nasıl sağlayabilirim?

Resmi geliştirme standartlarına ve en iyi uygulamalara uymak esastır. WooCommerce’in çekirdek dosyalarını doğrudan değiştirmekten kaçının; genişlemeleri her zaman resmi olarak sağlanan eklentiler (hook’lar) aracılığıyla yapın. Kodunuzda artık kullanılmayan (deprecated) fonksiyonlar veya yöntemler kullanmayın ve WooCommerce’in güncelleme kayıtlarını yakından takip edin. Eklentilerinizde test edilmiş en son WooCommerce sürüm numarasını belirtin. Eklentilerinizi iyi bir şekilde test edin, özellikle de WooCommerce büyük güncellemeler yayınlamadan önce ve sonra.

WooCommerce eklentisini satın almadan tüm API’lere erişebilir miyim?

Evet, WooCommerce’un çekirdek REST API’si kurulum sonrası varsayılan olarak etkinleştirilir ve siparişler, ürünler, müşteriler gibi temel veri modelleri için eksiksiz CRUD (Create, Read, Update, Delete) uç noktaları sağlar. Bu API’leri okuma ve yazma işlemleri için kullanabilirsiniz. Ancak, abonelik hizmetleri veya üyelik sistemleri gibi ücretli eklentiler tarafından sunulan belirli özellikler veya özelleştirilmiş uç noktalar, ilgili eklentilerin etkinleştirilmesinin ardından API aracılığıyla erişilebilir hale gelir. Çekirdek API’nin yetkileri, WordPress’in kullanıcı rolü ve yetki sistemi tarafından kontrol edilir.

WooCommerce eklentilerini giderirken kullanılabilecek bazı faydalı araçlar şunlardır:

Öncelikle, WordPress’ün hata ayıklama (debugging) modunun etkinleştirildiğinden emin olun. Yani…wp-config.phpAyarlar bölümünde…define(‘WP_DEBUG’, true);Hatalar ve uyarılar ekran üzerinde gösterilecek veya günlüğe kaydedilecektir. Ön uç JavaScript ve AJAX isteklerini incelemek ve hataları gidermek için tarayıcınızın geliştirici araçlarını (F12) kullanın. Kod mantığını takip etmek için “Query Monitor” gibi sorgu izleme eklentileri yükleyebilirsiniz; bu eklentiler veritabanı sorgularını, işlemlerin nasıl gerçekleştiğini ve performans sorunlarını analiz etmenize yardımcı olur. Karmaşık işlem akışları için, WooCommerce’un günlük dosyalarını kontrol etmek de çok önemlidir (bu dosyalar WordPress yönetim panelindeki “Durum” > “Günlükler” bölümünde bulunur).