حذف محدوده قیمتی در محصولات متغییر ووکامرس
تغییر سبک نمایش محصولات متغییر | نمایش یکی از قیمت های محصول متغییر ووکامرس | نمایش قیمت حداقل محصولات متغییر | نمایش کمترین قیمت محصولات متغییر | حذف حدود قیمت محصولات ووکامرس
یکی از دغدعه هایی که مدیران فروشگاه ها همواره دارند نحوه نمایش محصولات متغییر در ووکامرس است. زیرا ووکامرس بصورت پیشفرض قیمت محصولات متغییر را بصورت بازه حداقل و حداکثر قیمت های متغییر های تعریف شده نمایش میدهد. این امر از نظر از نظر طراحی در ایران چندان خوشایند نیست و کاربران و مشتریان عادی ما که از امور مربوط به محصولات متغییر بی خبر هستند و ممکن است باعث گمراهی مشتریان باشد و حتی ممکن است برداشت اشتباهی از قیمت های فروشگاه ما داشته باشند و از خرید منصرف شوند. حال ما میخواهیم در این مقاله به شما نحوه حذف حدود قیمت محصولات ووکامرس را آموزش دهیم.
تغییر سبک نمایش محصولات متغییر
ما در افزونه Improved Attributes نحوه نمایش محصولات متغییر را تغییر دادیم اما اینجا میخواهیم قیمت نمایش آن را مدیریت کنیم. بیایید کمی بیشتر درباره این موضوع صحبت کنیم. فرض کنید شما یک محصول موبایل آیفون 12 دارید. این موبایل حافظه های داخلی مختلف ( بین 128 تا 512GB ) دارد. طبیعتا قیمت موبایل با حافظه های داخلی مختلف متنوع است. مثلا گوشی آیفون 12 با حافظه داخلی 256GB یک قیمت مشخص دارد. حال زمانی که میخواهیم این محصول با یک حافظه داخلی مشخصی به فروش برسانیم باید یک قیمت جدا از طریق متغییر های ووکامرس ایجاد کنید. ما در باره متغییر های ووکامرس در دوره آموزشی صفر تا صد ووکامرس توضیح داده ایم. پس اینکه یک محصول متغییر با قیمت های مختلف ثبت کردیم در ووکامرس بصورت پیشفرض حداقل قیمت این متغییرها با یک خط تیره در کنار حداکثر قیمت نمایش میدهد. مانند تصویر زیر:
همانطور که در بالا میبنید قیمت حداقل و حداکثر بصورت یک بازه قیمتی هم در آرشیو محصولات و در تک محصول نمایش داده میشود. حال در ادامه به شما نحوه حذف حدود قیمت محصولات ووکامرس و نمایش قیمت حداقل محصولات متغییر را خواهیم گفت.
نمایش قیمت حداقل محصولات متغییر
// Show only lowest prices in WooCommerce variable products add_filter( 'woocommerce_variable_sale_price_html', 'wpnovin_variation_price_format', 10, 2 ); add_filter( 'woocommerce_variable_price_html', 'wpnovin_variation_price_format', 10, 2 ); function wpnovin_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 . $product->get_price_suffix() . '</del> <ins>' . $price . $product->get_price_suffix() . '</ins>'; } return $price; }
خب با کد با توانستیم حداقل قیمت را نمایش دهیم و نتیجه کار میشود تصویر زیر:
نمایش قیمت حداکثر محصولات متغییر
در مواقعی ممکن است بخواهید برعکس قبل عمل کنید یعنی بخواهید بیشترین قیمت محصولات متغییر را نمایش دهید. برای این کار مانند بند قبل کد زیر را در فایل fucntions.php قالب خود قرار داده و ذخیره کنید:
add_filter( 'woocommerce_variable_sale_price_html', 'wpnovin_variation_price_format', 10, 2 ); add_filter( 'woocommerce_variable_price_html', 'wpnovin_variation_price_format', 10, 2 ); function wpnovin_variation_price_format( $price, $product ) { // Main 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 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] ); if ( $price !== $saleprice ) { $price = '<del>' . $saleprice . $product->get_price_suffix() . '</del> <ins>' . $price . $product->get_price_suffix() . '</ins>'; } return $price; }
خب حالا با کد قبلی علاوه بر اینکه توانستیم بیشترین قیمت را نمایش دهیم. یک متن بیشترین قیمت را هم به قبل قیمت اضافه میکنیم تا کاربران بدانند قیمت محصول را میتوانند کمتر از این هم تهیه کنند.
نتیجه گیری:
شما با آموزش های بالا و حذف حدود قیمت محصولات ووکامرس توانستید حداقل و حداکثر قیمت محصولات متغییر را هم در صفحه آرشیو محصولات و تک محصول نمایش دهید. در نظر داشته باشید این روش میتواند به فروش بیشتر محصولات ووکامرسی شما بینجامد.
- تمامی دیدگاه ها قبل از انتشار عمومی توسط کارشناسان سایت بررسی خواهند شد.
- دیدگاه هایی که جنبه تبلیغاتی داشته باشند تایید نخواهند شد.
- آدرس سایت ، مشخصات مدیریت و... در متن دیدگاه حذف خواهند شد.
- دیدگاه هایی که به زبان انگلیسی باشند تایید نخواهند شد.
- دیدگاه هایی که حاوی توهین ، تهدید یا... باشند تایید نخواهند شد.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.
سلام. این خطا رو میده:
تغییرات کد PHP شما، به دلیل یک خطا در خط 0 از فایل Unknown بازگردانده شد. لطفا اصلاح نمایید و دوباره سعی کنید که ذخیره نمایید.
Exception thrown without a stack frame
درود
خط خطایی که دارید را اعلام کنید.
سلام و وقت بخیر.
کد رو که در فایل function.php کپی میکنم از این خط کد خطای میگیره
$prices = array( $product->get_variation_price( ‘min’, true ), $product->get_variation_price( ‘max’, true ) );
پیام خطا : syntax error, unexpected ‘&’
سلام و درود
محمود عزیز کدها رو بدرستی کپی نکردید اجازه بدید صفحه کامل لود بشه و کدها در قالب مربوطه فعال بشه و سپس کپی کنید.
با سلام
من توی سایت های مختلف تست کردم انجام شد اما یکی از سایت هام انجام نمیشه البته اونم چون فایلش از لحاظ خطوط کدینگ خیلی پیچیده هستش نمیدونم کجا باید بزارم تا اجرا بشه
درود
به احتمال زیاد قالب شما از هوک های پیشفرض ووکامرس استفاده نمیکند.
عالی بود آموزشتون استفاده کردم دستتون درد نکنه!
کد زیاده تو اینترنت ولی باید اظمینان داشته باشی از منبعش
درود بر شما
برقرار باشید.
سلام کد رو گذاشتم ولی با تصویر زیر مواجه شدم
https://s17.picofile.com/file/8429856776/Annotation_2021_04_06_205905.png
سلام
محصول شما متغییر از نوع تخفیف خورده است یعنی محصول متغییر هاتون خودش ویژه هست.