Based on Allow customer to set the product price (giftcard) and add to cart if sum is minimum 100 in WooCommerce, which answers my initial question – I am left with one small problem regarding the WooCommerce minicart.
The product price is not updated accordingly to what the customer submits using the giftcard field. So I have two different solutions whereof both fail.
This is what I tried:
add_filter('woocommerce_widget_cart_item_quantity', 'custom_wc_widget_cart_item_quantity', 10, 3 );
function custom_wc_widget_cart_item_quantity( $cart, $cart_item, $cart_item_key ) {
foreach ( $cart->get_cart() as $cart_item ) {
if ( isset ( $cart_item['giftcard_product_price'] ) ) {
$cart_item['data']->set_price( $cart_item['giftcard_product_price'] );
return sprintf( '<span class="quantity">%s × <span class="woocommerce-Price-amount amount">%s <span class="woocommerce-Price-currencySymbol">%s</span></span></span>', $cart_item['quantity'], $cart_item['giftcard_product_price'] );
}
}
}
It doesn’t work: Minicart go blank. Then I tried also:
add_filter('woocommerce_cart_item_price','modify_cart_product_price',10,3);
function modify_cart_product_price( $price, $cart_item, $cart_item_key){
$price = $cart_item['data']->set_price($cart_item['giftcard_product_price']);
return $price;
}
Any help I can get would be grateful.
2
Answers
The right hook to be used is
woocommerce_cart_item_price
this way:Now the custom price will appear correctly in minicart…
Full variant for free price in the basket for variable products.