آموزش تبدیل ریال به تومان در Easy Digital Downloads
در آموزشی که اخیرا برای شما در سایت درج کردیم، به تبدیل عبارت RIAL به ریال در افزونه EDD پرداخته بودیم. اما نکته ای که یک جورهایی در آن آموزش از قلم افتاد، آموزش تبدیل ریال به تومان در Easy Digital Downloads بود. البته این مسئله از جهاتی هم مزیت خاص خود را داشت. اگر میخواستیم آموزش تبدیل ریال به تومان در افزونه edd را در همان آموزش برای شما شرح دهیم، این مسئله به شکل مختصر و کوتاه و بدون پرداختن به همه زوایای ماجرا انجام میشد. اما حالا که یک آموزش جداگانه را به این مبحث اختصاص داده ایم، میتوانیم تمامی مواردی که لازم است در این رابطه مطرح شود را به طور کامل و آنطور که باید و شاید، برای شما شرح دهیم.
در آموزش امروز به دو روش، اضافه کردن تومان به افزونه EDD را خواهیم آموخت. در روش اول، این کار را با استفاده از کد انجام داده و در روش دوم همین کار را با استفاده از یک افزونه کاربردی کوچک انجام میدهیم. در آخر هم به چند نکته پیرامون این آموزش خواهیم پرداخت که شاید مطالعه آنها برای شما هم جالب باشد. با ما همراه شوید.
تبدیل ریال به تومان در Easy Digital Downloads با استفاده از کد
در روش اول، تبدیل واحد ارزی ریال به تومان را با قرار دادن چند خط کد در فایل function.php قالب یا افزونه ویژه سایت که از قبل ایجاد کرده ایم قرار میدهیم. این روش دو مزیت دارد. اول اینکه شما را از نصب یک افزونه جداگانه برای انجام عمل مورد نظر، بی نیاز میکند. دوم اینکه ویرگول نشان داده شده در بین اعداد (جداکننده هزار) را از قیمت های نمایش داده شده در سایت شما حذف میکند. برای استفاده از این روش کافی است کد زیر را در یکی از محل هایی که در خط اول ذکر کردیم قرار دهید :
1 2 3 4 5 6 7 8 9 10 11 | if ( ! function_exists( 'mrcode_edd_toman' ) ) { function mrcode_edd_toman( $formatted, $currency, $price ) { if ( ! is_admin() ) { $price = @str_replace( ',', '', $price ); $price = @$price / 10; return $price . ' تومان'; } return $price . ' ریال'; } } add_filter( 'edd_rial_currency_filter_after', 'mrcode_edd_toman', 10, 3 ); |
پس از ذخیره تغییرات و بارگذاری مجدد سایتتان خواهید دید که واحد ارزی نمایش داده شده در طرف کاربری سایت از ریال به تومان تغییر داده شده است.
طبق معمول، ایجاد بکاپ از فایلی که تصمیم به ویرایش آن را دارید فراموش نشود!
تبدیل ریال به تومان در Easy Digital Downloads با افزونه
اگر روش قبلی برای شما ایده آل نیست و ترجیح میدهید که با استفاده از افزونه کارتان را راه بیاندازید، این روش برای شما مناسب خواهد بود.
برای استفاده از این روش کافی است افزونه EDD Rial to Toman را بر روی سایت خود نصب و فعال کنید. (آموزش نصب افزونه در وردپرس)
این افزونه نیاز به هیچ نوع تنظیمی نداشته و بلافاصله پس از فعال شدن، واحد ریال را در سایت شما به تومان تبدیل میکند. اما کمبودی که نسبت به روش قبل دارد این است که جداکننده هزار را از قیمت های سایت حذف نمیکند. البته این مسئله ایراد نبوده و بیشتر مبحثی سلیقه ای است. بنابراین با توجه به نیاز و تصمیم خود میتوانید از هر یک از این دو روش که مایل هستید برای تبدیل ریال به تومان در افزونه Easy Digital Downloads بهره ببرید.
توضیحات تکمیلی
در بالا به دو روش عملی، آسان و مناسب برای تبدیل واحد ارزی ریال به تومان در افزونه دانلود های دیجیتال پرداختیم. اما این دو روش تنها روش هایی نیستند که با استفاده از آنها میتوان واحد تومان را به سایت اضافه کرد. مثلا میتوانستیم از فیلتر edd_currencies بهره بگیریم و یا با نصب افزونه EDD Currency by Sorsawo Digital واحد ارزی دلخواهمان را به این افزونه اضافه کنیم. خوب، پس چرا از روش های بالا استفاده کردیم؟
دلیل این مسئله این است که افزونه edd برای واحد های ارزی مختلف، دو رقم اعشار پس از قیمت نشان میدهد. مثلا در واحد ارزی دلار، مقداری مثل 11.99 تعریف شده است. این در حالی است که برای واحد های ارز ایران یعنی تومان و ریال، نشان دادن دو رقم اعشار، مفهومی نداشته و تنها نمای سایت را زشت کرده و از کاربردی بودن آن میکاهد. برای رفع این مشکل، در افزونه edd به صورت پیشفرض برای چند واحد ارزی از جمله RIAL شرطی تعریف شده که اگر واحد ارزی سایت روی یکی از این واحد های ارزی (مثلا RIAL) قرار گرفت، دارای اعشار پس از قیمت نباشد.
حال اگر ما میخواستیم خودمان واحد ارزی جدیدی به افزونه اضافه کنیم، یا میبایست همین مبحث عدم نمایش اعشار را به صورت دستی پیاده سازی میکردیم و یا اینکه باید کدهای افزونه را دست کاری میکردیم که هیچ یک به اندازه دو روش بالا، ساده و کاربردی نیستند.
امیدواریم که آنچه در این آموزش ذکر شد، برای شما مفید بوده باشد.
سلام، دستتون درد نکنه بخاطر این کد
مسله ای که بعد از استفاده از کد پیش میاد اینه که در بالای سایت خطای php نشون داده میشه و به لاین 5 این کد اشاده میکنه
(یعنی این: $price = @$price / 10;)
و میگه که مقدار غیرعددی استفاده شده است.
لطفا برای رفع این خطا راهنمایی کنید.
سلام
برای بنده این کد خطایی تولید نمیکنه.
کلا اینکه این کد بخواد روی خطی که شما میگید خطا بده خیلی عجیب هست چون اگر دقت کنید این خط توش یک علامت ات داره که باعث نادیده گرفتن هر خطایی میشه. البته من بدون علامت ات هم کد رو الان تست کردم. (php 5.6) خطایی اتفاق نیافتاد و کد بدون مشکل کار کرد.
اگر چیزی که داره بهتون اعلام میشه واقعا خطاست که هیچ اما اگر هشداره، خیلی راحت کافیه wp debug رو غیر فعال کنید و به کارتون ادامه بدید … (کلا wp debug روی سایتی که به صورت لایو در دسترس عمومه نباید فعال باشه مگر در مواقع خاص)
سلام. برای من هم دقیقا این خطا ایجاد می شه.
تا php 7 مشکلی نیست ولی وقتی می رم رو php7.1 این خطا می یاد
سلام من این function.php رو پیدا کردم ولی چنتاس در مسیر های مختلف کدوم باید ادیت بشه؟
سلام
هر قالب یک فایل functions.php داره که در فولدر اصلی اون قرار گرفته.
ممنونم درست شد
ببخشید من قالب ای دیجیتال رو نصب کردم
میشه برا هر محصول گالری عکس گذاشت
اگه میشه چطوری؟
اگر منظورتون مثل گالری تصاویر محصول در ووکامرسه، خیر اما در دانلود های EDD مثل نوشته های عادی وردپرس میشه با استفاده از درج پرونده های رسانه ای، یک گالری از تصاویر دلخواهتون رو قرار بدید.
من هم از یه شرکتی قالب خریدم اما مشکل که دارد وقتی قیمت را به تومان 8/000 تومان وارد می کنم توی درگاه پرداخت 80/000 تومان نشان می دهد.
در حالت عادی من یه صفر را کم کردم اما روی برچسب قیمت 8000 تومان را 800 تومان نشون میده
نمیدونم چه کنم این کد و افزونه هم درست نکرد کسی هست کمکم کنه
سلام.
من این کد رو وقتی با استفاده از روش افزونه انجام میدم کار نمیکنه و باید حتما تو خود تابع function.php بنویسم تا کار کنه ! چرا؟ مشکل از چیه؟
سلام
این کد روی سایت فروشگاهیم فعال بود من از edd sale price برای زدن تخفیف رو محصولام استفاده میکنم
یه محصول 150 هزارتومنی داشتم و قیمت با تخفیفش رو 110 هزارتومن درج کردم
فروش میرفت بدون هیچ مشکلی
اما امروز یهو قیمتش توی سبد خرید میشد 0.1 تومن و یدونه فروش رفت که ضررم هم شد
بدون اینکه افزونه ای اضاف کنم یا اصلاتغییری بدم فقط وردپرس به 5.1 اپدیت شد همین کار دیگه ای نکردم
رفتم توی کد عدد 10 رو به 100 تغییر دادم درست شد .
میشه توضیح بدین ایا ممکنه مشکلی باز پیش بیاد ؟ یا اصلا دلیل چی بود بدون تغییر تو کد یهو عملکردش عوض شد؟
سلام
اون عدد 10 که تغییرش دادید هیچ تاثیری توی خروجی تابع نداره، فقط اولویت اجرای تابع رو تغییر میده. بنابراین من برداشتم اینه که مشکل اصلی جای دیگه ای بوده.
خب من الان باز تغییر دادم به 10 و باز مشکل تکرار شد ولی وقتی روی 100 قرار میدم درست میشه. توی تابع add_filter منظورمه آخره کد.
خب به غیر از functions و پلاگین مشکل نمیتونه از جای دیگه باشه . پلاگین خاصی ندارم و فانکشن هم دستکاری نکردم ! بعید هم میدونم از هسته وردپرس 5.1 باشه. ( البته اینجور که نشون میده هست انگار)
بنظرتون چطور میشه سر در اورد؟
متوجه منظورتون شدم. اون عدد فقط اولویت اجرای تابع رو تغییر میده.
متاسفانه در این زمینه نمیتونم کمکی بکنم چون بررسی دقیق و ریز نیاز داره که مشخص بشه قیمت کجا و چرا دچار مشکل میشه.
بله درسته ،
البته من روی سایت از طریق htaccess کش ست کرده بودم روی تقریبا همه نوع فایلی
به نظر خودم به دلیل کش بود و چون اکسپایر شده احتمالا علتش این بوده
EDD Rial to Toman
این افزونه آخرین آپدیتش مربوط به هشت سال پیش میشود. افزونه دیگه ای نمیشناسید؟؟؟؟