نمایش قیمت به هزار تومان و میلیون تومان در 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 = '';
شما علاوه بر استفاده از کد میتوانید از افزونه نیز برای انجام این کار استفاده کنید. اما با استفاده از این قطعه میتوانید هم ریال را تبدیل به تومان کرده و هم اعشار را حذف کنید. یعنی دو کار مهم را میتوانید باهم انجام دهید. چراکه افزونه این دو کار را همزمان برای شما انجام نخواهد داد.
موفق باشید. 🙂
میشه دقیقا بفرمایید که این کد را چجوری اعمال کنم من از برنامه نویسی چیزی نمیدونم ولی از بخش نماش رفتم و مسیر را پیدا کردم ولی اعمال نمیشه
با سلام من از EDD3.3.3 را نصب کردم ضمنا اهورا را هم نصب دارم این کدی که فرموده بودین را اعمال کردم ولی خطا داد و نتونستم ریال را به تومان تبدیل کنم لطفا راهنمایی کنید
این کد قیمت های بالای 10 میلیون رو نمایش ساپورت نمیکنه
برای مثال اگر قیمت رو 12.500.000 بذاریم، یک میلیون و 250 هزارتومان نمایش میده. در صورتی که باید 12 میلیون و 500 هزار باشه
با سلام من این کد را قرار دادم فقط یک مشکل دارم و اون اعشار مبلغ وارد شده است مثلا 1000 تومان را به این شکل نمایش میده 1,000.00 با اینکه مبلغ محصول را بروز کردم مجدد به حالت قبل بر می گرده در بخش پیکربندی هم نتونستم گزینه ای پیدا کنم تا مشکل را برطرف کنه، ممنون میشم راهنمایی بفرمایید. [ البته مشکل این کد نبود قبل از قرار دادن کد در فانکشن سایت همین مشکل را داشتم]
سلام توی تنظیمات پیکربندی تعداد اعشار رو روی صفر قرار بدین حل میشه.
با سلام و خسته نباشید
کد مورد نظر برای من کار نمیکنه ( تغییری توی واحد های قیمت ایجاد نمیشه همون rial هست )
از نگارش 2.10.6 هم استفاده می کنم..
ممنون می شم راهنماییم کنید.
سلام من کد رو قرار دادم همه چیز درست انجام شد اما توی پیشنمایش طبق تصویر زیر هنوز به صورت ریال با اعداد هست، اینو چطور می تونم رفع کنم؟
سلام توی پیشنمایش چه بخشی منظورتون هست؟
سلام و خسته نباشید.
اگر فقط محصولات دانلودی داشته باشیم یعنی میتونیم کلا ووکامرس رو حذف کنیم و بجاش edd رو نصب کنیم؟
اگر بخوایم روی فایل ها قفل بگذاریم چی؟ (مثلا با SpotPlayer) با edd سازگار است؟
سلام بله میتونید. خیر اسپات پلیر پلاگین برای edd نداره
سلام وققتون بخیر من همین کد رو زدم درست عمل کرد. فقط میخوام این ممیز باشه چکار کنم؟ ممنونم راهنماییم کنید
سلام
قسمت $price = @str_replace(‘,’, ”, $price);
را حذف کنید
خیلی ممنون برای من کار کرد و عالی بود.
فقط میخوام عدد اعشار باشه باید چکار کنم؟
سپاس. اون بخش از کد که اعشار رو حذف میکنه رو حذف کنید.
سلام
من الان این کد هارو اضافه کردم اما کار نمیکنه … ورژن من 2.9.22 هستش.. شما روی چه ورژنی این رو تست کردین؟
ای کاهش جای شماره خط (138 و 141) دقیقا میگفتین جایگزین کدام کدها باید بشوند
چون در این ورژن هر دو خطی که نوشتید خالی هستند و کدی در آن خط ها وجود ندارد و من حدسی تغییرات رو اعمال کردم
میشه لطفا راهنمایی کنید
با تشکر
سلام
روی تمام نسخه ها کار می کند. اون بخش رو نیازی نیست تغییر بدید فقط کدهای فایل functions.php رو اضافه کنید.
چندین دفعه تست کردم حتی روی قالب های مختلف اما نشد…این کد کار نمیکنه کد جدید به صورت زیر هستش میزارم (با این کد من جواب گرفتم روی ورژن 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’);
سلام
ممنون. این کد رو بررسی میکنم و مقاله رو به زودی آپدیت میکنیم
با سلام و بسیار سپاس از سایت خوبتون.
لطفا ی راهنمایی می فرمایید
کد دستوری دکمه خرید محصول رو میخوام زیر هر تصویر شاخص محصول قرار بدهم که وقتی عکس محصول در دسته (category) رو نمایش داده میشود قیمت هم داشته باشد.
الان به این صورت هست در سته محصولات که محصولات نمایش میدهد نام محصول زیرش هست قیمت نمایش داده نمیشود.
نمایش دکمه خرید
این کد هست:
?php echo edd_get_purchase_link(get_the_ID(),’افزودن به سبد خرید’,’button’); ?
با سلام
این کد قیمت را دریافت نمیکند. دکمه خرید محصول را نمایش می دهد.
بله میخواستم بدون دکمه خرید رو باید کدوم قسمت بزارم که زیر تصویر هر محصول در کتگوری هم دکمه خریدش اضافه بشه.
با تشکر.
در فایل archive-download.php باید قرار دهید
کد رو قرار دادم کار میکنه ولی هنوز اعشار رو از بین نبرده
البته فقط توی جمع کل فاکتور مثلا 57 هزار تومان رو میزنه 0.057 هزار تومان
مشکل از کجاس ؟
با سلام واحترام
قیمت ها رو باید به ریال تعریف کنید
روی ریال تعریف کردم ولی در مبلغ کل اعشاری نشون میده
مبلغ کالا رو هم باید بصورت ریال تعریف کنید
استاد قیمتم به ریال تعریف کردم ولی توی فاکتور جمع کل رو به اعشار میزنه
به این شکل مثلا 33 هزار تومان میشه 0.33 هزار تومان
مشکل از کجاس ؟
با سلام
طبق همین مقاله اگر انجام دهید اعشار ها حذف میشوند
کد کار نمی کنه کد جدید این طور هستش که خطای 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 );
با سلام و احترام
لطفا آدرس سایت همراه با نام کاربری و رمز عبور مدیریت را به بخش پشتیبانی تکیت کنید:https://mihanwp.com/support/
کدی که فرستادم براتون رو تو فانکشن قالب گذاشتم درست کار می کنه صرفا جهت اطلاع رسانی بود
سلام خسته نباشین
آقای حسینی افزونه ی EDD در آپدیت جدیدش تومان رو اضافه کرده ولی یه مشکلی که داره اینه که مثل ریال نمایش میده و خودکار یه صفرشو کم نمیکنه
برای مثال من قبلا که روی ریال تنظیم کرده بودم 30.000 بعد از قرار دادنش روی تومان هم 30.000 تومان نشون میده
من چون زبانم خوب نیست نتونستم به پشتیبانیش درست توضیح بدم هر چقد گفتم باز متوجه نشدن میشه شما زحمتشو بکشین بگین که رفع کنن؟
https://wordpress.org/support/topic/problem-displaying-unit-toman/
درود مشکل افزونه نیست. شما باید قیمتهاتون رو آپدیت کنید. اگر نمیخواهید قیمتها را اپدیت کنید از روش بالا استفاده کنید.
سلام
نه مشکل از افزونه هست، وقتی رو تومان قرار میدم 30.000 ریال رو 30.000 تومان نشون میده ولی موقع انتقال به درگاه پرداخت همون 30.000 ریال حساب میشه
پس این اشتباه افزونه هست. در میان میگذاریم اما فعلا از کد بالا استفاده کنید.
با سلام. وقتی ورژن پی اچ پی هاست ارتقا داده شد، این ارور رو در موقع خرید نشان داده میشه
Warning: A non-numeric value encountered in
که مربوط به سطر
$price = @$price / 10;
هستش. شما راهنمایی می فرمایید چکار کنم؟
از هاست بخواهید display_errors را off کنند و همچنین طبق این آموزش ارورهای وردپرس را غیر فعال کنید مشکل حل می شود.
https://mihanwp.com/hide-error-in-wordpress/
سلام آقای حسینی راد. خسته نباشید
میخواستم بدونم اینکه بخش ارور های وردپرس رو از هاست حذف کنیم بد نیست؟
پس اگه مشکلی برای سایت پیش بیاد از کجا بفهمیم؟
سلام خیر مشکلی پیش نمیاد. اگر ارور واقعا ارور باشه صفحه سایت سفید میشه 🙂
سلام.
من کد اولی را قرار دادم، اما همچنان در قسمت ارز ریال وجود دارد و تومان نیست.
از آخرین نسخه افزونه هم استفاده می کنم که ظاهرا نباید نیاز به کد های زیر باشه
$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); بود که من خاموش کردم.
لطفا راهنمایی بفرمایید.
سلام اره بهتره روی هاست اصلی تست کنید. اگر ارور دریافت می کنید احتمالا جایی اشتباه انجام میدین
سلام
در نسخه 2.9 edd کد اول که در فانکشن قالب قرار میگیره همه رو درست تبدیل میکنه الا جمع کل در سبد خرید رو. همچنان جمع کل رو به ریال وارد میکنه.
برای این موضوع چکار میشه انجام داد؟
مشکل edd هست و در نسخه های بعدی حل خواهد شد
میشه راهنمایی کنید در مرحله اول کد رو در کدام خط قرار بدم؟
تفاوتی نداره