2013-10-22 35 views
12

コードを使用してウォーコムの属性に値を追加するにはどうすればよいですか? 私は 'Dispatch time'(taxonomy:pa_dispatch)という属性を作成しましたが、今は特定の製品のDispatch属性に値を追加したいと思います。woocommerce:商品属性に値を追加

これはプログラムによってどのように行うのですか?

enter image description here

答えて

14

私は答えを見つけ、あなたは$のAPPENDがtrueまたはfalseすることができ、

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

、分類の対象の条件を設定するためにwp_set_object_termsを使用する必要がある、trueの場合、タグがに追加されます既存のタグ、falseの場合、タグは置き換えられます。私の例では

、ここで

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

は、pa_dispatchはウコマースの分類です。

+1

ありがとうございます。あなたのfunctions.phpのどこにこれを置いたのですか? $ object_idとは何ですか? – nicmare

+0

@nicmare値を変更したいところに置きますが、この文をfunctions.phpに直接入れると、ファイルが読み込まれるたびに関数が実行されます!また、$ object_idは製品のIDだけです。、その特定の製品のポストID。 – Rao

+0

もちろん私はsave_postフックでそれを起動します。私はそれを試してみましょう。ありがとう – nicmare

2

あなたは、属性に値を追加することはできません。製品変数を作成し、バリエーションを作成し、それに属性を割り当てる必要があります。このバリエーションでは、値を割り当てることができます。

Attributes Configuration

Variations Configuration

読み出しモード:

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

EDIT:

ここでは、改善された解決方法を示します。

functions.phpに下記の機能を追加してください。適切なフックで呼び出し、プロダクトIDと属性値を渡します。

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

} 

これは役に立ちます。

+0

いいえ、これは私が達成しようとしているものではありません、私はGUIを介して値を追加することができますが、私はPHPでこれをプログラムで行いたいです。 – Rao

+0

つまり、特定の製品の「発送日時」属性に「3営業日」の値をphp関数で追加したいとします。 – Rao

+1

製品ページにアクセスしたときにその属性を即座に追加したいのですか、これをすべての製品に一度に追加したいのですか? –

関連する問題