سایت برتر

نمایش قیمت محصولات به میلیون تومان در ووکامرس

نمایش قیمت محصولات به میلیون تومان در ووکامرس
تبدیل قیمت به میلیون تومان در ووکامرس
تبدیل قیمت به میلیون تومان در ووکامرس

شاید محصولاتی داشته باشید که قیمتی بالاتر از یک میلیون تومان دارند و با نمایش دادن یک محصول ۱۲ میلیون تومانی به‌صورت ۱۲۰۰۰۰۰۰ تومان احتمالا کاربر از سایت شما فرار خواهد کرد. در این مقاله قصد داریم با چند خط کد ساده ۱۲۰۰۰۰۰۰ تومان را به‌صورت ۱۲ میلیون تومان نمایش دهیم. 🙂 با نمایش قیمت محصولات به میلیون تومان در ووکامرس حس بهتری به بازدید کننده سایت شما منتقل خواهد شد.

نمایش قیمت محصولات به میلیون تومان در ووکامرس

زمانی که شما این کار را انجام دهید می‌توانید حس بهتری را در کاربر ایجاد کنید و همچنین کاربر شما ازنظر بازاریابی عصبی راحت‌تر می‌تواند خرید خود را انجام دهد. خب در اینجا در قسمت محصولات دوتا محصول تحت عنوان تبلت داریم. قیمت یکی از این تبلت‌ها 9 میلیون تومان و قیمت دیگری 900 هزار تومان است.

ما قصد داریم قیمت این دو محصول را باهم بررسی کنیم. بعدازاینکه کارمان را انجام دادیم قیمت محصول اول باید 9 میلیون تومان و قیمت محصول دوم تغییری نکند.

Initial price of tablet
قیمت محصول میلیون تومانی
قیمت ابتدایی تبلت
قیمت محصول کمتر از یک میلیون تومان

آموزش تبدیل قیمت به میلیون در ووکامرس

برای اینکه بتوانید این کار را انجام دهید باید از اتم استفاده کنید. بنابراین 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 'تومان';
}

موفق باشید. 🙂

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام میهن وردپرس عضو شوید.

اطلاعاتی دارید که تکمیل‌کننده این مقاله باشد؟ ارسال کنید.

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

