وندا نوژن .
اگر سایت فروشگاهی ووکامرسی دارید، شاید تمایل داشته باشید که بعد از اعمال تخفیف به یک محصول، مقدار و یا درصد این تخفیف هم زیر قیمت محصول نمایش داده شود.
از آنجایی که افزونه ووکامرس این قابلیت را لحاظ نکرده، معمولا وادار به خرید یا استفاده از افزونههای جانبی ووکامرس میشوید. در صورتی که خیلی ساده و بدون استفاده از هر افزونه جانبی دیگری میتوانید این قابلیت را فعال کنید.
با توجه به اینکه دو نوع محصول (ساده و متغیر) و دو نوع تخفیف (مقدار و درصد) وجود دارد، بنابراین در کل چهار حالت مختلف را میشود فرض کرد. بسته به اینکه کدام حالت به کار شما میآید، یکی از کدهای زیر را به انتهای فایل functions.php سایت خود اضافه کنید.
add_action( 'woocommerce_single_product_summary', 'simple_product_saving_amount', 11 ); function simple_product_saving_amount() { global $product; if( $product->is_type('simple') && $product->is_on_sale() ) { $regular_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_regular_price() ) ); $active_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_sale_price() ) ); $saved_amount = $regular_price - $active_price; echo '<p id="saving_total_price">'. __("تخفیف شما") .': ' . wc_price($saved_amount) . ' </p>';} }
add_action( 'woocommerce_single_product_summary', 'simple_product_saving_percentage', 11 ); function simple_product_saving_percentage() { global $product; if( $product->is_type('simple') && $product->is_on_sale() ) { $regular_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_regular_price() ) ); $active_price = (float) wc_get_price_to_display( $product, array('price' => $product->get_sale_price() ) ); $saved_amount = $regular_price - $active_price; $percentage = round( $saved_amount / $regular_price * 100 ); echo '<p id="saving_total_price">'. __("تخفیف شما") .': '.$percentage.'% </p>'; } }
add_filter( 'woocommerce_available_variation', 'variable_product_saving_amount', 10, 3 ); function variable_product_saving_amount( $data, $product, $variation ) { if( $variation->is_on_sale() ) { $saved_amount = $data['display_regular_price'] - $data['display_price']; $data['price_html'] .= '<p id="saving_total_price">'. __("تخفیف شما") .': ' . wc_price($saved_amount) . '</p>'; } return $data; }
add_filter( 'woocommerce_available_variation', 'variable_product_saving_percentage', 10, 3 ); function variable_product_saving_percentage( $data, $product, $variation ) { if( $variation->is_on_sale() ) { $saved_amount = $data['display_regular_price'] - $data['display_price']; $percentage = round( $saved_amount / $data['display_regular_price'] * 100 ); $data['price_html'] .= '<p id="saving_total_price">'. __("تخفیف شما") .': '.$percentage.'%</p>'; } return $data; }
پ.ن: کدهای بالا از اینجا هم قابل دسترسیاند.