Add total weight of simple and variable products in woodmart mini cart widget
P粉447495069
2023-09-05 00:18:25
<p>I am using Woodmart theme and mini cart widget and I want to display total weight and total price of simple and variable products.
So I modified the code but it doesn't work and has the following problem: </p>
<p><Qiang>1. (Total Weight): </strong>When a simple or variable product is added to the cart, the <strong>Total Weight</strong> is displayed as half the product weight. For example, if the product weight is set to 0.5, when added to the cart, the total weight on the mini cart displays as 0.25. </p>
<p><Qiang>2. (Total Price): </strong>When a simple or variable product is added to the cart, the <strong>Total Price</strong> is displayed as half the product price. For example, if the price of a product based on weight (0.5) is 7500, when added to the cart, the total price on the mini cart is displayed as 3750. </p>
<p>Thanks for any help. Thank you so much.
This is my code: </p>
<pre class="brush:php;toolbar:false;">/* Display the total weight in the mini cart shopping cart widget footer*/
function display_mini_cart_total_weight() {
if ( ! WC()->cart->is_empty() ) {
$total_weight = 0;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product = $cart_item['data'];
$variation_id = $cart_item['variation_id'];
$weight = 0;
if ( $variation_id ) {
// Get the selected variation
$variation = wc_get_product( $variation_id );
if ( $variation ) {
// Get the weight of the variation
$weight = $variation->get_weight();
}
} else {
// Get the weight of the product
$weight = $product->get_weight();
}
$quantity = $cart_item['quantity'];
//Calculate the weight for the current product
$product_weight = $weight * $quantity;
// Add the product's weight to the total weight
$total_weight = $product_weight;
}
// Output the total weight in the mini cart shopping cart widget footer
$total_weight_display = $total_weight . ' Kg'; // Append ' Kg' to the total weight
echo '<tr class="total-weight-row">
<td colspan="3" class="total-weight-cell">
<p class="total-weight-label woocommerce-mini-cart__total">' . __('Total Weight:', 'chahar-4-rahewordpress') . '</p>
<p class="total-weight-value woocommerce-Price-amount amount">' . $total_weight_display . '</p>
</td>
</tr>';
}
}
add_action( 'woocommerce_widget_shopping_cart_before_buttons', 'display_mini_cart_total_weight' );</pre></p>
You can check if the quantity is less than 1, then the minimum quantity must be considered 1. Please check the following code.