سوال دارم

  1. U36368 ۲۸ خرداد ۱۴۰۰

    با سلام میخوام تومان قبل از قیمت بیاد الان بعد از قیمت اومده این رو چطور میتونم تغییر بدم؟

    • رضا حسینی راد رضا حسینی راد ۲۸ خرداد ۱۴۰۰

      درود بر شما توی تنظیمات ووکامرس میتونید موقعیت رو بذارید روی راست با فاصله

  2. U38691 ۲۸ فروردین ۱۴۰۰

    سلام من این کار هارو انجام دادم وقتی وارد سبد خریدم میشیم هزار تومن مینویسه ولی وقتی توی فروشگاه نمایش میده به صورت تومان نمایش میده چیکار کنم ممنون از کمکتون

  3. U8522 ۱۸ آذر ۱۳۹۹

    من قیمت از هزار تومان استفاده میکنم وقتی مشتری مثلا 4 کالای 500 هزار تومانی سفارش میده در فاکتور قیمت نهایی به جای 2 میلیون تومان 2000 هزار تومان نشان داده میشود این مشکل چه طور حل کنم؟

    • تیم پشتیبانی تیم پشتیبانی ۱۹ آذر ۱۳۹۹

      با سلام
      باید کد را اصلاح کنید و برای بیشتر از ۷ کاراکتر شد میلیون رو نمایش بده

      • U8522 ۲۰ آذر ۱۳۹۹

        ممنون از جوابتون منظور منو متوجه نشدید من واحد پولی روی هزار تومان تنظیم شده و کد برای بیشتر از 4 کاراکتر شد میلیون رو نمایش بده ولی وقتی 4 تا جنس 500 هزار تومانی خرید بکنه تو فاکتور مینویسه 2000 هزارتومان در صورتی که باید بنویسه 2 میلیون تومان . برای رفع این مشکل چی کار کنم ؟؟؟
        و با اینکه هزار تومان تعریف شده در بعضی از صفحات سمبول قیمت تومان نشان میده .یه راهنمایی بفرمایید ممنون میشم

        • تیم پشتیبانی تیم پشتیبانی ۲۰ آذر ۱۳۹۹

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

  4. U8522 ۱۸ آذر ۱۳۹۹

    سلام وقت بخیر با ارزو موفقیت برای شما میخواید شماره بخش تولید محتوارو بدید ما زنگ بزنیم ازشون خواهش کنیم بزارن ؟

  5. U11752 ۱۰ آذر ۱۳۹۹

    سلام در اپدیت جدید اینکه اعداد اعشار رو دقیق نشون میده رو مشکلشو برطرف نکردین یعنی محصول 2800000تومان با کد شما تبدیل به 3میلیون تومان میشه در صورتی که باید 2.8میلیون تومان نمایش داده بشه و مبالغ کمتر از 2500000تومان رو 2میلیون تومان نمایش میده و مسئله ی بعدی در صفحه ی فروشگاه این تغییر واحد پول انجام نمیشه و همون قیمت 2800000به این صورت نمایش داده میشه و واحد میلیون تومان اعمال نمیشه.

  6. U20377 ۹ فروردین ۱۳۹۹

    سلام
    من میخوام قیمت های محصولاتم در ووکامرس کلا بدون صفر نشودن داده بشن
    مثلا اگر قیمت یک محصول (30000 تومانه) بشه (30 هزار تومان)
    با اعشار های ووکامرس هم مشکلی حل نشد.باید با فیلتر ها این کارو کرد فکر کنم
    بعضی از سایت ها رو دیدم این کارو کردن اما نتونستم راه حلشو پیدا کنم
    ممنون میشم راهنمایی کنی میهن وردپرس

    • تیم پشتیبانی تیم پشتیبانی ۹ فروردین ۱۳۹۹

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

      • U20377 ۹ فروردین ۱۳۹۹

        بقیه دوستان سوال کردن براشون ویدئو ساختید اونوقت بنده سوال میکنم میگید باید کد نویسی شه
        جناب اقای حسینی راد ما پایه ثابت میهن وردپرسیم و یه سوال کردیم که برای شما پاسخ دادنش اسونه
        لطفا پاسخ بدید اگر هم به این مطلب اضافش کنید ازتون ممنون میشم

        • تیم پشتیبانی تیم پشتیبانی ۹ فروردین ۱۳۹۹

          https://mihanwp.com/woocommerce-million/
          برای هزار تومان ووکامرس فارسی نصب کنید

          واحد هزار تومان اضافه میکنه

          • U20377 ۹ فروردین ۱۳۹۹

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

            • تیم پشتیبانی تیم پشتیبانی ۹ فروردین ۱۳۹۹

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

              • U20377 ۱۰ فروردین ۱۳۹۹

                ببخشید ولی انگار متوجه منظور من نشدید
                اگر روی 0 باشه قیمت رو اینطوری نشون میده و درست هم هست :
                69.000 تومان

                من میخوام اینطوری شه :
                69 هزار تومان
                یا
                69 تومان
                فرقی نداره
                دقیقا مثل سایت خودتون میهن وردپرس ببینید.
                لطفا کمکم کنید من خیلی به این کد نیاز دارم.
                متشکرم

                • تیم پشتیبانی تیم پشتیبانی ۱۰ فروردین ۱۳۹۹

                  شما باید از پسوند هزار تومان استفاده کنید. با استفاده از افزونه ووکامرس فارسی. سپس تمام قیمتها را بدون ۰۰۰ وارد کنید

  7. کاربر مهمان ۲۸ اسفند ۱۳۹۸

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

  8. U11538 ۲۵ اسفند ۱۳۹۸

    سلام الان مثل سایت خودتون بخایم ب هزارتومن بزنیم چیکار کنیم؟

  9. کاربر مهمان ۱۸ اسفند ۱۳۹۸
  10. کاربر مهمان ۱۸ اسفند ۱۳۹۸

    در برگه فروشگاه این تغییرات اعمال نمیشه و فقط در صفحه محصول این تغییرات اعمال میشه و یک ایراد دیگه اینه که مبلغ 2400000 رو رند نمایش میده و میزنه 2میلیون تومان یا 2800000رو میزنه 3میلیون تومان و اعشارشو نمایش نمیده یعنی بزنه 2.4میلیون تومان یا 2.8میلیون تومان و قیمتارو به بالا یا به پایین گرد میکنه

  11. کاربر مهمان ۱۸ اسفند ۱۳۹۸

    با سلام ممنون از آموزشتون
    این کد رو میشه به فانکشن child قالب اضافه کرد که بعد از هر اپدیت ما نیایم این کد رو اضافه کنیم؟

  12. کاربر مهمان ۱۷ اسفند ۱۳۹۸

    سلام
    لطفا کد تبدیل به هزار تومان رو هم بگید.