На скриншоте вы не работаете с вариантами продуктов, поэтому ваш код не соответствует.
Для всех типов продуктов (кроме переменных продуктов и их вариантов, вы будете использовать один из этих (где вы замените custom_weight
в функции ACF 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 (представлен в 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 вашей активной дочерней темы (или активной темы). Он должен работать.