چگونه فقط کمترین قیمت محصول متغیر را در ووکامرس نمایش دهیم؟

وقتی یک محصول متغیر در ووکامرس تعریف می‌کنیم، این محصول در قسمت جلوی سایت (Front-End) در باکس محصول، صفحه محصول، صفحه فروشگاه و صفحات آرشیو بصورت دوقیمتی نشان داده می‌شود. این قیمت نمایش داده شده متشکل از کمترین قیمت محصول و همچنین بیشترین قیمت محصول است. این نوع شیوه نمایش باعث سردرگمی، سوال و در نتیجه انصراف مشتری از خرید آن محصول می‌شود. در این مقاله می‌آموزیم که چگونه فقط کمترین قیمت محصول متغیر را در ووکامرس به کاربر نمایش دهیم.
کمترین قیمت محصول متغیر ووکامرس

یکی از مشکلاتی که معمولا مدیران سایت‌ها با ووکامرس دارند این است که هنگامی که محصول متغیری را در سایت تعریف می‌کنند، با توجه به اینکه آن محصول بر حسب ویژگی‌ها (attributes) و آپشن‌های متغیر نظیر سایز، نوع، رنگ و … که دارد، میتواند بواسطه تنوع ویژگی‌ها، قیمت‌های متفاوتی داشته باشد و در قسمت صفحه محصول سایت و همچنین باکس محصول آن 2 قیمت به صورت (کمترین قیمت محصول – بیشترین قیمت محصول) نشان می‌دهد که این نوع نمایش معمولا باعث سردرگمی خریدار و انصراف او از خرید می‌شود.

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

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

اما هنگامی که این محصول متغیر را در سایت خود تعریف می‌کنید، در باکس محصول و صفحه محصول و فروشگاه قیمت این محصول متغیر بصورت دوگانه (کمینه قیمت – بیشینه قیمت) نمایش داده می‌شود. که شاید این گونه نمایش مطلوب شما و اهداف مارکتینگی شما نباشد.

ما در این مقاله به دو روش به شما آموزش میدهیم که چگونه فقط کمترین قیمت محصول متغیر را در ووکامرس نمایش دهید:

1. نمایش کمترین قیمت محصول متغییر در ووکامرس با کد PHP

برای نشان دادن پایین‌ترین قیمت محصول متغیر خود در سایت، تنها کافی است که کد PHP زیر را کپی کرده و در سند functions.php قالبتان (یا اگر از چایلد تم استفاده می‌کنید در سند functions.php چایلد تم قالب سایتتان) قرار دهید تا این تغییر بر روی تمامی محصولات متغیر شما و در تمامی بخش های سایت از جمله باکس محصول، صفحه محصول، صفحات فروشگاه و آرشیو محصولات و غیره اعمال شود.

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 استفاده نمایید :

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 است. این افزونه دارای کدنویسی بسیار تمیز و بهینه‌ است و همواره ورژن جدید آن با آخرین نسخه وردپرس و ووکامرس هماهنگ و سازگار می‌شود.

افزونه Variation Price Display Range for WooCommerce

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

تنظیمات افزونه Variation Price Display Range for WooCommerce

به این محتوا امتیاز بدین!

0 / 5

Your page rank:

51 دیدگاه

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

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

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

شکرخدا
خوشحالم که این مطلب تونست بهتون کمک کنه و خیلی زود و سریع مشکل و خواستتون رو برطرف کنه
پاینده باشید

Avatar photo
امیر ثریایی دوست

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

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلام
اوقات شما هم به کام
اگر شما با استفاده از کد معرفی شده در این مقاله کمترین قیمت محصول متغیر خود را در سایت نمایش می‌دهید، می‌توانید با پاک کردن همین کد که در فایل فانکشن قالب خود قرار داده‌اید، مجددا هر دو قیمت کمترین و بیشترین در باکس محصول و صفحه محصول نمایش داده خواهد شد.
البته باید این نکته رو متذکر بشم که نمایش یا عدم نمایش هر دو قیمت کمترین و بیشترین به قالب (پوسته) سایت شما وابسته است.

Avatar photo
atlasi

سلام من این کد را با افزونه code snippets در قسمت php قرار دادم اما در سایتم تغییری ایجاد نمی شود. حتی بصورت دستی در فایل فانکشن هاست قرار دادم باز تغییری ایجاد نشد. ممنون میشم راهنمایی کنید.

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

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

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

بطور کلی نباید به این شکل باشه و شما باید بتونین به فایل فانکشن قالبتون دسترسی داشته باشین اما میتونین برای قالبتون پوسته بچه (child theme) ایجاد کنین و کد رو داخل فایل فانکشن پوسته بچتون قرار بدین.
همچنین میتونین از افزونه Code Snippets که هم نسخه رایگان در مخزن وردپرس داره و نسخه پولی، برای گذاشتن این کد php داخل سایتتون استفاده کنید.

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

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

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلام
بطور کلی این کد هم بر روی قیمت مندرج در صفحه محصول هم قیمت باکس محصول در کاتالوگ (صفحه اصلی – صفحه فروشگاه – آرشیو محصولات همچون صفحه دسته بندی و برچسب و …) تاثیر می‌گذارد.
اگر کد بر روی قسمتی از موارد اشاره شده در بالا تاثیر نمی‌گذارد و همچنان بصورت دوقیمتی یا بازه قیمتی نمایش داده می‌شود باید کد نویسی قالبتون رو بازنگری کنید.

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

