Programlı Olarak Özel WooCommerce Ürün Türü Nasıl Oluşturulur

Yayınlanan: 2023-01-03

Karmaşık bir WooCommerce mağazası oluştururken, belirli sorunlara kendi çözümlerinizi oluşturmanız gerekebilir. Bu sorunlardan biri, belirli WooCommerce ürün türlerinin olmamasıdır. Bu nedenle, QuadLayers olarak size web siteniz için Özel WooCommerce Ürün türü Oluşturma kılavuzumuzu getirdik.

Ürün türlerinizi nasıl tanımlayabileceğinizi, onlar için belirli seçenekleri ve fiyatları nasıl etkinleştirebileceğinizi ve çok daha fazlasını inceleyeceğiz. Ama önce, WooCommerce ürün türlerine ve özel ürün türlerinin neler yapabileceğine bakalım.

Neden WooCommerce'de Özel Ürün Türü Eklemelisiniz?

Varsayılan olarak, WooCommerce dört benzersiz ürün türüne sahiptir. Bunlar:

  • basit ürün
  • değişken ürün
  • Harici/Bağlı Kuruluş
  • İndirilebilir Ürün

Elbette, harici WooCommerce eklentileriyle Abonelik ürünleri, Ayrılabilir ürünler, Üyelikler ve daha fazlası gibi daha fazla ürün türü ekleyebilirsiniz.

Peki ya bu spesifik tiplerin dışında bir ürün tipi oluşturmak isteseydiniz? Varsayılan WooCommerce ürün türlerinin yerine getiremeyeceği belirli gereksinimleriniz varsa veya üçüncü taraf bir eklenti kullanmadan üyelik veya açık artırma ürünleri gibi özel bir ürün türü oluşturmak istiyorsanız, biraz kullanarak özel bir ürün türü oluşturabilirsiniz. kodlama

Özel bir ürün türü kullanmak, ürün türüne farklı, benzersiz ayarlar eklemek anlamına gelir. Örneğin, belirli bir değişken ürün türü istiyorsanız ve bunun için farklı görünürlük veya fiyatlandırma ayarları eklerseniz, bunu özel bir ürün türü kullanarak yapabilirsiniz. Ayrıca, benzersiz olan tek bir ürün çeşidi için belirli bir ürün tipi tanımlayabilir ve sadece isterseniz ürün tipi ayarlarını değiştirebilirsiniz.

İhtiyaçlarınız ne olursa olsun, özel ürün tipinize sahip olmak, web sitenizde sattığınız ürünleri özelleştirirken ve tanımlarken size daha fazla esneklik sağlar.

Özel Bir WooCommerce Ürün Türü Nasıl Oluşturulur?

Bir WooCommerce ürün türü oluşturma süreci oldukça basittir ancak bir düzeyde kodlama gerektirir. Bu makaleye devam etmek istiyorsanız, müşterilerimize özel WordPress eklentileri oluşturma ve bunlara kod ekleme hakkında biraz daha bilgi edinmelerini öneririz.

WordPress eklentilerinizi web sitenizin dizininde oluşturmanın temellerini anladıktan sonra, devam edin ve WP kurulum dizininizi açın, wp-content/ plugins'i açın ve ' QuadLayers_custom-product-type ' klasörünü oluşturun. Demomuz için localhost dizinimizi kullanacağız.

Özel WooCommerce ürün türü için klasörler oluşturun

Bundan sonra, ' Quadlayers_custom-product-type.php ' adlı bir dosya oluşturun. Bu, eklentinizin geri kalan özellikleri için bir kapı görevi gören ana dosyanızdır.

Bu dosyayı açın ve aşağıdaki kod satırlarını dosyaya yapıştırın:

 <?php

/**
* Eklenti Adı: Quadlayers Özel Ürün Tipi
* Açıklama: Özel WooCommerce ürün türü oluşturmaya ilişkin Quadlayers kılavuzunun kodu
*/

if ( ! tanımlı( 'ABSPATH' ) ) {
geri dönmek;
} 

eklentinin ana dosyasına kod ekleme

Bu kod grubu, bir eklenti adı ve açıklaması ekleyerek eklentinizi tanımlar. Bu dosyanın çalışması için daha fazla kod eklememiz gerektiğinden şimdilik bu kadarı yeterli. Şimdi, yeni oluşturduğunuz eklentiyi etkinleştirmeniz gerekiyor. Eğitim için eklentiyi aktif tutacağız ve ilerledikçe daha fazla kod ekleyeceğiz.

Öyleyse devam edin ve WP Admin Dashboard'unuzu açın ve Eklentiler'e tıklayın. Burada, Quadlayers Custom Product Type adlı yeni bir eklenti görmelisiniz. Devam edin ve etkinleştirin ve öğreticinin bir sonraki adımına geçin.

