2013-10-22 22 views
12

Kod aracılığıyla bir woocommerce özniteliğine nasıl değer eklerim? 'Gönderme zamanı' (taxonomy: pa_dispatch) adlı bir özellik oluşturdum ve şimdi belirli bir ürünün Gönderim özniteliğine değer eklemek istiyorum.woocommerce: bir ürün özelliğine değer ekleme

Programatik olarak nasıl yapılır?

enter image description here

cevap

14

, sen

wp_set_object_terms($object_id, $terms, $taxonomy, $append); 

yerlerde, $ ekleme doğruysa, etiket eklenecek true veya false olabilir, bir taksonomi nesnenin şartlarını ayarlamak için wp_set_object_terms kullanmak gerekir mevcut etiket, false ise etiket değiştirilir. Benim örnekte

, İşte
wp_set_object_terms($object_id, '2 Business Days', 'pa_dispatch' , false); 

, pa_dispatch woo-ticaret taksonomisi olduğunu.

+1

Teşekkürler. Buradaki işlevler nerede? ve $ object_id nedir? – nicmare

+0

@nicmare Değeri değiştirmek istediğiniz yere koyun, ancak bu ifadeyi doğrudan functions.php içine koyarsanız, işlev her dosya yüklendiğinde çalışır! Ayrıca, $ object_id, ürünün kimliğinden başka bir şey değildir, yani., belirli bir ürünün posta kimliği. – Rao

+0

tabiki de save_post kancası ile fırlatırım. bir deneyeceğim. – nicmare

2

Bir özelliği değer katmak olamaz. Ürün değişkenini oluşturmalı, bir varyasyon oluşturmalı ve onu öznitelikle atamalısınız. Şimdi bu varyasyonda bir değer atayabilirsiniz.

Attributes Configuration

Variations Configuration

Okuma modu:

  1. http://docs.woothemes.com/document/product-variations/
  2. http://www.youtube.com/watch?v=7PX8MWBOAeo

EDIT:

Soru hakkında daha fazla açıklama yaptıktan sonra, burada güncelleştirilmiş bir çözümdür.

Aşağıdaki işlevi işlevlerinize ekleyin. Uygun kancada arayın ve ürün kimliğini ve özellik değerlerini iletin.

function se19519561_set_attributes($post_id, $attributes) { 

    //Type attribute 
    $product_attributes['type'] = array(
     //Make sure the 'name' is same as you have the attribute 
     'name' => htmlspecialchars(stripslashes('Dispatch Time')), 
     'value' => $attributes, 
     'position' => 1, 
     'is_visible' => 1, 
     'is_variation' => 1, 
     'is_taxonomy' => 0 
    ); 

//Add as post meta 
update_post_meta($post_id, '_product_attributes', $product_attributes); 

} 

Bu yardımcı olur umarız!

Ben cevap buldu
+0

Hayır, bu benim elde etmeye çalıştığım şey değil, GUI aracılığıyla değeri ekleyebiliyorum, ancak bu program aracılığıyla php'de yapmak istiyorum. – Rao

+0

Yani, '3 iş günü' değerini php işleviyle belirli bir ürünün 'Sevk süresi' özelliğine eklemek istiyorum. – Rao

+1

Ürün sayfasına erişildiğinde niteliği anında mi eklemek istiyorsunuz yoksa bunu tüm ürünlere aynı anda eklemek mi istiyorsunuz? –

İlgili konular