خواهش میکنم
بطور کلی با استفاده از این کد و بدون نیاز به افزونه میتونین قیمت دوگانه (بیشترین و کمترین قیمت یک محصول متغیر ووکامرس) که توی باکس محصول یا صفحه آرشیو محصولات یا خود صفحه محصول به کاربر نشون داده میشه رو به یک قیمت یگانه و واحد که کمترین قیمت محصول متغیرتون هست، تغییر بدین و فقط همون کمترین قیمت رو فقط نشون میده.

Avatar photo
پوریا عبداللهی

سلام وقتتون بخیر
بطورکلی قیمت محصول متغیر تو ووکامرس صفر در نظر گرفته میشه
وقتی سورت محصولات رو براساس قیمت (از کم به زیاد) میذاریم بجای اینکه از کمترین قیمت شروع بشه از محصولات متغیر شروع میشه لیست. این کد شما به این قضیه هم کمکی میکنه؟

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلام
اوقات شما هم به کام
خیر، چنین چیزی درست نیست، قیمت محصولات متغیر ووکامرس بدرستی درک و با سایر قیمت محصولات ساده مقایسه می‌شود. من الان برای این که مطمعن بشم از این موضوع چند محصول ساده و متغیر با قیمت های مختلف ایجاد کردم و سپس از فیلتر محصولات (فیلتر ذاتی صفحه فروشگاه ووکامرس) اونها رو بر حسب کمترین و بیشترین قیمت سورت کردم و هیچ مشکلی ندیدم. یعنی ووکامرس بدرستی محصولات رو بر حسب قیمت کمینه به بیشینه و بلعکس سورت کرد (حتی محصولات متغیر رو) و بترتیب قیمت صحیح اونها رو نشون داد. حتی بعد از این که چه با کد و چه با افزونه کمترین قیمت محصولات متغیر رو در سایت نشون دادم، باز هم اونها رو به درستی سورت میکرد. پس اساسا این مورد که گفتین “بطورکلی قیمت محصول متغیر تو ووکامرس صفر در نظر گرفته میشه” بطور کامل رد میشه و اگر چنین مشکلی دارین باید قالب و تنظیمات صفحات آرشیو محصولات و فروشگاه و یا افزونه هایی که میتونن روی فیلتر محصولات تاثیر بذارن رو بررسی کنید.

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

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

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلامت باشید
خیلی خوشحالم که این مقاله تونسته بهتون کمک کنه
دمتون گرم که نظرتون را با ما در میون گذاشتین

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلام
اوقات شما هم به کام
هم میتونین از نسخه پولی این افزونه معرفی شده استفاده کنید تا این امکان رو در اختیارتون قرار بده و یا در اینترنت جستجو کنید تا کد php مخصوص روندی که نیاز دارید رو پیدا کنید.

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

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

Avatar photo
اسماعیل نژاد

سلام. ممنون
ولی کدphp هم استفاده کردم تغییری نکرد متاسفانه…

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلام
خواهش میکنم
هم افزونه و هم کد رو روی آخرین نسخه ووکامرس تست کردم و بدون مشکل کار میکرد.
احتمالا باید تنظیمات قالبتون رو بررسی کنین یا مشکلی توی وردپرستون وجود داره که باید بررسی کنید.

Avatar photo
احسان فرید

سلام وققتون بخیر امکانش هست در قبل از قیمت کمترین. کلمه از اضافه بشه و در وسط به جای خط فاصله تا اضافه شود؟ مثلا به این صورت (( از 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 );
}

Avatar photo
احسان فرید

فایل را که کپی پیست میکنم . سایت از دسترس خارج میشه

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

کد تصحیح شد. مجددا آن را کپی کنید و استفاده نمایید.

Avatar photo
احسان فرید

ممنون درست شد . خدا خیرتون بده

عکس پروفایل محدثه ابراهیمی
محدثه ابراهیمی

خواهش می‌کنم، سلامت و موفق باشید

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

خواهش می‌کنم، سلامت باشید
خوشحالم که براتون مفید بوده و کارتون راه افتاده

Avatar photo
رضا حسینی

سلام و درود
کد رو در فایل functions.php قرار دادم، هیچ تاثیری نداشت. اما افزونه ای که گفتید رو نصب کردم و الگوی قیمت رو روی کمترین گذاشتم و کار کرد. ممننونم
فقط اینکه، متن و لینک دکمه پایین قیمت رو تغییر نداد:
چطور میشه کاری کرد بجای “انتخاب گزینه ها” همان “افزودن به سبد خرید” بیاد؟ یعنی بعد از کلیک رو دکمه، کمترین قیمت محصول رو به عنوان محصول پیش فرض حساب کنه و اون رو به سبد خرید اضافه کنه تا نیاز نباشه مشتری، به صفحه محصول بره و متغیر رو انتخاب کنه.

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلام
بصورت عادی چنین امکانی وجود نداره چون شما یک محصول متغییر ایجاد کردین که مشتری یا کاربر باید صفت و ویژگی‌های اون محصول رو انتخاب کنه تا قیمت نهایی اون محصول متغیر براش نمایش داده بشه و بتونه در نهایت اون رو به سبد خرید اضافه کنه.
اما مسلما با کد نویسی میتونین چنین چیزی رو برای محصول متغیر خودتون تعیریف کنید.

