// One Item discount fix add_action( 'wdp_before_apply_to_wc_cart', function ( $wdp_cart, $wc_cart ) { remove_filter( 'woocommerce_cart_item_price', 'wc_gzd_cart_product_unit_price', 0 ); add_filter( 'woocommerce_cart_item_price', 'wc_gzd_cart_product_unit_price', 100, 3 ); }, 10, 2 ); // fix product price after purchase it add_action( 'woocommerce_gzd_before_get_unit_price', function($product){ $product->recalculate_unit_price(); }, 10, 1 ); add_filter( 'woocommerce_gzd_get_unit_price_raw', function ( $unit_price, $product ) { /** * @var $product WC_GZD_Product */ if ( isset( $product->wdp_original_price ) ) { if ( $product->wdp_original_price > $product->get_price( '' ) ) { $product->recalculate_unit_price( array( 'price' => $product->get_price( '' ) ) ); $unit_price = $product->unit_price; } } else { if ( ! is_cart() && ! is_checkout() ) { if ( $product->is_on_sale() ) { $product->recalculate_unit_price( array( 'price' => $product->get_sale_price() ) ); $unit_price = $product->unit_price; } } } return $unit_price; }, 10, 2 ); add_filter( 'woocommerce_cart_item_product', function ( $product, $cart_item, $cart_item_key ) { /** * @var WC_Product $product * */ if ( isset( $cart_item['wdp_original_price'] ) ) { if ( isset( $product->gzd_product ) ) { $product->gzd_product->wdp_original_price = $cart_item['wdp_original_price']; $product->gzd_product->get_wc_product()->set_price($product->get_price( '' )); } } return $product; }, 10, 3 ); add_filter( 'woocommerce_gzd_order_item_unit_price', function ( $price_html, $gzd_product, $item, $order ) { if ( isset($item->legacy_values['data']) ) { $gzd_product->get_wc_product()->set_price($item->legacy_values['data']->get_price('')); $price_html = $gzd_product->get_unit_html( false ); } return $price_html; }, 10, 4 );
Germanized for WooCommerce, by Vendidero Print
Created by: Alex Prokaev
Modified on: Fri, 6 Sep, 2019 at 4:08 PM
Did you find it helpful? Yes No
Send feedbackSorry we couldn't be helpful. Help us improve this article with your feedback.