SHET24

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

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

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

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

زمانی که شما این کار را انجام دهید می‌توانید حس بهتری را در کاربر ایجاد کنید و همچنین کاربر شما ازنظر بازاریابی عصبی راحت‌تر می‌تواند خرید خود را انجام دهد. خب در اینجا در قسمت محصولات دوتا محصول تحت عنوان تبلت داریم. قیمت یکی از این تبلت‌ها 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. U336956۲۴ دی ۱۴۰۲

    سلام و خسته نباشید خدمت شما
    من محصولاتم به صورت پک 5 عددی و 6 عددی هست
    در نظر دارم قیمت نمایشی رو در صفحه محصول به صورت تک نمایش بده به مشتری یعنی قیمت پک رو تقسیم بر 5 یا 6 بکنه

    • رضا راد۲۴ دی ۱۴۰۲

      سلام راهی نداره مگر اینکه قیمت هر محصول رو بزنید یا توی توضیحات کوتاه بنویسید این قیمت به ازای هر عدد

  2. U41536۱۵ مهر ۱۴۰۲

    سلام این کدی ک نوشتین در صورت دادن تخفیف به مشکل میخوره و باید get_regular_price() و get_sale_price() به توابع اضافه بشه

    • رضا راد۱۵ مهر ۱۴۰۲

      سلام بله درسته

      • U41536۱۵ مهر ۱۴۰۲

        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 ‘تومان’;
        }

        ////////////////
        من این کد و نوشتم اما نمیدونم این دوتا رو چجوری به این توابع اضافه کنم

        • رضا راد۱۶ مهر ۱۴۰۲

          اصلاح میکنیم کد رو روی سایت

  3. U16495۱۹ اسفند ۱۴۰۱

    سلام وقت بخیر جناب حسینی ما هنوز مونده به شما برسیم که خدای کدنویسی بشیم لطفا مطلب رو آپدیت کنید ۲ ساله منتظریم تو مطلب کد کامل رو بذارید که کل سایت به میلیون تومان نمایش بده و همچنین مجموع سبد خرید اگه به میلیون رسید نمایش بده مثل ۲ جنس ۵۰۰ هزار تومانی باتشکر

    • رضا راد۱ فروردین ۱۴۰۲

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

  4. U313487۶ آبان ۱۴۰۱

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

    • رضا راد۹ آبان ۱۴۰۱

      سلام حتما. ۲. چه خطایی دریافت میکنید؟

      • U313487۱۲ آبان ۱۴۰۱

        بر خلاف بقیه خطاها یه خطای بالا بلند میده ، کلی کد و نوشته انگلیسی … یه صفحه پر

        • رضا راد۱۶ آبان ۱۴۰۱

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

  5. U314417۲۴ مهر ۱۴۰۱

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

    • رضا راد۲۶ مهر ۱۴۰۱

      سلام باید فیلتر های مربوط به اون بخش رو هم اضافه کنید.

  6. U38828۲۱ تیر ۱۴۰۱

    سلام، سپاس از آموزش بسیار مفیدتون. یک سوال: در برگه فروشگاه این تغییرات اعمال نمیشه و فقط در صفحه محصول این تغییرات اعمال میشه! چه قطعه کد دیگه‌ای نیاز اضافه یا پاک بشه تا داخل کل سایت این تغییر اضافه بشه؟ ممنون میشم راهنمایی کنید

    • رضا راد۲۵ تیر ۱۴۰۱

      سلام سپاس. آموزش رو مجدد ببینید. برای صفحه فروشگاه هم توضیح دادیم داخلش

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

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

    • رضا راد۲۸ خرداد ۱۴۰۰

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

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

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

    • رضا راد۲۸ فروردین ۱۴۰۰

      سلام بستگی به قالب سایت شما داره. قالب رو تغییر بدید و تست کنید.

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

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

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

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

      • U8522۲۰ آذر ۱۳۹۹

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

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

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

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

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

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

      سلام
      متوجه منظور شما نشدم متاسفانه.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • تیم پشتیبانیتیم پشتیبانی۲۸ اسفند ۱۳۹۸

      با سلام
      به زودی مقاله را آپدیت خواهیم کرد

      • U11752۲۹ فروردین ۱۳۹۹

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

        • رضا راد۳۰ فروردین ۱۳۹۹

          درود در لیست بروزرسانی هست و به زودی بروز خواهیم کرد.

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

            ممنونم

          • U11752۲۱ اردیبهشت ۱۳۹۹

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

      • U11752۲۴ خرداد ۱۳۹۹

        5ماه گذشت ولی هنوز آپدیت نکردین مقاله رو؟

        • تیم پشتیبانیتیم پشتیبانی۲۴ خرداد ۱۳۹۹

          با سلام و احترام
          این مورد باید توسط تیم تولید محتوا انجام شود. لطفا منتظر باشید

          • U11752۲۰ مرداد ۱۳۹۹

            آپدیت نکردین الان 7ماه گذشت !!!!!!!!!!!!!!!!!!!!!!!!!

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

              به بخش تولید محتوا ارائه شد تصمیم با این بخش هست.

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

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

    • تیم پشتیبانیتیم پشتیبانی۲۶ اسفند ۱۳۹۸

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

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

    عالی بود ممنون

    • تیم پشتیبانیتیم پشتیبانی۱۸ اسفند ۱۳۹۸

      خواهش میکنم. پیروز باشید

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

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

    • کاربر مهمان۲۰ اسفند ۱۳۹۸

      این مورد رو بررسی کردین؟

      • تیم پشتیبانیتیم پشتیبانی۲۰ اسفند ۱۳۹۸

        این مورد رو بررسی میکنیم و پست رو آپدیت خواهیم کرد

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

          ممنونم منتظر آپدیتتون هستم

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

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

    • تیم پشتیبانیتیم پشتیبانی۱۹ اسفند ۱۳۹۸

      باسلام
      بله امکانش هست

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

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

گفتگو با تیم فروشسلام! دنبال پاسخ برای سوالات خود هستید؟ ما اینجا آماده کمک به شما هستیم...

در حال بارگذاری مقالات...

پشتیبانگفتگو با تیم فروش
پشتیبانگفتگو با تیم فروش آنلاین و پاسخگوی شما هستیم. آنلاین

در حال بارگذاری...

سوالی درباره محصولات سایت دارید؟از ما بپرسید.