نمایش قیمت به هزار تومان و میلیون تومان در Easy Digital Downloads

4.5 / 5. تعداد رای: 2

نمایش قیمت به هزار تومان و میلیون تومان در Easy Digital Downloads
نمایش قیمت به هزار تومان و میلیون تومان در Easy Digital Downloads

اگر شما قصد دارید که یک فروشگاه اینترنتی با استفاده از سیستم مدیریت محتوای وردپرس راه‌اندازی کنید می‌توانید از افزونه‌های فروشگاه‌ساز مختلفی استفاده کنید. ازجمله افزونه‌های قدرتمند در وردپرس می‌توان به ووکامرس و EDD اشاره کرد. از افزونه فروشگاه‌ساز ووکامرس برای فروش محصولات فیزیکی و دانلودی به‌صورت هم‌زمان و از افزونه EDD برای فروش محصولاتی که به‌صورت دانلودی هستند استفاده می‌شود. شما بسته به نوع نیاز خود می‌توانید از هریک از این افزونه‌ها در سایت خود استفاده نمایید. اما مسئله مهم نمایش قیمت به هزار تومان و میلیون تومان در Easy Digital Downloads است که به آن می‌پردازیم.

افزونه ایزی دیجیتال دانلودز

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

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

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

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

نمایش قیمت به هزار تومان و میلیون تومان در Easy Digital Downloads

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

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

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

امروز سعی داریم نحوه تبدیل ریال به تومان در Easy Digital Downloads و همچنین حذف علامت ممیز از قیمت محصولات در ووکامرس را به شما میهن وردپرسی‌‌‌‌‌های عزیز آموزش دهیم.

آموزش تبدیل ریال به هزار تومان و میلیون تومان در EDD

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


// add toman and milion to EDD
function edd_mihan_currency( $formatted, $currency, $price ) {
    if ( ! is_admin() ) {
				$western_arabic = array('0','1','2','3','4','5','6','7','8','9');
				$eastern_arabic = array('۰','۱','۲','۳','۴','۵','۶','۷','۸','۹');
			if ( strlen($price) > 9 ){
				$price = @str_replace( ',', '', $price );
				$price = (int)$price / 10000;
				$price = str_replace($western_arabic, $eastern_arabic, $price);
				$milion = mb_substr($price,0,1,'utf-8');
				$hezar = mb_substr($price,1,3,'utf-8');
	      		return $milion . ' میلیون و ' . $hezar . ' هزار تومان';
			} else {
				$price = @str_replace( ',', '', $price );
	      		$price = (int)$price / 10000;
				$price = str_replace($western_arabic, $eastern_arabic, $price);
	      		return $price . ' هزار تومان';
			}
    } else {
      $price = @str_replace( ',', '', $price );
          $price = (int)$price / 10;
          $price = number_format($price);
	      		return $price . ' تومان';
    }
    return $price . ' ریال';
  }
add_filter( 'edd_rial_currency_filter_after', 'edd_mihan_currency', 10, 3 );

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

به‌روزرسانی: تنها در نسخه ۲.۸ EDD یک مشکل کد نویسی وجود دارد که باعث می‌شود تبدیل ریال به تومان در دکمه پرداخت انجام نشود!

برای حل این مشکل نیز راه‌حلی وجود دارد و شما می‌توانید آن را حل کنید. برای انجام آن ابتدا وارد پوشه افزونه شوید. یعنی به مسیر Wp-Content/Plugins/Easy-Digital-Downloads بروید. سپس پوشه Includes را بازکنید. فایل Template-functions.php را با یک نرم‌افزار ویرایش کد بازکنید.

در اینجا شما باید خط شماره ۱۳۸ را حذف کرده و کد زیر را جایگزین آن کنید:

$args['text']  = '<span class="edd-purchase-button-price-text">' . edd_currency_filter( edd_format_amount( $price ) ) . '</span>';

سپس خط شماره ۱۴۱ را حذف و کد زیر را جایگزین آن کنید:

$currency_markup = '';

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

موفق باشید. 🙂

