首頁  >  問答  >  主體

向 Woocommerce 新增多個產品屬性

我有一個表格可以將新書提交到我的 WooCommerce 網站。我以前只是將書的狀況保存為產品屬性。 <​​/p>

// Set the book's condition

$condition = $_POST['condition'];
wp_set_object_terms( $product_id, $condition, 'pa_condition', true );

$att_condition = Array('pa_condition' =>Array(
       'name'=>'pa_condition',
       'value'=>$condition,
       'is_visible' => '1',
       'is_taxonomy' => '1'
     ));

update_post_meta( $product_id, '_product_attributes', $att_condition);

這很容易。現在我嘗試新增圖書作者的姓名和類型,但是當我複製程式碼時,它只設定最後一個產品屬性。我知道我可能應該把它放在一個循環中,但�%

P粉124890778P粉124890778230 天前426

全部回覆(2)我來回復

  • P粉087074897

    P粉0870748972024-03-27 13:25:50

    很高興您找到了解決方案。但是,原始問題的問題尚未得到解答,並且您的解決方案中存在一個簡單的錯誤,應該予以改進。

    回到原來的問題。

    您的原始程式碼存在多個問題。

    1. 您的程式碼中的變數命名和使用包含錯誤。第二次�%8

      回覆
      0
  • P粉327903045

    P粉3279030452024-03-27 10:23:39

    我在https://stackoverflow.com/a/45475863/12092133上找到了解決方案。

    我將表單變數放入陣列中,然後執行這個 foreach 就成功了。

    $my_product_attributes['condition'] = $_POST['condition'];
    $my_product_attributes['genre'] = $_POST['genre'];
    $my_product_attributes['authors'] = $_POST['author'];
    
    foreach ($my_product_attributes as $key => $value) {
        $key = 'pa_' . $key;
        $attribute_values = explode(",", $value);
    
        wp_set_object_terms($product_id, $attribute_values, $key, false);
        $thedata[sanitize_title($key)] = Array(
            'name' => wc_clean($key),
            'value' => $attribute_values,
            'postion' => '0',
            'is_visible' => '1',
            'is_variation' => '0',
            'is_taxonomy' => '1'
        );
        update_post_meta($product_id, '_product_attributes', $thedata);
    }

    回覆
    0
  • 取消回覆