özel woocommerce ürün türü eklentisini etkinleştir

Özel WooCommerce Ürün Türünü Kaydedin

Ardından, özel ürün türümüzü tanımlamak ve onu bir WooCommerce ürün türü olarak kaydetmek için bir işlev oluşturacağız. Bunun için eklentinizin ana dosyasına şu kodu ekleyin:

 add_action('init', 'register_demo_product_type');
işlev register_demo_product_type() {
sınıf WC_Product_Demo, WC_Product'ı genişletir {

genel işlev __construct( $product ) {
$this->product_type = 'demo';
ebeveyn::__construct( $ürün );
}
}
}

Bu, demo adlı özel bir ürün türünü kaydedecektir. Ürün türünün adını değiştirmek istiyorsanız, metni $this->product_type = 'demo';

Özel WooCommerce Ürünü seçeneği ekleyin.

Bunun ardından Product type Drop Down listesine özel ürün tipini eklememiz gerekiyor. Bu, WP Admin Dashboard'unuzda bir ürün oluşturduğunuzda veya düzenlediğinizde ürün türünüzü seçilebilir hale getirir. Bu kodu eklentinizin ana dosyasına ekleyin ve Ürün Türü listenizde yeni bir seçenek görmelisiniz.

 add_filter('product_type_selector', 'add_demo_product_type');
işlev add_demo_product_type($tipler){
$types[ 'demo' ] = __( 'Demo ürün', 'dm_product' );
$türlerini döndür; 
}

Bu kod, $types['demo'] = __('Custom Product Type') satırını kullanarak özel ürün türünüzü Ürün verileri açılır listesine ekleyecektir. Metni Özel Ürün Türü'nden Demo Ürün, Özel sipariş, Hediye kartı vb. herhangi bir şeye değiştirebilirsiniz.

Şimdi, WP Admin Dashboard'unuzu açın ve yeni bir ürün oluşturun. Ürün Türü açılır menüsünün altında ' Demo Ürün ' adlı yeni bir seçenek görmelisiniz.

yeni bir ürün oluştururken özel ürün tipini seçin

Özel Ürün Türü Sekmesi Ekleme

Aşağıdaki işlev, özel ürün türünüz için yeni bir ayarlar sekmesi oluşturacaktır. Bu şekilde, Ürün türünüze diğer ürün türleriyle paylaşılmayan belirli ayrıntılar ekleyebilirsiniz.

Özel Ürün Ayrıntıları sekmesi oluşturmak için bu işlevi yapıştırın:

 add_filter('woocommerce_product_data_tabs', 'demo_product_tab');
işlev demo_product_tab( $tabs) {

$tabs['demo'] = dizi(
'etiket' => __( 'Demo Ürün', 'dm_product' ),
'target' => 'demo_product_options',
'sınıf' => 'show_if_demo_product',
);
$ sekmelerini döndür;
}
}

Yukarıda kendi product_type'ınızı tanımladıysanız $tabs['demo'] = array demo' yerine product_type kimliğinizi kullanmayı unutmayın.

Kullandığımız dizideki üç parametre şunlardır:

etiket: Bu, özel ürün sekmenizin adını tanımlar.
hedef: Bu, sekmeye ayarlar eklemek için kullanacağımız bir tanımlayıcı ayarlar.
class: Bu, özel ürün sekmesinin ne zaman gösterileceğini kontrol etmenizi sağlar.

Burada class parametresinde show_if_Demo_product kullandık, bu da bu sekmenin yalnızca özel ürün türünüz seçildiğinde gösterileceği anlamına gelir.

Özel ürün türü için özel sekme

Özel Ürün Tipi Sekme Alanları Ekleme

Ardından, özel ürün türünüz için fiyatları ve çeşitli seçenekleri ayarlayabilmeniz için sekmemize bazı ayarlar ve alanlar ekleyelim. Bunun için eklentinizin ana dosyasına şu kodu ekleyin:

 add_action('woocommerce_product_data_panels', 'QL_custom_product_options_product_tab_content');

işlev QL_custom_product_options_product_tab_content() {
// Ürün sekmenizin hedefi ile div'deki kimliği değiştirmeyi unutmayın
?><div class='panel woocommerce_options_panel'><?php
?><div class='options_group'><?php

woocommerce_wp_checkbox(dizi(
'id' => '_enable_custom_product',
'label' => __( 'Özel ürün Tipini Etkinleştir'),
) );

woocommerce_wp_text_input(
dizi(
'id' => 'demo_product_info',
'label' => __( 'Özel Ürün detayları', 'dm_product' ),
'yer tutucu' => '',
'desc_tip' => 'doğru',
'description' => __( 'Demo ürün ayrıntılarını girin.', 'dm_product' ),
'tür' => 'metin'
)
);


?></div>
</div><?php
}