نکته خاصی هست که این مقاله رو تکمیل‌تر کنه؟

  1. U334021 ۵ دی ۱۴۰۲

    با سلام من این کد را قرار دادم فقط یک مشکل دارم و اون اعشار مبلغ وارد شده است مثلا 1000 تومان را به این شکل نمایش میده 1,000.00 با اینکه مبلغ محصول را بروز کردم مجدد به حالت قبل بر می گرده در بخش پیکربندی هم نتونستم گزینه ای پیدا کنم تا مشکل را برطرف کنه، ممنون میشم راهنمایی بفرمایید. [ البته مشکل این کد نبود قبل از قرار دادن کد در فانکشن سایت همین مشکل را داشتم]

  2. U41943 ۱۲ مرداد ۱۴۰۰

    با سلام و خسته نباشید
    کد مورد نظر برای من کار نمیکنه ( تغییری توی واحد های قیمت ایجاد نمیشه همون rial هست )
    از نگارش 2.10.6 هم استفاده می کنم..
    ممنون می شم راهنماییم کنید.

  3. U13858 ۹ فروردین ۱۴۰۰

    سلام من کد رو قرار دادم همه چیز درست انجام شد اما توی پیشنمایش طبق تصویر زیر هنوز به صورت ریال با اعداد هست، اینو چطور می تونم رفع کنم؟

  4. U36477 ۱۳ اسفند ۱۳۹۹

    سلام و خسته نباشید.
    اگر فقط محصولات دانلودی داشته باشیم یعنی میتونیم کلا ووکامرس رو حذف کنیم و بجاش edd رو نصب کنیم؟
    اگر بخوایم روی فایل ها قفل بگذاریم چی؟ (مثلا با SpotPlayer) با edd سازگار است؟

  5. U13634 ۶ اردیبهشت ۱۳۹۹

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

  6. U13634 ۲۸ فروردین ۱۳۹۹

    خیلی ممنون برای من کار کرد و عالی بود.
    فقط میخوام عدد اعشار باشه باید چکار کنم؟

  7. U25787 ۲۶ فروردین ۱۳۹۹

    سلام
    من الان این کد هارو اضافه کردم اما کار نمیکنه … ورژن من 2.9.22 هستش.. شما روی چه ورژنی این رو تست کردین؟
    ای کاهش جای شماره خط (138 و 141) دقیقا میگفتین جایگزین کدام کدها باید بشوند
    چون در این ورژن هر دو خطی که نوشتید خالی هستند و کدی در آن خط ها وجود ندارد و من حدسی تغییرات رو اعمال کردم
    میشه لطفا راهنمایی کنید

    با تشکر

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

      سلام
      روی تمام نسخه ها کار می کند. اون بخش رو نیازی نیست تغییر بدید فقط کدهای فایل functions.php رو اضافه کنید.

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

        چندین دفعه تست کردم حتی روی قالب های مختلف اما نشد…این کد کار نمیکنه کد جدید به صورت زیر هستش میزارم (با این کد من جواب گرفتم روی ورژن 2.9)
        function edd_rial_currency($formatted, $currency, $price){
        if (!is_admin()) {
        $price = @str_replace( edd_get_option( ‘thousands_separator’, ‘,’ ) , ”, $price );
        $price = @$price / 10; return $price . ‘ تومان’;} else return $price . ‘ ریال’;}
        add_filter( ‘edd_rial_currency_filter_after’, ‘edd_rial_currency’, 10, 3 );
        add_filter( ‘edd_rial_currency_filter_before’, ‘edd_rial_currency’, 10, 3 );
        یک warning مربوط به PHP فقط میده در صفحه پرداخت مبنی بر :
        Warning: A non-numeric value encountered
        که به راحتی با افزودن کد زیر در فایل wp-config.php اونم برداشته میشه:
        ini_set(‘display_errors’,’Off’);

  8. U26362 ۹ فروردین ۱۳۹۹

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

    کد دستوری دکمه خرید محصول رو میخوام زیر هر تصویر شاخص محصول قرار بدهم که وقتی عکس محصول در دسته (category) رو نمایش داده میشود قیمت هم داشته باشد.

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

    نمایش دکمه خرید
    این کد هست:

  9. U9570 ۱۷ آبان ۱۳۹۸

    کد رو قرار دادم کار میکنه ولی هنوز اعشار رو از بین نبرده
    البته فقط توی جمع کل فاکتور مثلا 57 هزار تومان رو میزنه 0.057 هزار تومان
    مشکل از کجاس ؟

  10. U5607 ۱۸ مهر ۱۳۹۸

    کد کار نمی کنه کد جدید این طور هستش که خطای php هم نمیده
    function edd_rial_currency($formatted, $currency, $price){
    if (!is_admin()) {
    $price = @str_replace( edd_get_option( ‘thousands_separator’, ‘,’ ) , ”, $price );
    $price = (int)@$price / 10; return $price . ‘ تومان’;} else return $price . ‘ ریال’;}
    add_filter( ‘edd_rial_currency_filter_after’, ‘edd_rial_currency’, 10, 3 );
    add_filter( ‘edd_rial_currency_filter_before’, ‘edd_rial_currency’, 10, 3 );

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

    سلام خسته نباشین
    آقای حسینی افزونه ی EDD در آپدیت جدیدش تومان رو اضافه کرده ولی یه مشکلی که داره اینه که مثل ریال نمایش میده و خودکار یه صفرشو کم نمیکنه
    برای مثال من قبلا که روی ریال تنظیم کرده بودم 30.000 بعد از قرار دادنش روی تومان هم 30.000 تومان نشون میده
    من چون زبانم خوب نیست نتونستم به پشتیبانیش درست توضیح بدم هر چقد گفتم باز متوجه نشدن میشه شما زحمتشو بکشین بگین که رفع کنن؟
    https://wordpress.org/support/topic/problem-displaying-unit-toman/

    • Reza Rad رضا راد ۹ اسفند ۱۳۹۷

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

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

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

        • Reza Rad رضا راد ۱۱ اسفند ۱۳۹۷

          پس این اشتباه افزونه هست. در میان میگذاریم اما فعلا از کد بالا استفاده کنید.

  12. کاربر مهمان ۲۱ مهر ۱۳۹۷

    با سلام. وقتی ورژن پی اچ پی هاست ارتقا داده شد، این ارور رو در موقع خرید نشان داده میشه
    Warning: A non-numeric value encountered in
    که مربوط به سطر
    $price = @$price / 10;
    هستش. شما راهنمایی می فرمایید چکار کنم؟

  13. U14128 ۱۹ مرداد ۱۳۹۷

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

  14. U12585 ۹ مرداد ۱۳۹۷

    سلام.
    من کد اولی را قرار دادم، اما همچنان در قسمت ارز ریال وجود دارد و تومان نیست.
    از آخرین نسخه افزونه هم استفاده می کنم که ظاهرا نباید نیاز به کد های زیر باشه
    $args[‘text’] = ‘‘ . edd_currency_filter( edd_format_amount( $price ) ) . ‘‘;

    $currency_markup = ”;
    من با استفاده از wamp در لوکال هاست کار میکردم. ممکن هست به این دلیل باشه؟
    طبق گفته دوستان “دوستان در نسخه جدید که فیلد 138 خالیه باید از فیلد های 136 و 143 استفاده کنید.” نیز عمل کردم اما فقط ارور داد و چیزی نمایش نداد.
    در یک وردپرس لوکال دیگه تست کردم مجددا همینطور بود.
    کل wamp را حذف کردم و xamp نصب کردم و دوباره تست کردم، فایده نداشت.

    جالب اینکه در نمایش ارور های من define(‘WP_DEBUG’, false); هست و بطور پیش فرض on نبوده و اینکه قسمت ini_set(‘display_errors’,’Off’); را نیز پیدا نمی کنم.
    قبلا خاطرم هست یکبار برای یکی از سایتهای لوکالم مقدار define(‘WP_DEBUG’, on); بود که من خاموش کردم.
    لطفا راهنمایی بفرمایید.

    • Reza Rad رضا راد ۱۰ مرداد ۱۳۹۷

      سلام اره بهتره روی هاست اصلی تست کنید. اگر ارور دریافت می کنید احتمالا جایی اشتباه انجام میدین

  15. کاربر مهمان ۲۱ فروردین ۱۳۹۷

    سلام
    در نسخه 2.9 edd کد اول که در فانکشن قالب قرار میگیره همه رو درست تبدیل میکنه الا جمع کل در سبد خرید رو. همچنان جمع کل رو به ریال وارد میکنه.
    برای این موضوع چکار میشه انجام داد؟

  16. کاربر مهمان ۷ فروردین ۱۳۹۷

    میشه راهنمایی کنید در مرحله اول کد رو در کدام خط قرار بدم؟