نمایش قیمت محصولات به میلیون تومان در ووکامرس
- مقالات آموزشی
- بروزرسانی شده در
شاید محصولاتی داشته باشید که قیمتی بالاتر از یک میلیون تومان دارند و با نمایش دادن یک محصول ۱۲ میلیون تومانی بهصورت ۱۲۰۰۰۰۰۰ تومان احتمالا کاربر از سایت شما فرار خواهد کرد. در این مقاله قصد داریم با چند خط کد ساده ۱۲۰۰۰۰۰۰ تومان را بهصورت ۱۲ میلیون تومان نمایش دهیم. 🙂 با نمایش قیمت محصولات به میلیون تومان در ووکامرس حس بهتری به بازدید کننده سایت شما منتقل خواهد شد.
آنچه در این مقاله میخوانید
نمایش قیمت محصولات به میلیون تومان در ووکامرس
زمانی که شما این کار را انجام دهید میتوانید حس بهتری را در کاربر ایجاد کنید و همچنین کاربر شما ازنظر بازاریابی عصبی راحتتر میتواند خرید خود را انجام دهد. خب در اینجا در قسمت محصولات دوتا محصول تحت عنوان تبلت داریم. قیمت یکی از این تبلتها 9 میلیون تومان و قیمت دیگری 900 هزار تومان است.
ما قصد داریم قیمت این دو محصول را باهم بررسی کنیم. بعدازاینکه کارمان را انجام دادیم قیمت محصول اول باید 9 میلیون تومان و قیمت محصول دوم تغییری نکند.
آموزش تبدیل قیمت به میلیون در ووکامرس
برای اینکه بتوانید این کار را انجام دهید باید از اتم استفاده کنید. بنابراین ctrl+shf+o را کلیک و پوشه قالب خود را بازکنید. سپس از مسیر Themes > wp-content < پوشه قالب < Functions را بازکنید.
شما میتوانید در فایل Functions خود توابع خود را وارد کنید و اینکه شما از چه قالبی استفاده میکنید در اینجا اهمیتی ندارد. شما میتوانید از ابتدای قالب خود شروع به نوشتن کد کنید.
اولین کاری که باید انجام دهید این است که یک فیلتر جدید در ووکامرس اضافه کنید. برای این کار دستور زیر را باید وارد کنید:
add_filter('raw_woocommerce_price','mihanwpmilionprice');
این کار نمایش قیمت ووکامرس را طبق تابع جدیدی که ما در اینجا میسازیم برای ما مرتب میکند. اکنون تابعی که برای این کار مشخص کردهایم را مینویسیم:
}(function mihanwpmilionprice($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','mihanwpmilionsymbol');
در اینجا سمبل قیمت ووکامرس را تعیین کردیم. سپس Functions را اضافه میکنیم:
}(function mihanwpmilionsymbol($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','mihanwpmilionprice');
function mihanwpmilionprice($price){
if(is_single()){
if(floatval($price) >= 999999){
$price = $price / 1000000;
return $price;
}
}
return $price;
}
add_filter('woocommerce_currency_symbol','mihanwpmilionsymbol');
function mihanwpmilionsymbol($symbol){
if(is_single()){
$product = new WC_Product(get_the_ID());
$productprice = $product->get_price();
if(strlen($productprice) >= 7){
return 'میلیون تومان';
}
}
return 'تومان';
}
موفق باشید. 🙂
سلام و خسته نباشید خدمت شما
من محصولاتم به صورت پک 5 عددی و 6 عددی هست
در نظر دارم قیمت نمایشی رو در صفحه محصول به صورت تک نمایش بده به مشتری یعنی قیمت پک رو تقسیم بر 5 یا 6 بکنه
سلام راهی نداره مگر اینکه قیمت هر محصول رو بزنید یا توی توضیحات کوتاه بنویسید این قیمت به ازای هر عدد
سلام این کدی ک نوشتین در صورت دادن تخفیف به مشکل میخوره و باید get_regular_price() و get_sale_price() به توابع اضافه بشه
سلام بله درسته
add_filter(‘raw_woocommerce_price’, ‘chiacodeprice’);
function chiacodeprice($price){
if(is_single()){
if (floatval($price) >= 999999) {
$price = floor($price / 1000000);
return $price;
} elseif (floatval($price) >= 999) {
$price = floor($price / 1000);
return $price;
}
}
return $price;
}
function milionkhorde($price){
if ($price >= 999999) {
$price = $price % 1000000;
$price = $price / 1000;
return $price;
} else
return $price;
}
add_filter(‘woocommerce_currency_symbol’, ‘chiacodesymbol’);
function chiacodesymbol($symbol){
if(is_single()){
$product = new WC_Product(get_the_ID());
$productprice = $product->get_price();
if (strlen($productprice) >= 7) {
return ‘ ‘.’میلیون’ . ‘ ‘ . ‘و’ .’ ‘. milionkhorde($productprice) .’ ‘.’هزار تومان’;
} elseif (strlen($productprice) >= 4) {
return ‘هزار تومان’;
}
}
return ‘تومان’;
}
////////////////
من این کد و نوشتم اما نمیدونم این دوتا رو چجوری به این توابع اضافه کنم
اصلاح میکنیم کد رو روی سایت
سلام وقت بخیر جناب حسینی ما هنوز مونده به شما برسیم که خدای کدنویسی بشیم لطفا مطلب رو آپدیت کنید ۲ ساله منتظریم تو مطلب کد کامل رو بذارید که کل سایت به میلیون تومان نمایش بده و همچنین مجموع سبد خرید اگه به میلیون رسید نمایش بده مثل ۲ جنس ۵۰۰ هزار تومانی باتشکر
سلام وقت بخیر به زودی آپدیتش میکنیم.
سلام وقت بخیر
نکته اول اینکه بر وز رسانی محتوا برای صفحات فروشگاهی رو هم انجام بدین لطفا
و نکته دوم اینکه نمیدونم برای شما هم همینطوره یا خیر ولی موقع ویرایش صفحه Chekout با المنتور و قالب هلو المنتور یه خطا میده ، هرچند برگه رو درست نمایش میده
سلام حتما. ۲. چه خطایی دریافت میکنید؟
بر خلاف بقیه خطاها یه خطای بالا بلند میده ، کلی کد و نوشته انگلیسی … یه صفحه پر
دقیقا باید ببینید مربوط به کدوم فایل هست.
سلام و درود من از قالب هلو المنتور استفاده میکنم ویدیو رو دیدم از این کد استفاده کردم و مشکل هم حل شد و کد هم به درستی کار میکنه ولی فقط در صفحه محصول واحد اعمال شده و در صفحه فروشگاه اعمال نشده. چطور باید کاری کرد در صفحه فروشگاه اعمال بشه؟
سلام باید فیلتر های مربوط به اون بخش رو هم اضافه کنید.
سلام، سپاس از آموزش بسیار مفیدتون. یک سوال: در برگه فروشگاه این تغییرات اعمال نمیشه و فقط در صفحه محصول این تغییرات اعمال میشه! چه قطعه کد دیگهای نیاز اضافه یا پاک بشه تا داخل کل سایت این تغییر اضافه بشه؟ ممنون میشم راهنمایی کنید
سلام سپاس. آموزش رو مجدد ببینید. برای صفحه فروشگاه هم توضیح دادیم داخلش
با سلام میخوام تومان قبل از قیمت بیاد الان بعد از قیمت اومده این رو چطور میتونم تغییر بدم؟
درود بر شما توی تنظیمات ووکامرس میتونید موقعیت رو بذارید روی راست با فاصله
سلام من این کار هارو انجام دادم وقتی وارد سبد خریدم میشیم هزار تومن مینویسه ولی وقتی توی فروشگاه نمایش میده به صورت تومان نمایش میده چیکار کنم ممنون از کمکتون
سلام بستگی به قالب سایت شما داره. قالب رو تغییر بدید و تست کنید.
من قیمت از هزار تومان استفاده میکنم وقتی مشتری مثلا 4 کالای 500 هزار تومانی سفارش میده در فاکتور قیمت نهایی به جای 2 میلیون تومان 2000 هزار تومان نشان داده میشود این مشکل چه طور حل کنم؟
با سلام
باید کد را اصلاح کنید و برای بیشتر از ۷ کاراکتر شد میلیون رو نمایش بده
ممنون از جوابتون منظور منو متوجه نشدید من واحد پولی روی هزار تومان تنظیم شده و کد برای بیشتر از 4 کاراکتر شد میلیون رو نمایش بده ولی وقتی 4 تا جنس 500 هزار تومانی خرید بکنه تو فاکتور مینویسه 2000 هزارتومان در صورتی که باید بنویسه 2 میلیون تومان . برای رفع این مشکل چی کار کنم ؟؟؟
و با اینکه هزار تومان تعریف شده در بعضی از صفحات سمبول قیمت تومان نشان میده .یه راهنمایی بفرمایید ممنون میشم
با سلام
بله متوجه هستیم. شما باید در همان کد تعریف کنید که اگر قیمت بیشتر از ۷ رقم شد یعنی به میلیون تومان تبدیل شد به صورت میلیون تومان نمایش داده شود
سلام وقت بخیر با ارزو موفقیت برای شما میخواید شماره بخش تولید محتوارو بدید ما زنگ بزنیم ازشون خواهش کنیم بزارن ؟
سلام
متوجه منظور شما نشدم متاسفانه.
سلام در اپدیت جدید اینکه اعداد اعشار رو دقیق نشون میده رو مشکلشو برطرف نکردین یعنی محصول 2800000تومان با کد شما تبدیل به 3میلیون تومان میشه در صورتی که باید 2.8میلیون تومان نمایش داده بشه و مبالغ کمتر از 2500000تومان رو 2میلیون تومان نمایش میده و مسئله ی بعدی در صفحه ی فروشگاه این تغییر واحد پول انجام نمیشه و همون قیمت 2800000به این صورت نمایش داده میشه و واحد میلیون تومان اعمال نمیشه.
سلام
این ورد رو بررسی میکنیم
سلام
من میخوام قیمت های محصولاتم در ووکامرس کلا بدون صفر نشودن داده بشن
مثلا اگر قیمت یک محصول (30000 تومانه) بشه (30 هزار تومان)
با اعشار های ووکامرس هم مشکلی حل نشد.باید با فیلتر ها این کارو کرد فکر کنم
بعضی از سایت ها رو دیدم این کارو کردن اما نتونستم راه حلشو پیدا کنم
ممنون میشم راهنمایی کنی میهن وردپرس
با سلام
باید با کدنویسی این کار را انجام دهید
بقیه دوستان سوال کردن براشون ویدئو ساختید اونوقت بنده سوال میکنم میگید باید کد نویسی شه
جناب اقای حسینی راد ما پایه ثابت میهن وردپرسیم و یه سوال کردیم که برای شما پاسخ دادنش اسونه
لطفا پاسخ بدید اگر هم به این مطلب اضافش کنید ازتون ممنون میشم
https://mihanwp.com/woocommerce-million/
برای هزار تومان ووکامرس فارسی نصب کنید
واحد هزار تومان اضافه میکنه
مرسی از پاسختون اما هزار تومان رو با کد بالا انجام دادم و اضافه میشه مشکلی نداره
فقط کد بالا برای میلیون هست اگر امکانش باشه برای زیر میلیون هم اعشار ها حذف بشه عالی میشه.
لطفا این قسمت که فکر کنم تو کد بالا فقط به تقسیمه سادستو قرار بدید تا بنده و همگان استفاده کنند.
مرسی
اگر میخواهید اعشار رو حذف کنید توی تنظیمات ووکامرس گزینه تعداد رقمهای اعشار رو برابر با صفر قرار بدید
ببخشید ولی انگار متوجه منظور من نشدید
اگر روی 0 باشه قیمت رو اینطوری نشون میده و درست هم هست :
69.000 تومان
من میخوام اینطوری شه :
69 هزار تومان
یا
69 تومان
فرقی نداره
دقیقا مثل سایت خودتون میهن وردپرس ببینید.
لطفا کمکم کنید من خیلی به این کد نیاز دارم.
متشکرم
شما باید از پسوند هزار تومان استفاده کنید. با استفاده از افزونه ووکامرس فارسی. سپس تمام قیمتها را بدون ۰۰۰ وارد کنید
سلام
روزتون بخیر.ممنون بابت پست مفیدتون
در مورد رند کردن اعداد و عدم نمایش توی صفحه فروشگاه کی این مقاله آپدیت میشه؟
با سلام
به زودی مقاله را آپدیت خواهیم کرد
با سلام اپدیت نکردین مقاله رو؟ این مورد رو ممنون میشیم سریعتر اضافه کنین
درود در لیست بروزرسانی هست و به زودی بروز خواهیم کرد.
ممنونم
با سلام کماکان منتظر اپدیت این مقاله با ارزشتون هستم
5ماه گذشت ولی هنوز آپدیت نکردین مقاله رو؟
با سلام و احترام
این مورد باید توسط تیم تولید محتوا انجام شود. لطفا منتظر باشید
آپدیت نکردین الان 7ماه گذشت !!!!!!!!!!!!!!!!!!!!!!!!!
به بخش تولید محتوا ارائه شد تصمیم با این بخش هست.
سلام الان مثل سایت خودتون بخایم ب هزارتومن بزنیم چیکار کنیم؟
سلام
به جای میلیون به هزار تقسیم کنید
عالی بود ممنون
خواهش میکنم. پیروز باشید
در برگه فروشگاه این تغییرات اعمال نمیشه و فقط در صفحه محصول این تغییرات اعمال میشه و یک ایراد دیگه اینه که مبلغ 2400000 رو رند نمایش میده و میزنه 2میلیون تومان یا 2800000رو میزنه 3میلیون تومان و اعشارشو نمایش نمیده یعنی بزنه 2.4میلیون تومان یا 2.8میلیون تومان و قیمتارو به بالا یا به پایین گرد میکنه
این مورد رو بررسی کردین؟
این مورد رو بررسی میکنیم و پست رو آپدیت خواهیم کرد
ممنونم منتظر آپدیتتون هستم
با سلام ممنون از آموزشتون
این کد رو میشه به فانکشن child قالب اضافه کرد که بعد از هر اپدیت ما نیایم این کد رو اضافه کنیم؟
باسلام
بله امکانش هست
سلام
لطفا کد تبدیل به هزار تومان رو هم بگید.