Bu, özel ürün tipini etkinleştirmek için bir onay kutusu seçeneği ve ürün için özel bir metin alanı ekleyecektir. Elbette, açılır liste için woocommerce_wp_select(), metin alanı için woocommerce_wp_textarea_input() ve çok daha fazlası gibi diğer WooCommerce işlevlerini kullanarak daha fazla ayar ekleyebilirsiniz.

Ancak demomuz için, yöneticilerin arka uçtan özelleştirebileceği özel ürünle ilgili yalnızca basit metin bilgileri göstereceğiz.

özel ürün musluk tipi için özel seçenekler

Bu işlevler ve bunların nasıl kullanılacağı hakkında daha fazla bilgiyi buradan edinebilirsiniz.

Özel WooCommerce Ürün Türü Sekme Alanlarını Kaydetme

Artık ürün tipi ayarlarımızı oluşturduğumuza göre, onları veri tabanımıza kaydetmemiz gerekiyor. Bu, woocommerce_process_product_meta kancası kullanılarak yapılır. Bunun için şu kod satırlarını kullanacağız:

 add_action('woocommerce_process_product_meta', 'save_demo_product_settings');

işlev save_demo_product_settings($post_id){

$demo_product_info = $_POST['demo_product_info'];

if( !empty( $demo_product_info ) ) {
update_post_meta($post_id, 'demo_product_info', esc_attr($demo_product_info) );
}
}

Bu kodu eklentinizin ana dosyasına eklediğinizde, bir ürünü güncellerken veya yayınlarken özel ürün türü ayarlarınızı kaydedebileceksiniz.

özel ürün sekmesi türü için kaydedilmiş ürün ayarları

Ancak, bu kodlar yalnızca arka uç içindir ve biz WooCommerce'in kullanması için bir şablon tanımlayana kadar ürününüzün ön ucunda görünecektir. Bunun için, özel ürün türümüzün içeriğini görüntülemek için eğitimimizin bir sonraki adımını kullanacağız.

Özel Ürün Türü İçin İçerik Ekleyin

Web siteniz için özel ürün türünü oluşturdunuz, ancak ürün türünün ne tür içeriğe sahip olmasını istediğinizi de WooCommerce'e belirtmeniz gerekiyor. Bunun için Özel Ürün Detayları sekmesine eklediğimiz ürün bilgilerini eklemek için woocommerce_single_product_summary kancasını kullanacağız.

 add_action('woocommerce_single_product_summary', 'demo_product_front');

işlev demo_product_front () {
küresel $ürün;
if ( 'demo' == $product->get_type() ) { 
echo( get_post_meta( $product->get_id(), 'demo_product_info' )[0] );
}
}

Ürün tipi kimliğinizin yukarıda belirttiğimiz gibi if ('demo' == $product->get_type() koduyla eşleştiğinden emin olun. Bu kodu kaydettikten sonra ön tarafta özel ürün ayrıntılarınızı göreceksiniz.

Tam Kod Parçacığı

Size kolaylık sağlamak için, farklı kodları tek bir sette birleştirdik, böylece eklentinizin ana dosyasına yapıştırabilir ve gerekirse düzenleyebilirsiniz.

 <?php
/**
* Eklenti Adı: QuadLayers Özel ürün tipi
* Açıklama: WooCommerce'e özel ürün türü eklemek için eklenti
* Yazar: QuadLayers
* Yazar URI'si: https://www.quadlayers.com
* Sürüm: 1.0
*/


tanımlı( 'ABSPATH' ) veya çıkış;

add_action('init', 'register_demo_product_type');
işlev register_demo_product_type() {
sınıf WC_Product_Demo, WC_Product'ı genişletir {

genel işlev __construct( $product ) {
$this->product_type = 'demo';
ebeveyn::__construct( $ürün );
}
}
}


add_filter('product_type_selector', 'add_demo_product_type');
işlev add_demo_product_type($tipler){
$types[ 'demo' ] = __( 'Demo ürün', 'dm_product' );
$türlerini döndür; 
}


add_filter('woocommerce_product_data_tabs', 'demo_product_tab');
işlev demo_product_tab( $tabs) {

$tabs['demo'] = dizi(
'etiket' => __( 'Demo Ürün', 'dm_product' ),
'target' => 'demo_product_options',
'sınıf' => 'show_if_demo_product',
);
$ sekmelerini döndür;
}


