我有一個表格可以將新書提交到我的 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粉0870748972024-03-27 13:25:50
很高興您找到了解決方案。但是,原始問題的問題尚未得到解答,並且您的解決方案中存在一個簡單的錯誤,應該予以改進。
回到原來的問題。
您的原始程式碼存在多個問題。
您的程式碼中的變數命名和使用包含錯誤。第二次�%8
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); }