Avatar photo
رضا حسینی

بله میدونم. اینکه توی صفحه محصول نیاز باشه تا متغیر رو انتخاب کنیم که مسلما طبیعیه. اما من میخوام تو اسلایدر ها و صفحه فروشگاه، به جای “انتخاب گزینه ها” همان “افزودن به سبد خرید” بیاد و یکی از متغیر های محصول رو به عنوان پیش فرض انتخاب کنه.
افزونه ای برای این منظور در مخزن وردپرس میشناسید؟ یا اینکه اگه بخوام دنبال افزونه اش بگردم، باید چی سرچ کنم؟

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

راستش تا امروز چنین افزونه‌ای ندیدم اما میتونین ابتدا توی نت اونم به انگلیسی خواسته و مشکل خودتون رو سرچ کنید تا کد php یا افزونه‌ای رایگان یا پولی اگر وجود داشته باشه رو بهتون نشون بده و پیدا کنید.

Avatar photo
موسی

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

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

سلام
باید با کدنویسی این کار رو انجام بدین.

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

خواهش میکنم
خیلی خوشحالم که براتون مفید بوده

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

خواهش می‌کنم، شکرخدا

Avatar photo
میرزا

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

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

مسلما قیمت محصول متغیر که شیوه نمایشش از کمینه قیمت تا بیشینه هست (که البته شما می‌تونین اون رو به شیوه دلخواه تغییر بدین). حالا مشتری وقتی خصوصیت و محصول خاصی رو از اون رنج محصول متغیر انتخاب میکنه، قیمت اون محصول خاص بهش نمایش داده میشه و ما قبل از اون هیچ قیمتی از یک محصول خاص به کاربر نمایش داده نمیشه.

Avatar photo
مهدی مرتضوی

اقا خدا خیرت بده درست شد واقعا خیلی بزرگی کردی. یه دونیشن تنظیم کن ما انجام وظیفه کنیم.
یه نقد و یه پیشنهاد هم داشتم.
نقد تو ویدیو هات توضیحات اضافی زیادی میدی که ویدیو رو طولانی و خسته کننده میکنه.
پیشنهاد: به عنوان بازخورد به ووکامرس بازخورد بده این تنظیمات رو به پیکربندیش اضافه کنه دیگه ملت لازم نباشه کد بزنن. خیلی مسخره ست کی تو دنیا اخه بازه قیمتی مشخص میکنه!! حتی نیومده یه سوییچ ساده بزاره

عکس پروفایل امیرحسین صادقی
امیرحسین صادقی

خواهش میکنم، خیلی خوشحالم که مقاله و آموزش براتون مفید بوده و تونسته مشکلتون رو برطرف کنه
توضیحات کامل و دقیق هر ویدئو برای پوشش تمامی سطوح آگاهی و آشنایی با وردپرس، ووکامرس و افزونه است و خیلی از دوستان شاید شبیه شما احاطه نسبی نسبت به هیچ کدام از موارد نداشته باشند و باید آموزش طوری باشه که به همه کمک کنه نه فقط برای فردی یا عده‌ای خاص کاربردی باشه.
اگر قرار باشه ووکامرس هر آپشن دلخواهی رو به افزونش اضافه کنه کار افزونه نویس‌ها کساد میشه و ووکامرس هم کلی از اینی که الان هست سنگین‌تر میشه 🙂
البته که درخواست شما کاملا به حقه اما این سبک نمایش ووکامرس مختص نمایش سایت‌های خارجی و دلاری و یورویی هست اما برای سایت‌های ایرانی این سبک پیشفرض ووکامرس اصلا مناسب نیست و اصلا گیج کنندست.

آنچه در این مقاله می‌خوانید
جدیدترین مقالات

5 مقاله اخیر از این قسمت برای شما در دسترس است

قابلیت Blueprints در نرم‌افزار لوکال هاست Local
نصب SourceGuardian روی نرم‌افزار Local | نصب ماژول سورس گاردین روی لوکال هاست LocalWP
نصب ionCube روی نرم‌افزار Local | نصب ماژول آیون کیوب روی لوکال هاست LocalWP
نصب ionCube روی نرم‌افزار Local | نصب ماژول آیون کیوب روی لوکال هاست
نصب SSL روی نرم‌افزار Local و فعالسازی HTTPS برای لوکال هاست
فعالسازی SSL برای نرم‌افزار Local
رفع ارور Missing hosts entry / Could not update hosts file نرم‌افزار Local
رفع ارور Waming! Missing hosts entry / Could not update hosts file نرم‌افزار Local