Hazırlık İşlemleri ve Ortam Kurulumu
İlk satır kodu yazmaya başlamadan önce, güvenli ve profesyonel bir geliştirme ortamı hazırlamanız gerekmektedir. Bu, sadece geliştirme verimliliğinizi artırmakla kalmaz, aynı zamanda eklenti geliştirme sürecinizin de stabil ve güvenilir olmasını sağlar.
Yerel geliştirme ortamını kurmak.
Yerel geliştirme ortamını eklenti geliştirmek için kullanmanızı şiddetle tavsiye ederiz. Bu, çevrimiçi web sitenizi etkilemeden deneyler yapmanıza ve hataları düzeltmenize olanak tanır. Ana tercih, şu araçların kullanılmasıdır:Local、XAMPP或MAMPEntegrasyon ortamlarını da içerir. Bu araçlar, PHP, MySQL ve web sunucusunu sizin için otomatik olarak yapılandıracaktır. Lütfen ortamınızın WooCommerce’un minimum gereksinimlerini karşıladığından emin olun: PHP sürümünüz 7.4 ve üzeri, MySQL sürümünüz 5.7 ve üzeri veya MariaDB 10.3 ve üzeri olmalıdır. Ortam hazır olduktan sonra, yepyeni bir WordPress kurun ve en yeni sürümdeki WooCommerce eklentisini etkinleştirin.
Eklenti temel dosyasını oluşturun.
Eklentiniz, bir ana dosyadan başlayacaktır. WordPress’te…wp-content/pluginsDizin içinde, örneğin “new_folder” adında yeni bir klasör oluşturun.my-custom-woocommerceBu klasör içinde, genellikle “mainPlugin.js” olarak adlandırılan bir ana eklenti dosyası oluşturun.my-custom-woocommerce.phpBu dosya, bir eklentinin giriş noktasıdır ve başlık kısmındaki yorumlar çok önemlidir; çünkü WordPress’e eklentinizin nasıl tanınacağını söylerler.
Tavsiye edilen okuma WordPress Eklenti Geliştirme: Sıfırdan Başlayarak Özel İşlevlere Sahip Eklentiler Oluşturma。
<?php
/**
* Plugin Name: My Custom WooCommerce Features
* Plugin URI: https://yourwebsite.com/
* Description: 为WooCommerce添加自定义功能,包括产品额外字段和结账流程优化。
* Version: 1.0.0
* Author: Your Name
* License: GPL v2 or later
* Text Domain: my-custom-wc
*/ Bu başlık yorumu, eklentinin WordPress arka plan yönetim arayüzünde nasıl görüntüleneceğini tanımlar. Lütfen bunu mutlaka dikkate alın.Text DomainBir benzersiz dize olarak ayarlayın; böylece sonraki uluslararası çeviri işlemleri için kullanılabilir.
WooCommerce’in temel genişletme (eklenti) mekanizmasını anlamak
WooCommerce’in güçlü yanı, yüksek derecede genişletilebilir yapısındadır ve bu özellik esas olarak Eylem Kancaları (Action Hooks), Filtre Kancaları (Filter Hooks) ve Şablon Yeniden Yazma (Template Rewriting) aracılığıyla sağlanır.
Eylem kancaları ve filtreleme kancalarını kullanmak
Kancalar (Hooks), WordPress ve WooCommerce eklentilerinin temel taşlarıdır. Eylem kancaları, belirli zaman noktalarında kendi kodunuzu “ekleyerek” belirli işlemleri gerçekleştirmenize olanak tanır. Örneğin, bir kullanıcı sipariş verdiğinde bunu kullanabilirsiniz.woocommerce_thankyouKancalar, özelleştirilmiş bildirimler göndermenizi sağlar. Filtreleme kancaları ise verileri “değiştirmenize” olanak tanır; yani veriler kullanılmadan veya görüntülenmeden önce değerlerini değiştirebilirsiniz. Örneğin, bunu şu şekilde kullanabilirsiniz:woocommerce_product_get_priceFiltreleme araçları, ürün fiyatlarını dinamik olarak ayarlayabilir.
Bir eylem veya filtre eklemenin temel sözdizimi şu şekildedir:
add_action( 'hook_name', 'your_callback_function', priority, accepted_args );
add_filter( 'hook_name', 'your_callback_function', priority, accepted_args ); You need tohook_nameBelirli bir kancayla değiştirin ve…your_callback_functionKendi tanımladığınız fonksiyon adıyla değiştirin.
Tavsiye edilen okuma Sıfırdan Başlayın: WordPress Eklenti Geliştirmenin Temel Adımlarını ve En İyi Uygulamalarını Öğrenin。
Şablon dosyasını yeniden yazın.
WooCommerce’ın ön yüz görünümünü (örneğin ürün sayfaları, sepet sayfaları) değiştirmeniz gerektiğinde, eklentinin temel şablon dosyalarını doğrudan değiştirmek yanlış bir uygulamadır; çünkü yapılan güncellemeler bu dosyaları siler. Doğru yöntem, şablonları yeniden yazmaktır. WooCommerce’in orijinal şablon dosyalarını…plugins/woocommerce/templates/Katalogu temanızın katalogu altına kopyalayın.your-theme/woocommerce/İlgili yolda bulunan dosyayı alın ve bu kopyayı değiştirin. WooCommerce, temadaki şablon dosyalarını öncelikli olarak yükleyecektir. Bu, özelleştirilmiş görünüm ve düzenlemeler için standart bir uygulamadır.
Özel işlev modülleri geliştirmek
Şimdi, eklenti geliştirmeyi iki yaygın ihtiyaç üzerinden uygulayalım: Ürüne özel alanlar eklemek ve ödeme sayfasını değiştirmek.
Ürüne yönetim alanları ekleyin.
Diyelim ki her ürün için bir “Üretici Numarası” alanı eklemek istiyorsunuz. Öncelikle, bu alanı arka plandaki ürün veri düzenleme sayfasında göstermeniz gerekiyor. Bunu şu şekilde yapabilirsiniz:woocommerce_product_options_general_product_dataEylemler, eylem kancaları (action hooks) aracılığıyla gerçekleştirilir.
add_action( 'woocommerce_product_options_general_product_data', 'add_custom_product_field' );
function add_custom_product_field() {
woocommerce_wp_text_input( array(
'id' => '_manufacturer_part_number',
'label' => __('制造商编号', 'my-custom-wc'),
'placeholder' => '例如:MPN-12345',
'desc_tip' => true,
'description' => __('产品的唯一制造商部件号。', 'my-custom-wc'),
) );
} Alanları ekledikten sonra, bunları kullanmanız gerekecek.woocommerce_process_product_metaKullanıcı tarafından girilen değerleri kaydetmek için bir “kancaya” (hook) ihtiyaç vardır.
add_action( 'woocommerce_process_product_meta', 'save_custom_product_field' );
function save_custom_product_field( $post_id ) {
$product = wc_get_product( $post_id );
$custom_field_value = isset( $_POST['_manufacturer_part_number'] ) ? sanitize_text_field( $_POST['_manufacturer_part_number'] ) : '';
$product->update_meta_data( '_manufacturer_part_number', $custom_field_value );
$product->save();
} Burada, WooCommerce’in CRUD (Create, Read, Update, Delete) işlemleri için gerekli nesnelerini kullandık.WC_Product)’ninupdate_meta_data和saveVerileri depolamak için kullanılan yöntemler, modern WooCommerce geliştirme süreçlerinde önerilen yaklaşımlardır.
Ön tarafta özel alanları göstermek
Verileri kaydettikten sonra, bu bilgileri ürün sayfasının ön yüzünde (frontend) göstermek isteyebilirsiniz. Bunu gerçekleştirmek için şu yöntemleri kullanabiliriz:woocommerce_product_additional_information_tab_title和woocommerce_product_additional_information_tab_contentFiltreleme işlevini içeren bu araçları, “Ek Bilgiler” sayfasına ekleyin.
Tavsiye edilen okuma WordPress Eklenti Geliştirme Kılavuzu: Başlangıçtan Uzmanlığa Kadar – İşlevsel Eklentiler Oluşturma。
add_filter( 'woocommerce_product_additional_information_tab_title', 'add_custom_field_to_tab_title' );
function add_custom_field_to_tab_title( $title ) {
// 这里可以修改标签页标题,但我们主要用它来确保内容被加载
return $title;
}
add_action( 'woocommerce_product_additional_information_tab_content', 'display_custom_field_on_product_page' );
function display_custom_field_on_product_page() {
global $product;
$mpn = $product->get_meta( '_manufacturer_part_number' );
if ( $mpn ) {
echo '<p><strong>' . esc_html__( '制造商编号:', 'my-custom-wc' ) . '</strong> '`. esc_html($mpn).`'</p>';
}
} Özelleştirilmiş ödeme süreci
Bir diğer yaygın ihtiyaç, ödeme sayfasına “Bültenlere abone olmak ister misiniz?” gibi özelleştirilebilir bir onay kutusu eklemektir. Bunu yapmak için şu yöntemleri kullanabiliriz:woocommerce_review_order_before_submitBu alanı, gönderim butonundan önce ekle.
add_action( 'woocommerce_review_order_before_submit', 'add_checkout_custom_checkbox' );
function add_checkout_custom_checkbox() {
woocommerce_form_field( 'subscribe_to_newsletter', array(
'type' => 'checkbox',
'class' => array('form-row-wide'),
'label' => __('是的,我希望订阅产品新闻和优惠信息。', 'my-custom-wc'),
), false );
} Daha sonra, bu alanı doğrulamamız ve işlememiz gerekiyor. Kullanmak için…woocommerce_checkout_processKancaları doğrulama için kullanın.woocommerce_checkout_update_order_metaKancalar, verileri siparişe kaydeder.
add_action( 'woocommerce_checkout_process', 'validate_custom_checkout_field' );
function validate_custom_checkout_field() {
// 这里可以根据业务逻辑添加验证,例如在某些条件下必须勾选
// if ( ! $_POST['subscribe_to_newsletter'] ) {
// wc_add_notice( __( '请勾选订阅框以继续。', 'my-custom-wc' ), 'error' );
// }
}
add_action( 'woocommerce_checkout_update_order_meta', 'save_custom_checkout_field' );
function save_custom_checkout_field( $order_id ) {
$value = isset( $_POST['subscribe_to_newsletter'] ) && $_POST['subscribe_to_newsletter'] ? 'yes' : 'no';
update_post_meta( $order_id, '_subscribe_to_newsletter', sanitize_text_field( $value ) );
} Eklenti testi, optimizasyonu ve yayınlama
Geliştirme işlemi tamamlandıktan sonra, kapsamlı testler çok önemlidir; çünkü bu testler eklentinin stabilitesini ve profesyonelliğini garanti eder.
Kapsamlı bir işlevsellik testi yapın.
Gerçek kullanıcı senaryolarını simüle ederek test yapmanız gerekiyor. Bir test siparişi oluşturun ve eklediğiniz alanların (örneğin üretici numarası) ön uç ürün sayfasında doğru bir şekilde görüntülendiğinden emin olun. Ayrıca, ödeme sırasında seçilen onay kutularının sipariş verilerine doğru bir şekilde kaydedildiğinden emin olun. WordPress arka uçtaki sipariş detayları sayfasında kaydedilen özel bilgileri görebilmelisiniz. Aynı zamanda, mevcut WooCommerce özellikleriyle, diğer popüler eklentilerle (örneğin ödeme ağ geçitleri, kargo hesaplama araçları) ve farklı WordPress temalarıyla uyumluluğu da mutlaka test edin. Farklı cihazlarda (telefon, tablet, masaüstü bilgisayar) responsif testler yapmak da çok önemli bir adımdır.
Performans Optimizasyonu ve Güvenlik Önlemleri
Performans açısından, kodunuzun yalnızca gerekli olduğunda yüklendiğinden emin olun. Örneğin, yönetim arayüzü için yazılan kod yalnızca ilgili işlemler gerçekleştirildiğinde yüklenmelidir.is_admin()Şartlara bağlı olarak yüklenir; ön uçla ilgili kodlar ise bunun tersidir. Sık sık gerçekleştirilebilecek veritabanı sorguları için önbellek kullanmayı veya sorguların optimize edildiğinden emin olmayı düşünün. Güvenlik en önemli husustur: Tüm kullanıcı girdileri mutlaka temizlenmeli ve doğrulanmalıdır. WordPress ve WooCommerce tarafından sağlanan fonksiyonları kullanın.sanitize_text_field(), esc_html(), wc_clean()vb. vb. vb. Herhangi bir dinamik veriyi ön uca gönderirken, çapraz sitelik betik saldırılarını (XSS saldırılarını) önlemek için verilerin kodlanması (ekstraksiyonu) gereklidir.
Nihai sürümü yayınlamaya hazırlanıyoruz.
Yayınlamadan önce, kodunuzun WordPress kodlama standartlarına uygun olduğundan emin olun. Bunu yapmak için %s, %1$s, {{var}}, :name gibi yer tutucuları ve URL’leri içeren araçlar kullanın.PHP_CodeSnifferWordPress’un standart kurallar setiyle kontrol edin. İşlemlerinizi geliştirin.readme.txtDosyada, eklentinin işlevleri, kurulum adımları, sık karşılaşılan sorunlar ve kullanım ekran görüntüleri ayrıntılı bir şekilde açıklanmıştır. Eklentinizi resmi WordPress eklenti dizinine göndermeyi düşünebilirsiniz; bu, eklentinin görünürlüğünü ve güvenilirliğini büyük ölçüde artıracaktır. Göndermeden önce, kodunuzu son kez incelediğinizden ve gelecekte sürekli güncellemeler sunmaya ve destek sağlamaya hazır olduğunuzdan emin olun.
Özetle.
WooCommerce eklenti geliştirme, belirli iş ihtiyaçlarını güçlü e-ticaret özelliklerine dönüştürme sürecidir. Eklenti mekanizmalarını – yani “hook’ları” (bağlantı noktalarını), şablon yeniden yazımını ve CRUD (Create, Read, Update, Delete) işlemlerini – sistematik bir şekilde öğrenerek, geliştiriciler ürün yönetiminden ödeme sürecine kadar her aşamayı güvenli ve verimli bir şekilde özelleştirebilirler. Başarının anahtarı, en iyi uygulamalara uymaktır: Güvenli bir yerel ortamda geliştirme yapmak, sürdürülebilir ve güvenli kod yazmak, kapsamlı senaryo bazlı testler gerçekleştirmek ve son olarak potansiyel kullanıcılara açık, profesyonel dokümantasyon sağlamaktır. Bu temel becerileri öğrendiğinizde, sadece ihtiyaçları karşılayan değil, aynı zamanda stabil, profesyonel ve genişletilebilir WooCommerce eklentileri de geliştirebilir ve böylece web sitenizin rekabet gücünü artırabilirsiniz.
Sıkça Sorulan Sorular.
WooCommerce eklentisi geliştirmek için hangi ön koşul bilgilerine ihtiyaç vardır?
PHP programlama diline dair temel bilgilere sahip olmanız gerekmektedir ve nesne yönelimli programlama kavramlarına aşina olmanız önemlidir. Ayrıca, WordPress’in temel yapısına (örneğin eklentiler, kısa kodlar, özel makale türleri) hakim olmanız şarttır. HTML, CSS ve temel JavaScript (özellikle jQuery) bilgileri, ön uç arayüzlerin özelleştirilmesinde size yardımcı olacaktır.
İhtiyacım olan belirli bir WooCommerce eklentisini (hook) nasıl bulabilirim?
WooCommerce’in resmi geliştirici dokümantasyonu, eklentilerde kullanılan “hook” (düğüm) mekanizmalarını bulmak için en iyi başlangıç noktasıdır; bu dokümantasyonda hook’ların ayrıntılı bir dizini bulunmaktadır. Ayrıca, WooCommerce eklentilerinin kaynak kodlarında doğrudan arama yapabilirsiniz.do_action和apply_filtersMevcut tüm eklentileri (hook’ları) keşfetmek için çeşitli kaynaklara başvurabilirsiniz. Birçok geliştirici topluluğu ve blog da sık kullanılan WooCommerce eklentilerinin listelerini hazırlamıştır; bunlar hızlı bir referans olarak kullanılabilir.
Eklenti dosyasını değiştirdim, peki neden web sitesinde herhangi bir değişiklik göremiyorum?
Bu durum genellikle önbellek nedeniyle olur. Lütfen aşağıdaki önbellekleri sırasıyla kontrol edip temizleyin: WordPress nesne önbelleği (eğer Redis veya Memcached gibi bir araç kullanıyorsanız), sayfa önbellekleme eklentileri (örneğin W3 Total Cache, WP Rocket), sunucu tarafı önbelleği (örneğin OPcache) ve tarayıcınızın önbelleği. Geliştirme sürecinde, kod değişikliklerinin hemen etkili olmasını sağlamak için tüm önbellek mekanizmalarını devre dışı bırakmanız önerilir.
Özel eklentimin gelecekteki WooCommerce güncellemeleriyle uyumlu olmasını nasıl sağlayabilirim?
WooCommerce’in çekirdek dosyalarını değiştirmekten kaçınmak en önemli kuraldır. Geliştirme işlemlerinizde resmi olarak sağlanan eklentileri (hook’lar), API’leri ve şablon yeniden yazma mekanizmalarını kullanmaya özen gösterin. WooCommerce’in güncelleme kayıtlarını yakından takip edin; özellikle “değerlendirme dışı bırakma bildirimlerine” dikkat edin. Bu bildirimler, gelecekteki sürümlerde hangi fonksiyonların veya metodların kaldırılacağını önceden size bildirir. Düzenli olarak test ortamında WooCommerce’in Beta sürümlerini kullanarak uyumluluk testleri yapın; bu sayede sorunları önceden tespit edebilirsiniz.
WooCommerce eklentileri aracılığıyla özel veritabanı tabloları oluşturulabilir mi?
Olabilir, ancak genellikle tercih edilen bir çözüm değildir. WooCommerce ve WordPress, güçlü meta veri depolama sistemleri sunar.wp_postmeta, wp_usermeta, wp_commentmetaBu, çoğu genişletme ihtiyacı için yeterlidir. Yalnızca, verilerin çok yapılandırılmış olması, karmaşık sorguların yapılması ve veri miktarının çok büyük olması gerektiği durumlarda özel tablolar oluşturulması düşünülmelidir. Eğer mutlaka bir özel tablo oluşturmanız gerekiyorsa, lütfen bunu dikkatli bir şekilde yapın.dbDelta()Bu fonksiyon, tablo yapısının güvenli bir şekilde oluşturulmasını ve güncellenmesini sağlar.
Bir sonraki adım, bundan sonra ne yapmalıyım?
Daha fazla okuma ve pratik bilgiler.
Aşağıdaki içerikler bu makalenin konusuyla ilgilidir ve daha fazla okumak için uygundur. Öncelikle mevcut sorununuza en yakın makaleden başlayın, sonra çevresel konulara doğru ilerleyin, genellikle daha iyi sonuçlar alırsınız.
- WordPress Eklenti Geliştirme Kılavuzu: Sıfırdan Başlayarak İlk Özel Eklentinizi Oluşturun
- WordPress alt teması nedir?
- Sıfırdan Başlayın: Modern WordPress Tema Geliştirme Sürecinin Tamamı ve En İyi Uygulamaları
- WordPress Eklenti Geliştirme Kılavuzu: Başlangıçtan Uzmanlığa Kadar Profesyonel Eklentiler Oluşturma
- WordPress Verimli Geliştirme İleri Seviye Eğitimi: Tema Özelleştirmeden Performans Optimizasyonuna Kadar Kapsamlı Rehber