向 Woocommerce 新增多個產品屬性
P粉124890778
P粉124890778 2024-03-26 17:12:46
0
2
472

我有一個表格可以將新書提交到我的 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粉124890778
P粉124890778

全部回覆(2)
P粉087074897

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

回到原來的問題。

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

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

P粉327903045

我在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);
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板