Klient użył kodu rabatowego – pokaż mu obniżone ceny w sklepie
Przypadek dość ciekawy, bo mający bezpośredni wpływ na konwersję w sklepie. Scenariusz mamy taki klient robiąc zakupy wpisuje w koszyku kod rabatowy. Zachęcony sporą obniżką, udaje się na dalsze zakupy po naszym sklepie a tu ceny nadal pierwotne. Fajnie byłoby mu pokazać ile rzeczywiście zapłaci, bo wtedy może kupi więcej. Wykorzystamy do tego filtr woocommerce_get_price_html.
add_filter('woocommerce_get_price_html', 'woocommerce_get_price_html', 10, 2 ); function woocommerce_get_price_html( $price, $product ) { if ( WC()->cart->has_discount() ) { $values = array ( 'data' => $product, 'quantity' => 1 ); $coupons = WC()->cart->get_coupons(); $_price = $product->get_price(); $undiscounted_price = $_price; if ( ! empty( $coupons ) ) { foreach ( $coupons as $code => $coupon ) { if ( $coupon->is_valid() && ( $coupon->is_valid_for_product( $product, $values ) || $coupon->is_valid_for_cart() ) ) { $discount_amount = $coupon->get_discount_amount( 'yes' === get_option( 'woocommerce_calc_discounts_sequentially', 'no' ) ? $_price : $undiscounted_price, $values, true ); $discount_amount = min( $_price, $discount_amount ); $_price = max( $_price - $discount_amount, 0 ); } if ( 0 >= $_price ) { break; } } if ( ( $product->get_price() > 0 ) && ( $undiscounted_price !== $_price ) ) $price = wc_format_sale_price( wc_get_price_to_display( $product, array( 'price' => $undiscounted_price ) ), $_price ) . $product->get_price_suffix(); } } return $price; }