روزمرگی فنی
روزمرگی فنی
خواندن ۲ دقیقه·۳ سال پیش

نمایش مقدار و درصد تخفیف محصول ساده و متغیر در ووکامرس

وندا نوژن .

اگر سایت فروشگاهی ووکامرسی دارید، شاید تمایل داشته باشید که بعد از اعمال تخفیف به یک محصول، مقدار و یا درصد این تخفیف هم زیر قیمت محصول نمایش داده شود.

از آنجایی که افزونه ووکامرس این قابلیت را لحاظ نکرده، معمولا وادار به خرید یا استفاده از افزونه‌های جانبی ووکامرس می‌شوید. در صورتی که خیلی ساده و بدون استفاده از هر افزونه جانبی دیگری می‌توانید این قابلیت را فعال کنید.

با توجه به اینکه دو نوع محصول (ساده و متغیر) و دو نوع تخفیف (مقدار و درصد) وجود دارد، بنابراین در کل چهار حالت مختلف را می‌شود فرض کرد. بسته به اینکه کدام حالت به کار شما می‌آید، یکی از کدهای زیر را به انتهای فایل 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=&quotsaving_total_price&quot>'. __(&quotتخفیف شما&quot) .': ' . 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=&quotsaving_total_price&quot>'. __(&quotتخفیف شما&quot) .': '.$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=&quotsaving_total_price&quot>'. __(&quotتخفیف شما&quot) .': ' . 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=&quotsaving_total_price&quot>'. __(&quotتخفیف شما&quot) .': '.$percentage.'%</p>'; } return $data; }

پ.ن: کدهای بالا از اینجا هم قابل دسترسی‌اند.

ووکامرسمقدار تخفیفدرصد تخفیفمحصول سادهمحصول متغیر
روزها درگیر مصائب فنی، شب‌ها مشغول ثبت راه‌حل‌های یافتنی
شاید از این پست‌ها خوشتان بیاید