Замените вес продукта на значение поля ACF в Woocommerce

Я пытаюсь заменить значение поля Weight в woocommerce на значение поля ACF в WordPress Dashboard.

Я не уверен, если мне нужно использовать эту функцию, чтобы заменить это поле

// 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 );

введите описание изображения здесь

1

Решение

На скриншоте вы не работаете над вариантами продукта, поэтому ваш код не соответствует.

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]