我试图用WordPress仪表板中的ACF字段值替换woocommerce中的Weight字段值。
我不确定是否需要使用此功能来替换此字段
// define the woocommerce_save_product_variation callback
function action_woocommerce_save_product_variation( $variation_id, $i ) {
// make action magic happen here...
};
// add the action
add_action( 'woocommerce_save_product_variation', 'action_woocommerce_save_product_variation', 10, 2 );
答案 0 :(得分:0)
在屏幕截图中,您没有使用产品变体,因此代码不适用。
对于所有产品类型(可变产品及其变体除外,您将使用其中的一种(其中将ACF custom_weight
函数中的get_field()
替换为正确的子段):
add_action( 'woocommerce_process_product_meta', 'update_product_weight_from_acf', 100, 1 );
function update_product_weight_from_acf( $product_id ) {
if( $weight_acf = get_field( 'custom_weight', $product_id ) )
update_post_meta( $product_id, '_weight', $weight_acf );
}
或使用WC_Products setter方法(Woocommerce 3引入):
add_action( 'woocommerce_admin_process_product_object', 'update_product_weight_from_acf', 10, 1 );
function update_product_weight_from_acf( $product ) {
if( $weight_acf = get_field( 'custom_weight', $product->get_id() ) )
$product->set_weight( $weight_acf );
}
代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。