یکی از مشکلاتی که معمولا مدیران سایتها با ووکامرس دارند این است که هنگامی که محصول متغیری را در سایت تعریف میکنند، با توجه به اینکه آن محصول بر حسب ویژگیها (attributes) و آپشنهای متغیر نظیر سایز، نوع، رنگ و … که دارد، میتواند بواسطه تنوع ویژگیها، قیمتهای متفاوتی داشته باشد و در قسمت صفحه محصول سایت و همچنین باکس محصول آن 2 قیمت به صورت (کمترین قیمت محصول – بیشترین قیمت محصول) نشان میدهد که این نوع نمایش معمولا باعث سردرگمی خریدار و انصراف او از خرید میشود.
بسیاری از مدیران سایت های فروشگاهی ترجیح میدهند که اگر محصول متغیر آنها بر حسب ویژگی های مختلفش، چندین قیمت متفاوت دارد، مشتریها و کاربران در نگاه اول در صفحه فروشگاه و یا صفحه محصول و… ابتدا با کمترین قیمت محصول مواجه شوند و سپس بعد از انتخاب اولیه محصول و رفتن به صفحه محصول و انتخاب ویژگی مورد نظر از محصول، با قیمت نهایی محصول روبرو شوند.
با یک مثال ساده این موضوع را برای شما آشکارتر میسازم. فرض کنید شما در سایت خودتان یک گوشی میفروشید که دارای 3 رنگ مختلف است و هر رنگ از این گوشی برای خودش قیمت متفاوتی دارد. شما برای این که در سایت خودتان 3 تا صفحه محصول جداگانه برای هر رنگ از این محصول ایجاد نکنید از قابلیت محصول متغیر ووکامرس استفاده میکنید. این قابلیت به شما این اجازه را میدهد که برای این محصول که دارای یک ویژگی متغیر به نام رنگ است و این ویژگی دارای 3 نوع متفاوت با قیمت های متفاوت است یک صفحه محصول واحد داشته باشید و به کاربر اجازه دهید که در آن صفحه رنگ مورد نظر گوشی را انتخاب و در نهایت قیمت آن گوشی با آن رنگ خاص را مشاهده کند.
اما هنگامی که این محصول متغیر را در سایت خود تعریف میکنید، در باکس محصول و صفحه محصول و فروشگاه قیمت این محصول متغیر بصورت دوگانه (کمینه قیمت – بیشینه قیمت) نمایش داده میشود. که شاید این گونه نمایش مطلوب شما و اهداف مارکتینگی شما نباشد.
ما در این مقاله به دو روش به شما آموزش میدهیم که چگونه فقط کمترین قیمت محصول متغیر را در ووکامرس نمایش دهید:
1. نمایش کمترین قیمت محصول متغییر در ووکامرس با کد PHP
برای نشان دادن پایینترین قیمت محصول متغیر خود در سایت، تنها کافی است که کد PHP زیر را کپی کرده و در سند functions.php قالبتان (یا اگر از چایلد تم استفاده میکنید در سند functions.php چایلد تم قالب سایتتان) قرار دهید تا این تغییر بر روی تمامی محصولات متغیر شما و در تمامی بخش های سایت از جمله باکس محصول، صفحه محصول، صفحات فروشگاه و آرشیو محصولات و غیره اعمال شود.
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}اگر تمایل دارید که به جای نمایش کمترین قیمت محصول متغیر، قیمت محصول متغیر بصورت “شروع قیمت از” به کاربر در باکس محصول، صفحه محصول و صفحات فروشگاه و آرشیو محصولات نمایش داده شود از این کد PHP استفاده نمایید :
add_filter( 'woocommerce_variable_sale_price_html', 'custom_variable_price_range', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'custom_variable_price_range', 10, 2 );
function custom_variable_price_range( $price_html, $product ) {
$prefix = __('شروع قیمت از', 'show-only-lowest-prices-in-woocommerce-variable-products');
$min_price = $product->get_variation_price( 'min', true );
$suffix = $product->get_price_suffix( $price = '', $qty = 1 );
/* If all variations have same price not display prefix */
$max_price = $product->get_variation_price( 'max', true );
if( $min_price == $max_price )
return wc_price( $min_price ) . $suffix;
return $prefix . ' ' . wc_price( $min_price ) . $suffix;
}ویژگی کد اخیر این است که اگر ویژگی های محصول متغیر شما همگی هم قیمت باشند، دیگر عبارت “شروع قیمت از” را نمایش نمیدهد.
2. نمایش پایینترین قیمت محصول متغییر در ووکامرس با افزونه
برای نمایش کمترین قیمت محصول متغیر در ووکامرس میتوانید به جای استفاده از کد، از افزونه استفاده کنید. برای این کار بهترین افزونه حال حاضر که به رایگان در مخزن وردپرس وجود دارد، افزونه Variation Price Display Range for WooCommerce است. این افزونه دارای کدنویسی بسیار تمیز و بهینه است و همواره ورژن جدید آن با آخرین نسخه وردپرس و ووکامرس هماهنگ و سازگار میشود.

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

