Описание WC_PRODUCT_VARIATION->GET_HOOK_PREFIXweight
— Filter
Хук WC_PRODUCT_VARIATION->GET_HOOK_PREFIXweight позволяет изменять значение веса товарных вариаций в WooCommerce. Он срабатывает при получении веса вариации товара и позволяет настраивать его значение перед отображением на сайте или перед использованием в расчетах
Примеры использования
Пример изменения веса товарной вариации на фиксированное значение:
add_filter('woocommerce_product_variation_get_weight', function($weight) {
return 2.5;
});
В этом примере мы устанавливаем фиксированный вес в 2.5 для всех товарных вариаций
Пример изменения веса в зависимости от других параметров товара:
add_filter('woocommerce_product_variation_get_weight', function($weight, $variation) {
if ($variation->get_attribute('color') === 'red') {
return $weight + 1.0;
}
return $weight;
}, 10, 2);
Здесь мы увеличиваем вес на 1.0, если товарная вариация имеет красный цвет
Пример изменения веса в зависимости от пользовательского поля:
add_filter('woocommerce_product_variation_get_weight', function($weight, $variation) {
$custom_weight = get_post_meta($variation->get_id(), 'custom_weight', true);
return !empty($custom_weight) ? $custom_weight : $weight;
}, 10, 2);
В этом примере мы используем значение из пользовательского поля ‘custom_weight’ для установки веса товарной вариации, если оно задано
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить вес товарных вариаций перед выводом или расчетом стоимости доставки
– Производительность
Хук может незначительно повлиять на производительность, если используется в сложных расчетах, но в большинстве случаев это несущественно
– Предупреждения
Убедитесь, что изменения веса не нарушают логику расчетов доставки или других процессов, зависящих от веса
Альтернативы
Тип: filter
Этот хук позволяет изменять вес товара в целом, а не только для вариаций
Используйте его, если нужно изменить вес основного товара, а не только вариаций