مقالات وردپرس ایرانی
آموزش رفع خطای invalid iso 4217 currency code error در سرچ کنسول
پیغام خطای “Invalid ISO 4217 Currency Code” یکی از هشدارهای متداولی است که به ویژه در سایتهای وردپرس و فروشگاههای ووکامرس به چشم میخورد. این خطا معمولاً زمانی رخ میدهد که به جای استفاده از کد ارزی استاندارد ISO 4217، از یک مقدار اشتباه یا نامعتبر مانند “IRT” استفاده شده است.

اصلا ISO 4217 چی هست؟
ISO 4217 یک استاندارد بینالمللی برای تعریف کدهای ارزی است که توسط سازمان بینالمللی استانداردسازی (ISO) ایجاد شده است. این کدها برای تسهیل تبادل اطلاعات مالی بینالمللی و یکپارچهسازی دادههای ارزی استفاده میشوند.
ساختار کدهای ارزی:
- کدهای ارزی شامل سه حرف هستند. دو حرف اول معمولاً نشاندهنده کد کشور (بر اساس استاندارد ISO 3166-1 alpha-2) و حرف سوم نشاندهنده ارز مربوطه است.
- به عنوان مثال، کد ارزی دلار آمریکا “USD” است که “US” نشاندهنده ایالات متحده و “D” نشاندهنده دلار است.
استفاده گسترده:
- بانکها، کسبوکارها، سازمانهای دولتی و سیستمهای مالی مختلف از این کدها برای یکپارچهسازی دادهها و تسهیل انتقالات مالی استفاده میکنند.
نمونههایی از کدهای ارزی ( ISO 4217 ):

- HKD: دلار هنگکنگ
- IDR: روپیه اندونزی
- IQD: دینار عراق
- KMF: فرانک کومور
- IRR: ریال ایران (Iranian Rial)
- EUR: یورو (Euro)
- INR: روپیه هند
- JPY: ین ژاپن (Japanese Yen)
- GBP: پوند استرلینگ بریتانیا (British Pound Sterling)
- ILS: واحد پول اسراییل (شکل جدید اسرائیل)
- کدهای بیشتر در ویکی پدیا
علت خطای Invalid ISO 4217 currency code
علت اصلی این خطا عدم رعایت استانداردهای بینالمللی در تعریف کدهای ارزی است. استاندارد ISO 4217 یک مجموعه از کدهای سهحرفی را برای هر ارز تعریف کرده است که دو حرف اول معمولاً نشاندهنده کشور و حرف سوم نشاندهنده خود ارز است. این استاندارد به منظور تسهیل تبادل اطلاعات مالی بینالمللی و یکپارچهسازی دادههای ارزی ایجاد شده است و برای ایران “IRR” در نظر گرفته شده است به معنی ریال ایران.
هنگامی که از تومان در تنظیمات ووکامرس استفاده میکنیم، کدهای خروجی برای واحد ارزی به IRT هست و اگر واحد پول ریال انتخاب بشه، خروجی میشه IRR که صحیح و بدون مشکل هست. چون در استاندارد بینالمللی واحد پولی ایران IRR هست و در صورت استفاده از کد متفرقه، با خطای Invalid ISO 4217 currency code در سرچ کنسول مواجه میشیم که در سئو هم تاثیر میگذاره.


راه حل مشکل Invalid ISO 4217 currency code در سرچ کنسول چیه؟
برای حل این مشکل، باید اطمینان حاصل کنید که در فیلد “Currency” در اسکیمای Product از کد ارزی استاندارد ISO 4217 استفاده کردهاید. برای مثال، اگر واحد پول مورد نظر شما ریال ایران است، باید از کد ایزوی “IRR” استفاده کنید. این کار نه تنها خطای مذکور را رفع میکند، بلکه به بهبود تجربه کاربری و افزایش اعتماد مشتریان شما نیز کمک میکند.

