2

だから私はこの配列を持っています(例を挙げると、動的に構築されます):

$v_values = array(
              array("C1","C2"),
              array("F1","F2")
            );

$v_name = array("color","fabric");

$v_price = array(
             array(1000,2000),
             array(3000,4000)
           );

バリエーションのある製品を作成したいので、これがコードです。

    for($i = 0; $i < count($v_name); $i++) {
        for($j = 0; $j < count($v_values[$i]); $j++) {

            $var_post = array(
                            'post_title'   => $ins["title"],
                            'post_content' => $ins["desc"] ,
                            'post_status'  => ($user->roles[0] === "pending_vendor") ? 'pending' : 'publish',
                            'post_parent' => $post_id,
                            'post_type' => 'product_variation',
                        );

            // Insert the post into the database
            $var_post_id = wp_insert_post( $var_post );

            update_post_meta($var_post_id, 'attribute_' . $v_name[$i], $v_values[$i][$j]);
            update_post_meta($var_post_id, '_price', $v_price[$i][$j]);
            update_post_meta($var_post_id, '_regular_price', (string) $v_price[$i][$j]);

            for($k = 0; $k < count($v_name); $k++) {
                if($i !== $k) {
                    for($l = 0; $l < count($v_values[$k]); $l++) {
                        update_post_meta($var_post_id, 'attribute_' . $v_name[$k], $v_values[$k][$l]);
                        update_post_meta($var_post_id, '_price', $v_price[$k][$l]);
                        update_post_meta($var_post_id, '_regular_price', (string) $v_price[$k][$l]);
                    }
                }
            }

        }
    }

$ins変数が定義されており$post_id、それが親投稿であると仮定します。

問題:

上記のコードは、次のバリエーションを作成します。

| C1 | F2 |
 ---------
| C2 | F2 |
 ---------
| C2 | F1 |
 ---------
| C2 | F2 |

予想されたこと:

| C1 | F1 |
 ---------
| C1 | F2 |
 ---------
| C2 | F1 |
 ---------
| C2 | F2 |

方法がわかりません、助けてください!

4

0 に答える 0