我製作了一個名爲「sub_products」的新類型,其中包含元標記「unit_price」。 爲每個包含所有「子產品」帖子列表的Woocommerce產品分配新字段後,目標是根據所選「子產品」元「unit_price」更新每個產品價格。Woocommerce 3.0單品價格沒有正確更改
function kulcskron_edit_post($p1, $p2)
{
if (!is_admin())
return;
if (get_post_type() != 'product')
return;
$sub_product_ids = $p2->get_meta('sub_products');
if (empty($sub_product_ids))
return;
$product_regular_price = 0;
foreach ($sub_product_ids as $id)
$product_regular_price += get_post_meta($id, 'unit_price', true);
if ($p1 == $product_regular_price)
return;
$p2->set_regular_price($product_regular_price);
$p2->save();
}
add_action('woocommerce_product_get_price', 'kulcskron_edit_post', 10, 2);
我想盡一切可能的掛鉤,使這項工作:
add_action('the_post', 'kulcskron_edit_post', 9, 1);
add_action('edit_post', 'kulcskron_edit_post', 10, 2);
add_action('pre_get_posts', 'kulcskron_edit_post');
add_action('save_post', 'kulcskron_edit_post');
此代碼更新價格,但在陌生的路上:
聯繫單品編輯觀點:價格在我重新訪問編輯屏幕之後不立即更新。
Admin產品列表查看:每個價格爲0
前端產品頁面視圖:所顯示的價格是0
如何更新基礎上,賦予產品價格當在管理視圖中保存單個產品時,「sub_products」「unit_price」是否發佈meta?
此過濾器無法更改數據庫中的產品價格[請參閱此處。](http://woocommerce.wp-a2z.org/oik_hook/woocommerce_get_price_html/) – David
$ price = $ p2-> set_regular_price( $ product_regular_price); return $ price; 這是過濾器類型的鉤子,所以你必須返回一些東西。 你也可以試試set_price function(); – MakeWebBetter