add_action('woocommerce_product_data_panels', 'demo_product_tab_product_tab_content');
işlev demo_product_tab_product_tab_content() {
?><div class='panel woocommerce_options_panel'><?php
?><div class='options_group'><?php


woocommerce_wp_checkbox(dizi(
'id' => '_enable_custom_product',
'label' => __( 'Özel ürün Tipini Etkinleştir'),
) );


woocommerce_wp_text_input(
dizi(
'id' => 'demo_product_info',
'label' => __( 'Demo ürün detayları', 'dm_product' ),
'placeholder' => 'Ön uçta gösterilecek metni buraya girin',
'desc_tip' => 'doğru',
'description' => __( 'Demo ürün Bilgisini Girin.', 'dm_product' ),
'tür' => 'metin'
)
);
?></div>
</div><?php
}

add_action('woocommerce_process_product_meta', 'save_demo_product_settings');

işlev save_demo_product_settings($post_id){

$enable_custom_product = isset( $_POST['_enable_custom_product'] ) ? 'Evet Hayır';
update_post_meta($post_id, '_enable_custom_product', $enable_custom_product );
$demo_product_info = $_POST['demo_product_info'];

if( !empty( $demo_product_info ) ) {
update_post_meta($post_id, 'demo_product_info', esc_attr($demo_product_info) );
}
}


add_action('woocommerce_single_product_summary', 'demo_product_front');

işlev demo_product_front () {
küresel $ürün;
if ( 'demo' == $product->get_type() ) { 
echo( get_post_meta( $product->get_id(), 'demo_product_info' )[0] );
}
}

Elbette, bu eğitimde gösterdiğimiz tüm adımlar oldukça basit ve özel ürün türünüze daha fazla alan, ayar ve içerik eklemeyi deneyebilirsiniz ve denemelisiniz. Ayrıca, görebileceğiniz gibi, bu eğitim biraz programlama ağırlıklı. Dolayısıyla, WordPress'te veya kodlamada yeniyseniz, yorumlar bölümünde her zaman yardımımızı isteyebilirsiniz. Ayrıca, işleri oldukça farklı bir şekilde yapabilir ve tüm bu kodları web sitenize eklemek için temanızın functions.php dosyasını kullanabilirsiniz.

Bu, bir WordPress eklentisi oluşturma adımını atlayacaktır, ancak temanızı değiştirirseniz veya güncellerseniz (bir alt tema kullanmıyorsanız) değişikliklerinizin kaybolacağını unutmayın. Bu yöntem için bir eklenti kullanmanızı şiddetle tavsiye ederiz, ancak isterseniz functions.php dosyasını kullanmak için bunu yapabilirsiniz.

functions.php dosyasında değişiklik yapmadan önce her zaman WordPress sitenizin tam yedeğini almayı unutmayın. Bu şekilde, bir şeylerin ters gitmesi durumunda her zaman çalışan sürüme geri dönebilirsiniz.

Görünüm > Tema Dosyası Düzenleyici'ye tıklayın ve sağ Tema dosyaları kenar çubuğundaki Tema işlevlerine veya işlevler.php'ye tıklayın.

işlevler dosyasını kullanmak için tema dosyası düzenleyicisini açma

Ardından, yukarıdaki kodları düzenleyiciye yapıştırabilir ve bitirmek için Dosyayı Güncelle'ye tıklayabilirsiniz.

tema işlevleri dosyasına kodlar ekleme

Çözüm

Bu, programlı olarak özel bir WooCommerce ürün türü oluşturmak için gereken tüm adımları sonlandırır. Özel ürün türünüzü oluşturmak için gereken tüm adımları hızlı bir şekilde özetleyelim:

  • Özel WooCommerce Ürün Türünüz için eklentiyi oluşturun ve etkinleştirin.
  • Yeni ürün türünüzü kaydedin.
  • Tek ürünler sayfası için özel ürün türünüz için bir sekme ekleyin.
  • Ürün sekmenize alanlar ve ayarlar ekleyin.
  • Ürün sekmenizdeki alanları ve ayarları kaydedin.
  • Ürün sekmesi içeriğinizi ön uçta görüntüleyin.

Son olarak, size kolaylık sağlamak için, size tam kodu sağlamak için tüm farklı kod parçalarını birleştirdik. Böylece, kodun tamamını ana dosyanıza kopyalayabilir ve gerekli değişiklikleri yapabilirsiniz.

Bu makaleyi faydalı bulacağınızı umuyoruz. Çeşitli WooCommerce ayarlarını ve ürün seçeneklerini ayarlama hakkında daha fazla bilgi edinmek istiyorsanız, neden diğer makalelerimizden bazılarına göz atmıyorsunuz:

  • WooCommerce Toplu İndirimleri Nasıl Kurulur?
  • Programlı olarak WordPress kullanıcısı nasıl oluşturulur?
  • Programlı Olarak WordPress Özel Alanı Oluşturma