شاید محصولاتی داشته باشید که قیمتی بالاتر از یک میلیون تومان دارند و با نمایش دادن یک محصول ۱۲ میلیون تومانی بهصورت ۱۲۰۰۰۰۰۰ تومان احتمالا کاربر از سایت شما فرار خواهد کرد. در این مقاله قصد داریم با چند خط کد ساده ۱۲۰۰۰۰۰۰ تومان را بهصورت ۱۲ میلیون تومان نمایش دهیم. 🙂 با نمایش قیمت محصولات به میلیون تومان در ووکامرس حس بهتری به بازدید کننده سایت شما منتقل خواهد شد.
زمانی که شما این کار را انجام بدهید میتوانید حس بهتری را در کاربر ایجاد کنید و همچنین کاربر شما ازنظر بازاریابی عصبی راحتتر میتواند خرید خود را انجام دهد. خب در اینجا در قسمت محصولات دوتا محصول تحت عنوان تبلت داریم. قیمت یکی از این تبلتها 9 میلیون تومان و قیمت دیگری 900 هزار تومان است.
ما قصد داریم قیمت این دو محصول را باهم بررسی کنیم. بعدازاینکه کارمان را انجام دادیم قیمت محصول اول باید 9 میلیون تومان و قیمت محصول دوم تغییری نکند.
قیمت محصول میلیون تومانی
آموزش تبدیل قیمت به میلیون در ووکامرس
برای اینکه بتوانید این کار را انجام دهید باید از اتم استفاده کنید. بنابراین ctrl+shf+o را کلیک و پوشه قالب خودتان را بازکنید. سپس از مسیر Themes > wp-content < پوشه قالب < Functions را بازکنید.
شما میتوانید در فایل Functions خود توابع خود را وارد کنید و اینکه شما از چه قالبی استفاده میکنید در اینجا اهمیتی ندارد. شما میتوانید از ابتدای قالب خودتان شروع به نوشتن کد کنید.
اولین کاری که باید انجام دهید این است که یک فیلتر جدید در ووکامرس اضافه کنید. برای این کار دستور زیر را باید وارد کنید:
add_filter('raw_woocommerce_price','bistscriptmilionprice');
این کار نمایش قیمت ووکامرس را طبق تابع جدیدی که ما در اینجا میسازیم برای ما مرتب میکند. اکنون تابعی که برای این کار مشخص کردهایم را مینویسیم:
}(function bistscriptmilionprice($price)
اکنون باید این تابع را به شکل زیر شرطی کنیم:
if(is_single()){ if(floatval($price) >= 999999){ $price = $price / 1000000; return $price; } } return $price; }
طبق تابع بالا شما مشخص میکنید که اگر قیمت محصول از 999999 بیشتر شد آن را تقسیمبر 1000000 کند. بهعنوانمثال در اینجا 9 میلیون تومان تقسیمبر 1 میلیون تومان شده و 9 بهدست میآید. همچنین مشخص میکنیم اگر هم قیمت بالاتر از این مقدار نباشد همان قیمت قبل را نشان بدهد. زمانی که تا این مرحله پیش رفتید ذخیره را انجام دهید.
همانطور که در تصاویر زیر مشاهده میکنید قیمت محصول 9000000 تومانی تغییر کرده است.
نمایش قیمت بصورت میلیون تومان در ووکامرس
حال برای اینکه 9 تومان را تبدیل به 9 میلیون تومان کنیم یک فیلتر جدید دیگر اضافه میکنیم:
add_filter('woocommerce_currency_symbol','bistscriptmilionsymbol');
در اینجا سمبل قیمت ووکامرس را تعیین کردیم. سپس Functions را اضافه میکنیم:
}(function bistscriptmilionsymbol($symbol)
در تابع بالا ما باید یک مقداری را برگردانیم که سمبل قیمت ما است. سپس Functions را بازکرده و شروع میکنیم. کاری که در اینجا باید بکنیم این است که قبل از هر چیزی قیمت محصول را بگیریم و بر اساس قیمت سمبل قیمت را از تومان تبدیل به میلیون تومان کنیم.
if(is_single()){ $product = new WC_Product(get_the_ID()); $productprice = $product->get_price(); if(strlen($productprice) >= 7){ return 'میلیون تومان'; } } return 'تومان'; }
در اینجا مشخص کردیم که اگر طول قیمت 7 یا بیشتر از 7 باشد، سمبل قیمت را به میلیون تومان تبدیل کند و در غیر این صورت تومان را نمایش دهد. البته اگر شما از “هزار تومان” استفاده میکنید “تومان” را تبدیل به “هزار تومان” کنید و عدد 4 را جایگزین 7 کنید. همچنین در قطعه کد بالا باید بهجای تقسیمبر 1 میلیون تقسیمبر هزار شود و 999999 تبدیل به 999 شود.
رفع خطای سفید در صفحه سبد خرید
خب تا اینجا ما توانستیم قیمتها را بهدرستی تغییر دهیم. اما مسئلهای که در اینجا وجود دارد این است که وقتی محصولات را به سبد خرید اضافه میکنیم و به صفحه سبد خرید مراجعه میکنیم، این صفحه سفید میشود. این موضوع یعنی اینکه به ما ارور داده میشود و یک مقدار را بهصورت نادرست برای ما نشان میدهد.
خب برای اینکه این مشکل را برطرف کنیم باید قبل از کدنویسی در قطعه کدهای 3 و 6 کد زیر را وارد کنید.
if(is_single()){
اما ما برای راحتی کار شما کد را در همان ابتدا قرار دادهایم و نیاز به وارد کردن مجدد نیست.
همانطور که مشاهده میکنید قیمت محصول به 9 میلیون تومان تبدیل شده است.
پس کل کدهایی که باید در قالب سایت خود اضافه کنید اینهاست:
add_filter('raw_woocommerce_price','bistscriptmilionprice'); function bistscriptmilionprice($price){ if(is_single()){ if(floatval($price) >= 999999){ $price = $price / 1000000; return $price; } } return $price; } add_filter('woocommerce_currency_symbol','bistscriptmilionsymbol'); function bistscriptmilionsymbol($symbol){ if(is_single()){ $product = new WC_Product(get_the_ID()); $productprice = $product->get_price(); if(strlen($productprice) >= 7){ return 'میلیون تومان'; } } return 'تومان'; }
موفق باشید. 🙂
- مشکلی دارید؟ جواب خود را در پست فروم بگیرید
- منبع : بیست اسکریپت لطفا رعایت کنید