web-dev-qa-db-ja.com

woocommerce:商品属性に付加価値を与える

コードを介してwoocommerce属性に値を追加するにはどうすればよいですか? 'Dispatch time'(分類法:pa_dispatch)という属性を作成しましたが、特定の製品のDispatch属性に値を追加したいと思います。

これをプログラムで行う方法は?

enter image description here

13
Rao

答えが見つかりました。分類のオブジェクトの条件を設定するには、 wp_set_object_terms を使用する必要があります。

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

ここで、$ appendはtrueまたはfalseになります。trueの場合、タグは既存のタグに追加され、falseの場合、タグは置き換えられます。

私の例では、

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

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

14
Rao

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

Attributes Configuration

Variations Configuration

読み取りモード:

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

編集:

質問についてさらに明確にした後、ここに更新された解決策があります。

以下の関数を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);

}

お役に立てれば!

3
Sameer Joshi