یکی از مشکلاتی که معمولا مدیران سایتها با ووکامرس دارند این است که هنگامی که محصول متغیری را در سایت تعریف میکنند، با توجه به اینکه آن محصول بر حسب ویژگیها (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 است. این افزونه دارای کدنویسی بسیار تمیز و بهینه است و همواره ورژن جدید آن با آخرین نسخه وردپرس و ووکامرس هماهنگ و سازگار میشود.
پس از نصب این افزونه و فعالسازی آن، تنظیمات افزونه شما را قادر میسازد تا به راحتی، تنها کمترین قیمت از بین قیمت های یک محصول متغیر که بر حسب ویژگیهایش قیمتهای متفاوتی دارد را نمایش دهید.