Я прочитал и попробовал по этой ссылке:
Отображение веса каждой корзины в WooCommerce
Не работает. Мне нужно иметь общий вес каждого товара в корзине и на кассе; например, вес статьи составляет 500 г, и если я добавлю в корзину 3 его статьи, она должна показать 1500 г.
Я настроил вес для некоторых продуктов на 0,2 кг (потому что система WordPress настроен в килограммах), но если я попробую этот код в предыдущей ссылке под названием продукта, он покажет мне " вес 0 ".
Я использовал этот код:
add_filter( 'woocommerce_get_item_data', 'displaying_cart_items_weight', 10, 2 );
function displaying_cart_items_weight( $item_data, $cart_item ) {
$item_weight = $cart_item['data']->get_weight() * $product_qty;
$item_data[] = array(
'key' => __('Weight', 'woocommerce'),
'value' => $item_weight,
'display' => $item_weight . ' ' . get_option('woocommerce_weight_unit')
);
return $item_data;
}
Затем я попробовал другой код, чтобы получить общий вес корзины, и он отлично работает, для каждого изменения в корзине вес является правильным. Код, который я использовал:
if ( WC()->cart->needs_shipping() ) : ?>
<tr class="shipping">
<th><?php _e( 'Peso', 'woocommerce-cart-weight' ); ?></th>
<td><span class="label"><?php echo $woocommerce->cart->cart_contents_weight . ' ' . get_option( 'woocommerce_weight_unit' ); ?></span></td>
</tr>
<?php endif;
}
add_action( 'woocommerce_cart_totals_after_order_total', 'wcw_cart' );
add_action( 'woocommerce_review_order_after_order_total', 'wcw_cart' );
Мне нужен абсолютно общий вес для каждой строки товара (не вес только для одного товара): результат должен быть получен из item_weight * item_quantity (0.2 x 6 = 1.2)
Можно ли разместить эту информацию также на одной странице товара? когда пользователь изменяет значение количества, добавляемого в корзину, система должна также отображать общий вес, например: вес продукта составляет 0,2 кг, если пользователь изменяет значение с 1 на 2, показанный вес должен составлять 0,4, если значение равно 3, поэтому общий вес должен быть 0,6, а затем пользователь нажимает на кнопку «Добавить в корзину».
Я использую c этот код ниже, чтобы изменить общую цену при изменении количества:
add_action( 'woocommerce_single_product_summary',
'woocommerce_total_product_price', 31 );
function woocommerce_total_product_price() {
global $woocommerce, $product;
// let's setup our divs
echo sprintf('<div id="product_total_price" style="margin-bottom:20px;">%s
%s</div>',__('Totale Prodotto:','woocommerce'),'<span
class="price">'.$product->get_price().'</span>');
?>
<script>
jQuery(function($){
var price = <?php echo $product->get_price(); ?>,
currency = '<?php echo get_woocommerce_currency_symbol();
?>';
$('[name=quantity]').change(function(){
if (!(this.value < 1)) {
var product_total = parseFloat(price * this.value);
$('#product_total_price .price').html( currency +
product_total.toFixed(2));
}
});
});
</script>
<?php
}