Установите значение первого массива в атрибуты по умолчанию в Woocommerce - PullRequest
0 голосов
/ 24 декабря 2018

Я использую продукт вставки Woocommerce программно, используя свой собственный php, чтобы вставить вариант, я использую update_post_meta для вставки варианта:

// set variation
    $data = array (
        "ukuran" => "S,M,L,XL",
        "price" => 100000
    );

    if (isset($data['ukuran']) && count(explode(",", $data['ukuran'])) > 1){
        $attr_label = 'Ukuran';
        $attr_slug = sanitize_title($attr_label);

        $att_ukuran = str_replace(',', '|', $data['ukuran']);
        $attributes_array[$attr_slug] = array(
            'name' => $attr_label,
            'value' => $att_ukuran, // example : "a|b|c"
            'is_visible' => '1',
            'is_variation' => '1',
            'is_taxonomy' => '0' // for some reason, this is really important       
        );
        update_post_meta( $post_id, '_product_attributes', $attributes_array );

        $parent_id = $post_id;
        $variation = array(
            'post_title'   => $article_name . ' (variation)',
            'post_content' => '',
            'post_status'  => 'publish',
            'post_parent'  => $parent_id,
            'post_type'    => 'product_variation'
        );

        foreach(explode(",", $data['ukuran']) as $new_ukuran){
            $variation_id = wp_insert_post( $variation );
            update_post_meta( $variation_id, '_regular_price', $data['price'] );
            update_post_meta( $variation_id, '_price', $data['price'] );
            // update_post_meta( $variation_id, '_stock_qty', 10 );
            update_post_meta( $variation_id, 'attribute_' . $attr_slug, $new_ukuran );
            WC_Product_Variable::sync( $parent_id );
        }
    }

, но я хочу установить для него вариант по умолчанию, как я могусделай это ?Я пытаюсь

update_post_meta( $post_id, '_default_attributes', $attributes_array);

, но не работает, я пробую много раз, и мне не удалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...