1

簡単に言いましょう。

  1. データベースに色とサイズの属性を持つ製品があります
  2. 商品は全て可変商品です
  3. 各カラー、「Any」サイズごとにバリエーションを追加

次に、2XL と 3XL サイズ (商品は T シャツ) の各商品にさらに 2 つのバリエーションを追加し、価格を高くする関数をいくつか作成しました。

綺麗にバリエーションが追加されているのですが、フロントエンドで価格が上がったサイズを選択しても、商品編集ページに行って更新ボタンを押さないと価格が変わりません。そのサイズを選択すると、カートに追加される価格が変更されます。

商品ごとに更新ボタンを押さなくても、価格が上がったバリエーションをフロントエンドに反映させるにはどうすればよいでしょうか。

4

2 に答える 2

0

variable_product_sync()たぶん、各可変製品で実行する必要がありますか?

function so_run_once(){

    $variable_products = get_posts( array(
            'posts_per_page'=> -1,
            'post_type'     => 'product',
            'fields'        => 'ids',
            'post_status'   => 'publish',
            'tax_query' => array(
            array(
                'taxonomy' => 'product_type',
                'field'    => 'slug',
                'terms'    => 'variable',
            ),
        )
    ) );

    if( $variable_products ) foreach( $variable_products as $product_id ){
        $_product = wc_get_product( $product_id );
        $_product->variable_product_sync();
    }
}
add_action( 'admin_init', 'so_run_once' );
于 2014-12-07T22:57:06.120 に答える