有沒有一種方法來設置產品重量與save_post掛鉤?Woocommerce - 掛鉤設置產品重量save_post
我下面的代碼,但我不知道怎麼改寫重量:
add_action('save_post', 'change_weight');
function change_weight($post_id) {
$WC_Product = wc_get_product($post_id);
}
請幫助!
有沒有一種方法來設置產品重量與save_post掛鉤?Woocommerce - 掛鉤設置產品重量save_post
我下面的代碼,但我不知道怎麼改寫重量:
add_action('save_post', 'change_weight');
function change_weight($post_id) {
$WC_Product = wc_get_product($post_id);
}
請幫助!
如果使用woocommerce_process_product_meta_$product_type
然後您不必擔心隨時隨地的情況,因爲您可以在WooCommerce的健康檢查中捎帶。
// This will work in both WC 2.6 and WC 2.7
add_action('woocommerce_process_product_meta_simple', 'so_42445796_process_meta');
function so_42445796_process_meta($post_id) {
$weight = 100;
update_post_meta($post_id, '_weight', $weight);
}
WC 2.7將引入CRUD方法來抽象數據的保存方式。我懷疑他們最終會將產品和產品元數據移出默認的WordPress表格,但我無法確定。在2.7中,您可以使用3210鉤子在保存之前修改對象$product
。
// Coming in WC2.7 you can use the CRUD methods instead
add_action('woocommerce_admin_process_product_object', 'so_42445796_process_product_object');
function so_42445796_process_product_object($product) {
$weight = 100;
$product->set_weight($weight);
}
要設置權重,您需要更新後期元。這是可以做到這樣的:在上面的代碼
update_post_meta($post_id, '_weight', $weight);
$權重是包含要的重量是值的變量。然而,每次保存任何帖子時都會觸發save_post鉤子,因此博客帖子,頁面,產品等等。您可能想要驗證該帖子是否爲產品。你可以是這樣做的:
if (get_post_type ($post_id) == 'shop_order') {
update_post_meta($post_id, '_weight', $weight);
}
此外,如果你希望你改變它,你可以像這樣做之前得到產品的當前重量:
$product = wc_get_product($post_id);
$weight = $product->get_weight();