به این محتوا امتیاز بدین!
51 دیدگاه
سلام
تشکر از شما
عالی بود
سلام دوست عزیز، خوشحالم که براتون مفید بوده، ممنونم که نظرتون رو با ما به اشتراک گذاشتید، این کار شما به من فوق العاده انرژی میده
آقا عالی بود، بدون دردسر…
شکرخدا
خوشحالم که این مطلب تونست بهتون کمک کنه و خیلی زود و سریع مشکل و خواستتون رو برطرف کنه
پاینده باشید
درود بر شما وقت بخیر
من میخواهم در برگه محصول، هر دو قیمت کمترین و بیشترین نمایش داده شود.پکار باید بکنم؟
الان کمترین قیمت نمایش داده می شود.
ممنون از شما و راهنمایی ارزشمندتان
سلام
اوقات شما هم به کام
اگر شما با استفاده از کد معرفی شده در این مقاله کمترین قیمت محصول متغیر خود را در سایت نمایش میدهید، میتوانید با پاک کردن همین کد که در فایل فانکشن قالب خود قرار دادهاید، مجددا هر دو قیمت کمترین و بیشترین در باکس محصول و صفحه محصول نمایش داده خواهد شد.
البته باید این نکته رو متذکر بشم که نمایش یا عدم نمایش هر دو قیمت کمترین و بیشترین به قالب (پوسته) سایت شما وابسته است.
سلام من این کد را با افزونه code snippets در قسمت php قرار دادم اما در سایتم تغییری ایجاد نمی شود. حتی بصورت دستی در فایل فانکشن هاست قرار دادم باز تغییری ایجاد نشد. ممنون میشم راهنمایی کنید.
این کد به لحاظ عملکردی و صحت مشکلی نداره و روی سایت ما و همچنین دوستانی که اینجا کامنت گذاشتن جواب داده، باید نحوه وارد کردن کد و یا مشکلی که میتونه از جانب قالبتون و پشتیبانی از نمایش قیمت محصول متغیر یا مشکلات دیگه رو بررسی کنید.
سلام وقت بخیر، function.php قالب من رمزگزاری شده و به محض تغییر سایت بالا نمیاد. راه حلی دیگه ای نداره برای اعمال این کد؟؟
بطور کلی نباید به این شکل باشه و شما باید بتونین به فایل فانکشن قالبتون دسترسی داشته باشین اما میتونین برای قالبتون پوسته بچه (child theme) ایجاد کنین و کد رو داخل فایل فانکشن پوسته بچتون قرار بدین.
همچنین میتونین از افزونه Code Snippets که هم نسخه رایگان در مخزن وردپرس داره و نسخه پولی، برای گذاشتن این کد php داخل سایتتون استفاده کنید.
خدا خیرتون بده من خیلی اذیت شدم سر این داستان و نزدیک بود 40 دلار هم پول افزونه پریمیوم بدم
دمتون گرم
مشتی هستید و پر طرفدار
سلامت باشید
خوشحالم به دردتون خورده و کارآمد بوده
بطور کلی اینو بدونین که خیلی از کارا توی وردپرس الزاما نیاز به افزونه نداره و با یک قطعه کد مساله حل میشه.
سلام… تو نسخه موبایل اما هنوز بازه قیمتی رو نشون می ده. اون رو چه جوری اصلاح کنیم که تک قیمت (کمترین) نمایش داده بشه…؟
سلام
بطور کلی این کد هم بر روی قیمت مندرج در صفحه محصول هم قیمت باکس محصول در کاتالوگ (صفحه اصلی – صفحه فروشگاه – آرشیو محصولات همچون صفحه دسته بندی و برچسب و …) تاثیر میگذارد.
اگر کد بر روی قسمتی از موارد اشاره شده در بالا تاثیر نمیگذارد و همچنان بصورت دوقیمتی یا بازه قیمتی نمایش داده میشود باید کد نویسی قالبتون رو بازنگری کنید.
خیلی عالی بود ، ممنون
یک توضیح ابتدایی دربارش میدید با سپاس
خواهش میکنم
بطور کلی با استفاده از این کد و بدون نیاز به افزونه میتونین قیمت دوگانه (بیشترین و کمترین قیمت یک محصول متغیر ووکامرس) که توی باکس محصول یا صفحه آرشیو محصولات یا خود صفحه محصول به کاربر نشون داده میشه رو به یک قیمت یگانه و واحد که کمترین قیمت محصول متغیرتون هست، تغییر بدین و فقط همون کمترین قیمت رو فقط نشون میده.
سلام وقتتون بخیر
بطورکلی قیمت محصول متغیر تو ووکامرس صفر در نظر گرفته میشه
وقتی سورت محصولات رو براساس قیمت (از کم به زیاد) میذاریم بجای اینکه از کمترین قیمت شروع بشه از محصولات متغیر شروع میشه لیست. این کد شما به این قضیه هم کمکی میکنه؟
سلام
اوقات شما هم به کام
خیر، چنین چیزی درست نیست، قیمت محصولات متغیر ووکامرس بدرستی درک و با سایر قیمت محصولات ساده مقایسه میشود. من الان برای این که مطمعن بشم از این موضوع چند محصول ساده و متغیر با قیمت های مختلف ایجاد کردم و سپس از فیلتر محصولات (فیلتر ذاتی صفحه فروشگاه ووکامرس) اونها رو بر حسب کمترین و بیشترین قیمت سورت کردم و هیچ مشکلی ندیدم. یعنی ووکامرس بدرستی محصولات رو بر حسب قیمت کمینه به بیشینه و بلعکس سورت کرد (حتی محصولات متغیر رو) و بترتیب قیمت صحیح اونها رو نشون داد. حتی بعد از این که چه با کد و چه با افزونه کمترین قیمت محصولات متغیر رو در سایت نشون دادم، باز هم اونها رو به درستی سورت میکرد. پس اساسا این مورد که گفتین “بطورکلی قیمت محصول متغیر تو ووکامرس صفر در نظر گرفته میشه” بطور کامل رد میشه و اگر چنین مشکلی دارین باید قالب و تنظیمات صفحات آرشیو محصولات و فروشگاه و یا افزونه هایی که میتونن روی فیلتر محصولات تاثیر بذارن رو بررسی کنید.
سلام. من محصولات متغیرم به صورت وزنی است.
۱۰۰ گرم
۵۰۰ گرم
یک کیلو
دو کیلو
چیکار کنم که فقط یک کیلو را نشان بده؟
سلام
اگر میخواهید که در قسمت باکس محصول یا در صفحه آرشیو محصولات و صفحه محصول در ابتدا تنها قیمت یک کیلو از محصول را از بین قیمتهای محصول متغیر شما نشان داده شود و این قیمت چیزی بغیر از حداقل و حداکثر قیمت محصول متغیر شماست، باید با یک کد اختصاصی این کار را انجام دهید.
عالی هستین کارم راه افتاد مونده بودم برم سمت پلاگین ، ممنون بابت وجودتون
سلامت باشید
خیلی خوشحالم که این مقاله تونسته بهتون کمک کنه
دمتون گرم که نظرتون را با ما در میون گذاشتین
سلام..وقت بخیر.. ممنون از شما…اگر بخواهیم در صفحه تک محصول نشون نده چکار کنیم …فقط در اسلایدر محصولات نشون بده با تشکر..
سلام
اوقات شما هم به کام
هم میتونین از نسخه پولی این افزونه معرفی شده استفاده کنید تا این امکان رو در اختیارتون قرار بده و یا در اینترنت جستجو کنید تا کد php مخصوص روندی که نیاز دارید رو پیدا کنید.
سلام وقت بخیر
چرا بعد از ست کردن تنظیمات افزونه، همچنان پایین ترین قیمت و نشون نمیده؟
سلام
اوقات شما هم به کام
اگر تنظیمات افزونه رو به درستی ست کرده باشید و همچنان کمترین قیمت رو بهتون نشون نمیده در باکس محصول یا صفحه محصول و یا آرشیو دسته بندی و فروشگاه، احتمالا مشکل از پوسته (قالب) شماست.
من همین الان مجددا آخرین نسخه افزونه رو نصب و چک کردم و مشکلی در نمایش پایینترین قیمت محصول متغیر وجود نداشت.
سلام. ممنون
ولی کدphp هم استفاده کردم تغییری نکرد متاسفانه…
سلام
خواهش میکنم
هم افزونه و هم کد رو روی آخرین نسخه ووکامرس تست کردم و بدون مشکل کار میکرد.
احتمالا باید تنظیمات قالبتون رو بررسی کنین یا مشکلی توی وردپرستون وجود داره که باید بررسی کنید.
سلام وققتون بخیر امکانش هست در قبل از قیمت کمترین. کلمه از اضافه بشه و در وسط به جای خط فاصله تا اضافه شود؟ مثلا به این صورت (( از 9 تا 11 تومان) ؟
سلام
اوقات شما هم به کام
بله، برای این کار میتونین از کد زیر استفاده کنید. کافی است کد زیر را بطور کامل و دقیق کپی و آن را در فایل 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 );
}
فایل را که کپی پیست میکنم . سایت از دسترس خارج میشه
کد تصحیح شد. مجددا آن را کپی کنید و استفاده نمایید.
ممنون درست شد . خدا خیرتون بده
خواهش میکنم، سلامت و موفق باشید
می خواستم از شما و تیمتون تشکر کنم برای من با همون کد اول درست شد خدا خیرتون بده مرسی از سایت خوبتون
خواهش میکنم، سلامت باشید
خوشحالم که براتون مفید بوده و کارتون راه افتاده
سلام و درود
کد رو در فایل functions.php قرار دادم، هیچ تاثیری نداشت. اما افزونه ای که گفتید رو نصب کردم و الگوی قیمت رو روی کمترین گذاشتم و کار کرد. ممننونم
فقط اینکه، متن و لینک دکمه پایین قیمت رو تغییر نداد:
چطور میشه کاری کرد بجای “انتخاب گزینه ها” همان “افزودن به سبد خرید” بیاد؟ یعنی بعد از کلیک رو دکمه، کمترین قیمت محصول رو به عنوان محصول پیش فرض حساب کنه و اون رو به سبد خرید اضافه کنه تا نیاز نباشه مشتری، به صفحه محصول بره و متغیر رو انتخاب کنه.
سلام
بصورت عادی چنین امکانی وجود نداره چون شما یک محصول متغییر ایجاد کردین که مشتری یا کاربر باید صفت و ویژگیهای اون محصول رو انتخاب کنه تا قیمت نهایی اون محصول متغیر براش نمایش داده بشه و بتونه در نهایت اون رو به سبد خرید اضافه کنه.
اما مسلما با کد نویسی میتونین چنین چیزی رو برای محصول متغیر خودتون تعیریف کنید.
بله میدونم. اینکه توی صفحه محصول نیاز باشه تا متغیر رو انتخاب کنیم که مسلما طبیعیه. اما من میخوام تو اسلایدر ها و صفحه فروشگاه، به جای “انتخاب گزینه ها” همان “افزودن به سبد خرید” بیاد و یکی از متغیر های محصول رو به عنوان پیش فرض انتخاب کنه.
افزونه ای برای این منظور در مخزن وردپرس میشناسید؟ یا اینکه اگه بخوام دنبال افزونه اش بگردم، باید چی سرچ کنم؟
راستش تا امروز چنین افزونهای ندیدم اما میتونین ابتدا توی نت اونم به انگلیسی خواسته و مشکل خودتون رو سرچ کنید تا کد php یا افزونهای رایگان یا پولی اگر وجود داشته باشه رو بهتون نشون بده و پیدا کنید.
در هنگام ایجاد محصول متغیر گزینه ای برای این عمل وجود داره که میتونید یک محصول متغیر رو پیش فرض برای خرید قرار بدید. ابتدا متغیر هاتو ایجاد میکنید سپس در بالای همان بخش متغیر پیش فرض رو مشخص میکنید.
سلام میخواستم بدونم از چطور می تونم این عمل رو فقط بر روی صفحه فروشگاه یا آرشیو محصولات اعمال کنم
سلام
باید با کدنویسی این کار رو انجام بدین.
عالی بود یک دنیا ممنونم بابت اموزش خوبتون
خواهش میکنم
خیلی خوشحالم که براتون مفید بوده
ممنون کار کرد ♥
خواهش میکنم، شکرخدا
ممنون از آموزشتون من این کار رو کردم ولی در صفحه خود محصول متغیر که باز میشه تا رنگ محصول و نوع متغیر مشخص نشه، قیمتی رو نشون نمیده اصلا برای این چیکار کنم.
مسلما قیمت محصول متغیر که شیوه نمایشش از کمینه قیمت تا بیشینه هست (که البته شما میتونین اون رو به شیوه دلخواه تغییر بدین). حالا مشتری وقتی خصوصیت و محصول خاصی رو از اون رنج محصول متغیر انتخاب میکنه، قیمت اون محصول خاص بهش نمایش داده میشه و ما قبل از اون هیچ قیمتی از یک محصول خاص به کاربر نمایش داده نمیشه.
اقا خدا خیرت بده درست شد واقعا خیلی بزرگی کردی. یه دونیشن تنظیم کن ما انجام وظیفه کنیم.
یه نقد و یه پیشنهاد هم داشتم.
نقد تو ویدیو هات توضیحات اضافی زیادی میدی که ویدیو رو طولانی و خسته کننده میکنه.
پیشنهاد: به عنوان بازخورد به ووکامرس بازخورد بده این تنظیمات رو به پیکربندیش اضافه کنه دیگه ملت لازم نباشه کد بزنن. خیلی مسخره ست کی تو دنیا اخه بازه قیمتی مشخص میکنه!! حتی نیومده یه سوییچ ساده بزاره
خواهش میکنم، خیلی خوشحالم که مقاله و آموزش براتون مفید بوده و تونسته مشکلتون رو برطرف کنه
توضیحات کامل و دقیق هر ویدئو برای پوشش تمامی سطوح آگاهی و آشنایی با وردپرس، ووکامرس و افزونه است و خیلی از دوستان شاید شبیه شما احاطه نسبی نسبت به هیچ کدام از موارد نداشته باشند و باید آموزش طوری باشه که به همه کمک کنه نه فقط برای فردی یا عدهای خاص کاربردی باشه.
اگر قرار باشه ووکامرس هر آپشن دلخواهی رو به افزونش اضافه کنه کار افزونه نویسها کساد میشه و ووکامرس هم کلی از اینی که الان هست سنگینتر میشه 🙂
البته که درخواست شما کاملا به حقه اما این سبک نمایش ووکامرس مختص نمایش سایتهای خارجی و دلاری و یورویی هست اما برای سایتهای ایرانی این سبک پیشفرض ووکامرس اصلا مناسب نیست و اصلا گیج کنندست.