در ادامه این آموزش، ما روشهای مختلفی رو پیاده سازی کردیم تا این مشکل رو به راحتی رفع کنید
اولین راه حل استفاده از واحد پولی ریال هست در پیکربندی ووکامرس ولی این روش مناسب نیست و باعث ایجاد سردرگمی مشتری میشه چون برای ما ایرانیا واحد ریال برای خرید جا نیفتاده و ممکنه مشتری دچار مشکل بشه که هزینه خرید محصول چقدر هست. به همین علت واحد پولی تومان رو انتخاب میکنیم و یکی از کارهای زیر رو انجام میدیم
روشهای رفع خطای Invalid ISO 4217 currency code در سرچ کنسول
- روش چهارم (لاک پشت): نصب افزونه ووکامرس فارسی (پیشنهاد نمیشه)
در این روش فقط کافیه افزونه ووکامرس فارسی رو از طریق این لینک دانلود و نصب کنید و یا عبارت “ووکامرس فارسی” را در بخش افزودن افزونه تازه سایتتون وارد کنید و اقدام به نصب و فعال سازی کنید. افزونه ووکامرس فارسی بطور خودکار این مشکل رو رفع میکنه ولی گاها در برخی سایتها بدرستی کار نمیکنه و همچنین در برخی موارد کدهای اسکیما رو هم با تغییر غیراستاندارد میکنه.
- روش سوم (سنجاقک): تغییر در کدهای اسکیمای خروجی افزونه رنک مث ( بصورت دستی )
در این روش باید خودتون اسکیمای مصول رو بسازید که مناسب نیست و نیاز به تخصص در زمینه سئو داره. همچنین در صورت اغدام اشتباه ممکنه سئوی سایت به نابودی کشیده بشه. (این مورد در پستی جداگانه آموزش داده میشه) پس میریم سراغ راه بهتر👇🏻
- روش دوم (ملخ): تغییر در کدهای اسکیمای خروجی افزونه یواست و افزونه رنک مث ( بصورت اتوماتیک )
توی این روش از کدهایی استفاده میشه که خیلی سریع و بدون دردسر واحد پولی تومان در سایت نمایش بدید ولی در اسکیما و خروجی که برای گوگل نمایش داده میشه واحد ریال باشه. حالا بریم سراغ کدهای جداگانه برای هر دو افزونه.
کد رفع اتوماتیک خطای Invalid ISO 4217 currency code برای افزونه یواست :
add_filter('wpseo_schema_product', function($data) {
if (isset($data['offers']) && is_array($data['offers'])) {
foreach ($data['offers'] as &$offer) {
if (isset($offer['priceSpecification']) && is_array($offer['priceSpecification'])) {
foreach ($offer['priceSpecification'] as &$priceSpec) {
if (isset($priceSpec['priceCurrency']) && $priceSpec['priceCurrency'] === 'IRT') {
$priceSpec['priceCurrency'] = 'IRR';
}
}
}
}
}
return $data;
});کد رفع اتوماتیک خطای Invalid ISO 4217 currency code برای افزونه رنک مث:
function wpirnai_iso_4217_fixer($data) {
if (is_array($data) || is_object($data)) {
foreach ($data as $key => &$value) {
if (is_array($value) || is_object($value)) {
$value = wpirnai_iso_4217_fixer($value);
} elseif (is_string($value) && $value === 'IRT') {
$value = 'IRR';
}
}
}
return $data;
}
add_filter('rank_math/snippet/rich_snippet_product_entity', function($data) {
return wpirnai_iso_4217_fixer($data);
});- روش اول (آفتابپرست): تغییر در خروجی واحد پولی تومان در ووکامرس ( قابل استفاده برای سایت با هر افزونه سئو) – برای همین اسمشو آفتابپرست گذاشتیم 😂
این روش استانداردترین و بهترین روشی هست که برای اولین بار توسط وردپرس ایرانی ارائه شده
function wpirnai_iso_4217_fixer($data) {
if (is_array($data) || is_object($data)) {
foreach ($data as $key => &$value) {
if (is_array($value) || is_object($value)) {
$value = wpirnai_iso_4217_fixer($value);
} elseif (is_string($value) && $value === 'IRT') {
$value = 'IRR';
}
}
}
return $data;
}
add_filter('woocommerce_structured_data_product', function($schema) {
return wpirnai_iso_4217_fixer($schema);
}, 10, 2);توجه کنید شاید روش اول برای رنک مث بدرستی کار نکنه و نیاز باشه از روش دوم برای رنکمث استفاده کنید، چون این افزونه کلا ساختار کدنویسی بدی داره. یواست از داده های ووکامرس استفاده میکنه و فقط مواردی که نیازه اضافه میکنه ولی رنک مث میاد کلا از اول اسکیما تولید میکنه برای همین تداخل بوجود میاد و برخی کدهای استاندارد ووکامرس جوابگو نیست.
کدهای جادویی بالا برای رفع خطای Invalid ISO 4217 currency code رو کجا و چطور قرار بدیم؟🤔
یه توصیه دوستانه: قبل از اینکه هر کدی رو توی فایلهای قالبتون قرار بدین، حتماً یه بک آپ از سایتتون بگیرید. اینطوری خیالتون راحته که اگه یه وقت مشکلی پیش اومد، میتونید سایتتون رو برگردونید
1- برو به قلب قالبت! (از طریق پیشخوان وردپرس > نمایش > ویرایشگر پوسته
2- فایل functions.php رو پیدا کن! (معمولاً سمت چپ، لیست فایلهاست)

حالا کدهای بالارو با دقت در انتهای این فایل بچسبون!
تغییرات رو ذخیره کن! و تمام
اگه از طریق مسیر بالا نتونستی کد رو قرار بدی مثلا منوی “ویرایشگر پرونده پوسته” وجود نداشت یا خطایی دریافت کردی و هر مشکل دیگهای، میتونی یا از روشی که در این آموزش ( آموزش افزودن کد به وردپرس با افزونه wpcode ) توضیح دادیم استفاده کنی و یا به خودمون بگی تا واست انجام بدیم
فراموش نکنی نظرت برای ما خیلی مهمه! ❤️
این خطا معمولاً زمانی رخ میدهد که به جای استفاده از کد ارزی استاندارد ISO 4217، از یک مقدار اشتباه یا نامعتبر مانند “IRT” استفاده شده است.
یک استاندارد بینالمللی برای تعریف کدهای ارزی هست که توسط سازمان بینالمللی استانداردسازی (ISO) ایجاد شده.
مجموعه وردپرس ایرانی 4 روش کاربردی و اصولی رو بهتون آموزش داده که میتونید به راحتی این خطا رو رفع کنید.
بله درخدمتتون هستیم ئ میتونید رفع شدن خطای Invalid ISO 4217 currency code توسط وردپرس ایرانی برای یکی از کاربران عزیزمون رو مشاهده کنید.
مستقیم از کد آخری که نوشتین استفاده کردم و مشکل رفع شد، خیلی بهتر از نصب افزونه ووکامرس فارسی هستش، اون خیلی سایت رو کند میکنه، با تشکر از زحماتتون
درود وقت بخیر
عالیه خداروشکر که مشکل رفع شده. باز اگه مشکلی بود اطلاع بده رفعش میکنیم👑
همراهان عزیز وردپرس ایرانی توجه کنید هم اکنون Invalid ISO 4217 currency code در سرچ کنسول بصورت رایگان توسط تیم وردپرس ایرانی برای شما رفع میشود. فقط کافیه زیر همین پست نظر بگذارید تا با شما در ارتباط باشیم