هنگامی که ما محصول متغیری در ووکامرس و در سایت وردپرسی خودمون تعریف میکنیم، قیمت اون در باکس محصول، صفحه محصول و صفحات فروشگاه و آرشیو محصولات بصورت (کمترین قیمت – بیشترین قیمت) نمایش داده میشود که این شکل نمایش شاید مطلوب شما نباشد و اصلا موجب سردرگمی خریدار و یا حتی انصراف مشتری از خرید شود. شاید این مطلوب ما نباشد که کمترین و بیشترین قیمت محصول در نگاه اول به مشتری نمایش داده شود و بخواهیم فقط در ابتدا و نگاه نخست به باکس یا صفحه محصول، مشتری بیشترین قیمت محصول متغیر ما را ببیند.
مثلا فرض کنید که شما یک صفحه محصول تعریف کردهاید که در آن هم خود کتاب را به عنوان یک محصول فیزیکی و هم نسخه صوتی آن را به عنوان یک محصول دانلودی و هم ترکیب آنها را به فروش میرسانید. شما برای تعریف چنین صفحه محصولی از تنظیمات ووکامرس محصول متغیر را انتخاب میکنید. پس از تعریف این محصولات در یک صفحه چون شما تنظیمات محصول متغیر ووکامرس را انتخاب کردهاید در صفحه محصول و همچنین باکس محصول قیمت محصول بصورت 2 قیمتی نمایش داده میشود. یکی از این قیمت ها مربوط به کمترین قیمت محصول شماست (که ممکن است نسخه صوتی کتاب باشد) و دیگری بیشترین قیمت محصول متغیر (که ممکن است متعلق به ترکیب نسخه چاپی و صوتی کتاب باشد) میباشد. در این حالت نمایش قیمت این کتاب بصورت 2 قیمتی شاید حرفه ای نباشد و ما بخواهیم مشتری در نگاه اول فقط بیشترین قیمت محصول متغیر را ببیند.
ما در این مقاله به دو روش به شما آموزش میدهیم که چگونه فقط بیشترین قیمت محصول متغیر را در ووکامرس نمایش دهید:
(توجه داشته باشید که با اعمال هر کدام یک از دو روش گفته شده، تغییرات نمایش قیمت بر روی تمامی محصولات متغیر رخ میدهد و فقط محدود به یک محصول خاص و مد نظر شما نیست)
1. نمایش بیشترین قیمت محصول متغییر در ووکامرس با کد PHP
در زیر یک کد PHP برای تغییر این سبک نمایش قرار داده شده است که این کد باعث میشود که قیمت درج شده زیر باکس محصول و در صفحه محصول و فروشگاه و صفحات آرشیو محصولات از سبک (کمترین قیمت محصول – بیشترین قیمت محصول) به سبک (بیشترین قیمت محصول) تغییر کنید و بطور کلی فقط بیشترین قیمت آن محصول در صفحه محصول و باکس محصول نمایش داده شود.
برای اعمال این تغییر در سایت خود تنها کافی است که کد PHP زیر را کپی کرده و در سند functions.php قالبتان (یا اگر از چایلد تم استفاده میکنید در سند functions.php چایلد تم قالب سایتتان) قرار دهید تا این تغییر بر روی تمامی محصولات متغیر شما اعمال شود.
add_filter( 'woocommerce_variable_sale_price_html', 'con_show_max_variation_price_only', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'con_show_max_variation_price_only', 10, 2 );
function con_show_max_variation_price_only( $price, $product ) {
// Main Variation Price
$prices = array( $product->get_variation_price( 'max', true ), $product->get_variation_price( 'min', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Variation Price
$prices = array( $product->get_variation_regular_price( 'max', true ), $product->get_variation_regular_price( 'min', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
//Output
if ( $price !== $saleprice ) {
$price = '<span style="display:none;">' . $saleprice . '</span> <ins>' . $price . '</ins>';
}
return $price;
}2. نمایش بالاترین قیمت محصول متغییر در ووکامرس با افزونه
برای نمایش بیشترین قیمت محصول متغیر در ووکامرس میتوانید به جای استفاده از کد، از افزونه استفاده کنید. برای این کار یکی از افزونههای خوب حال حاضر که به رایگان در مخزن وردپرس وجود دارد، افزونه Variation Price Display For WooCommerce است.

این افزونه به شما اجازه میدهد تا به آسانی فقط بیشترین قیمت محصول متغیر را نمایش دهید و حتی شما میتوانید عبارتی برای قبل و بعد از قیمت خود مشخص نمایید.

به این محتوا امتیاز بدین!
20 دیدگاه
سلام خیلی ممنون یک دنیا ممنون که اموزش دادید
سلام دوست عزیز، خوشحالم که براتون مفید بوده و بی نهایت متشکرم که وقت گذاشتید و با نظرتون به ما انرژی دادید.
سلام وقتتون بخیر
بنده طراح سایت هستم سوالی داشتم از خدمتتون مقالهای تحت عنوان نمایش بیشترین قیمت متغیر ها را مطالعه کردم و سوالی داشتم از خدمتتون اینکه چطور میتونم برای محصولم که دو تا متغیر داره توی صفحه اصلی توی کاروسل اولئمحصولات قیمت متغیر اول نمایش داده بشهو توی کاروسل دوم محصولات قیمت متغیر دوم نمایش داده بشه و کاربر با ورود به هر محصول همه ی متغیر هارو بتونه بررسی و انتخاب کنه. مثلا محصول عطر دارم و دو متغیر عطر اصل 100 میل و عطر اقتصادی 100 میل دارم چطور میتونم این محصولو طوری توی صفحه اصلی بزارم که توی کاروسل اولی محصولات؛ محصولم با قیمت عطر اصل 100 میل نمایش داده بشه و توی کاروسل دوم محصولاتم، محصولم با قیمت عطر اقتصادی 100 میل نمایش داده بشه؟ ممنون میشم راهنماییم بفرمایید.
این کار تنها با تسلط بر کدنویس php و ادغام اون با افزونه صفحهساز سایتتون مقدور هست.
خیلی خیلی ممنونم از اینکه این مطلب مفید رو در اختیار گذاشتید
خواهش میکنم، سلامت باشید
خیلی خوشحالم از این که این مقاله براتون مفید بوده و تونسته رضایت شما رو در پی داشته باشه.
خیلی ممنون
در سایتم استفاده کردم واقعا عالی و مفید بود
خواهش میکنم
خیلی خوشحالم براتون مفید بوده
بهتون پیشنهاد میکنم که سایر مقالات سایت رو هم مطالعه کنید.
قطعا مطالب و نکات خیلی خوبی برای مدیریت سایت وردپرسیتون یاد خواهید گرفت.
سلام من از کد که گفتین استفاده کردم و اعمال شد ولی بعد از چند وقت که نگا کردم بازم کمترین قیمت نشون میده دوباره کد رو زدم درست نشد افزونه رو هم امتحان کردم نشد کش رو هم پاک کردم نمیشه دیگه
سلام
بطور کلی کد هیچ اشکالی نداره و بدرستی روی سایتهای مختلفی که خود بنده استفاده کردم کار کرده و دوستان عزیزی هم که اینجا کامنت گذاشتن استفاده کردن و کاملا موفقیت آمیز بوده.
شما باید پوسته سایتتون و یا احتمالا تداخلات ووکامرس با سایر افزونههای سایتتون رو بررسی کنید و ببینید کدوم افزونه های میتونن قیمت محصول متغیر ووکامرس رو دستخوش تغییر کنند و با کد یا افزونه معرفی شده تداخل داشته باشن.
سلام خیلی ممنون برای کدی که قرار دادین. امکانش هست که در کنار بالاترین قیمت نام متغیر اون قیمت هم نمایش داد؟ مثلا اگر بالاترین قیمت برای سایز 2 باشه نمایش قیمت هم به این صورت باشه: “قیمت سایز 2: *قیمت*”
سلام
خواهش میکنم، خوشحالم براتون مفید بوده
بله، این امکان وجود داره که البته نیاز به شخصی سازی این کد یا بازنویسی کد داره تا شما بتونین تغییر مورد نظر خودتون رو اعمال کنید.
سلام، من میخوام قیمت بجای ۲.۹۰۰.۰۰۰ تومان – ۳.۱۰۰.۰۰۰ تومان به شکل از ۲.۹۰۰.۰۰۰ تومان تا ۳.۱۰۰.۰۰۰ تومان نمایش داده بشه، این از و تا رو چجوری میتونم اضافه کنم؟
سلام
اوقات شما به کام
برای این کار میتونین از کد زیر استفاده کنید. کافی است کد زیر را بطور کامل و دقیق کپی و آن را در فایل functions.php قالب یا پوسته فرزند خود قرار دهید.
add_filter( 'woocommerce_get_price_html', 'webzoj_change_variable_price_range_display', 10, 2 );function webzoj_change_variable_price_range_display( $price, $product ) {
if( ! $product->is_type('variable') ) return $price;
$prices = $product->get_variation_prices( true );
if ( empty( $prices['price'] ) )
return apply_filters( 'woocommerce_variable_empty_price_html', '', $product );
$min_price = current( $prices['price'] );
$max_price = end( $prices['price'] );
return apply_filters( 'woocommerce_variable_price_html', 'از ' . wc_price( $min_price ) . $product->get_price_suffix() . " تا " . wc_price( $max_price ) . $product->get_price_suffix(), $product );
}
ممنونم از شما
خواهش میکنم
سلامت باشید
سلام . خیلی ممنون از اموزشی که قرار دادید . میخواستم بدونم چیکار باید بکنم که به جای اینکه بالا ترین قیمت رو نشون بده قیمت تک تک گزینه های محصول رو نشون بده بهم
سلام
خواهش میکنم
افزونه و کد معرفی شده میتونه بالاترین قیمت محصول متغیر رو نشون بده.
برای مورد درخواستی باید در گوگل بصورت انگلیسی سرچ کنید.
من اصلا نمیتونم روی محصولات متغیر قیمت گذاری کنم.گزینه اش وجود نداره
شما وقتی یک محصول متغیر تعریف میکنید، برای هر ویژگی و خصوصیتی از اون محصول میتونین قیمت متفاوت و همچنین موجودی، تعداد مشخص و حتی قیمت تخفیفی مجزایی تعریف کنید و در ووکامرس مشکل و محدودیتی از این بابت وجود نداره.