اگر یک سایت فروشگاهی بر پایه ووکامرس و افزونه رنک مث (Rank Math) دارید، ممکن است در گوگل سرچ کنسول با خطای Invalid ISO 4217 currency code مواجه شوید. این خطا معمولاً به دلیل مشکلات مربوط به اسکیما و فرمت شناسایی واحد پولی تومان توسط گوگل است.
علت خطای Invalid ISO 4217 currency code
گوگل برای استانداردسازی اطلاعات مربوط به واحد پول، از کدهای ISO 4217 استفاده میکند. اگر در پیکربندی ووکامرس به جای واحد پولی ریال ایران (IRR) از واحد پولی تومان ایران (IRT) استفاده کنید ، گوگل نمیتواند آن را تشخیص دهد و خطای Invalid ISO 4217 currency code را در نتایج اسکیما در سرچ کنسول گوگل را به شما نمایش میدهد.
راهکارهای رفع خطای Invalid ISO 4217 Currency Code در گوگل سرچ کنسول
برای حل این مشکل، میتوانید از یکی از روشهای زیر استفاده کنید:
1. تنظیم واحد پول به ریال ایران (IRR) در تنظیمات ووکامرس

بهترین راه و بدون نیاز به افزودن کد، استفاده از تنظیمات داخلی ووکامرس است:
- به پیشخوان وردپرس خود وارد شوید.
- به مسیر ووکامرس > پیکربندی > عمومی بروید.
- از قسمت واحد پول، گزینه ریال ایران (IRR) را انتخاب کنید.
- تغییرات را ذخیره کنید.
این روش بهسادگی مشکل را حل کرده و خطای گوگل برطرف میشود.
اما اگر میخواهید که از واحد پولی تومان به جای ریال استفاده کنید از راهکارهای بعدی استفاده کنید.
2. افزودن کد به فایل Functions.php قالب
اگر به هر دلیلی نمیتوانید تنظیمات ووکامرس را تغییر دهید، میتوانید با اضافه کردن کدی ساده به فایل Functions.php قالب خود، کد ارز را اصلاح کنید.

- ابتدا به پیشخوان وردپرس بروید و در منوی سمت راست روی گزینه نمایش > ویرایشگر پرونده پوسته کلیک کنید.
- در بخش سمت چپ صفحه باز شده در قسمت پروندههای پوسته روی فایل functions.php کلیک کنید تا کدهای این فایل باز شود.
- کدهای زیر را کپی کرده و در قسمت انتهایی کدهای functions.php آنها را جایگذاری کنید.
- در آخر روی دکمه بروزرسانی پرونده کلیک کنید.
/*
* Fix Invalid ISO 4217 currency code Error
* https://www.mihantheme.ir/
* */
add_filter( "rank_math/snippet/rich_snippet_product_entity", function( $entity ) {
global $product;
$id = get_the_ID();
if(get_woocommerce_currency() == 'IRT'){
$entity['offers']['price'] = $product->get_price()*'10';
$entity['offers']['priceCurrency'] = 'IRR';
}
if (!empty($product->get_date_on_sale_to())) {
$entity['offers']['priceValidUntil'] = date_i18n('Y-m-d', strtotime($product->get_date_on_sale_to()));
} else {
$entity['offers']['priceValidUntil'] = date('Y-12-31', time() + YEAR_IN_SECONDS);
}
$entity['sku'] = $id;
$entity['mpn'] = $id;
return $entity;
});نکته: پس از افزودن این کد، مطمئن شوید که کش مرورگر و سایت را پاک کرده و مجدد نتایج را در گوگل بررسی کنید.
کد برای محصولات متغیر:
/*
* Fix Invalid ISO 4217 currency code Error for Variable Products
* https://www.mihantheme.ir/
*/
add_filter( "rank_math/snippet/rich_snippet_product_entity", function( $entity ) {
global $product;
$id = get_the_ID();
// بررسی اینکه آیا ارز ووکامرس "IRT" است
if (get_woocommerce_currency() == 'IRT') {
// اگر محصول متغیر است، حداقل و حداکثر قیمت را دریافت کن
if ($product->is_type('variable')) {
$min_price = $product->get_variation_price('min') * 10; // تبدیل تومان به ریال
$max_price = $product->get_variation_price('max') * 10; // تبدیل تومان به ریال
$entity['offers']['lowPrice'] = $min_price;
$entity['offers']['highPrice'] = $max_price;
$entity['offers']['priceCurrency'] = 'IRR';
} else {
// اگر محصول ساده است، قیمت را مستقیم تبدیل کن
$entity['offers']['price'] = $product->get_price() * 10;
$entity['offers']['priceCurrency'] = 'IRR';
}
}
// بررسی تاریخ تخفیف و تنظیم آن
if (!empty($product->get_date_on_sale_to())) {
$entity['offers']['priceValidUntil'] = date_i18n('Y-m-d', strtotime($product->get_date_on_sale_to()));
} else {
$entity['offers']['priceValidUntil'] = date('Y-12-31', time() + YEAR_IN_SECONDS);
}
// تنظیم SKU و MPN
$entity['sku'] = $id;
$entity['mpn'] = $id;
return $entity;
});
کد برای افزونه Yoast Seo :
/*
* Fix Invalid ISO 4217 currency code Error for Yoast SEO
* https://www.mihantheme.ir/
*/
add_filter('wpseo_schema_product', function ($data) {
global $product;
if (!$product) {
return $data;
}
// بررسی اگر ارز ووکامرس تومان باشد
if (get_woocommerce_currency() == 'IRT') {
// بررسی محصول متغیر
if ($product->is_type('variable')) {
$min_price = $product->get_variation_price('min') * 10; // تبدیل تومان به ریال
$max_price = $product->get_variation_price('max') * 10; // تبدیل تومان به ریال
$data['offers'][0]['priceSpecification']['minPrice'] = $min_price;
$data['offers'][0]['priceSpecification']['maxPrice'] = $max_price;
} else {
// برای محصولات ساده
$data['offers'][0]['price'] = $product->get_price() * 10;
}
// تنظیم واحد پول به IRR (ریال)
$data['offers'][0]['priceCurrency'] = 'IRR';
}
// بررسی تاریخ پایان قیمت ویژه
if (!empty($product->get_date_on_sale_to())) {
$data['offers'][0]['priceValidUntil'] = date_i18n('Y-m-d', strtotime($product->get_date_on_sale_to()));
} else {
$data['offers'][0]['priceValidUntil'] = date('Y-12-31', time() + YEAR_IN_SECONDS);
}
return $data;
});
3. استفاده از افزونه ووکامرس فارسی
یکی از سادهترین راهها برای رفع کامل و سریع خطای Invalid ISO 4217 Currency Code برای کاربران مبتدی، نصب افزونه ووکامرس فارسی است. این افزونه علاوه بر اینکه خطای فوق را به سرعت و راحتی حل میکند ، همچنین قابلیتهای گستردهای از جمله تنظیم واحد پولی صحیح، افزودن درگاههای پرداخت ایرانی، و بهینهسازی تجربه کاربری فروشگاه را فراهم میکند.
مراحل نصب افزونه ووکامرس فارسی:
- به پیشخوان وردپرس بروید و به مسیر افزونهها > افزودن بروید.
- عبارت “ووکامرس فارسی” را جستجو کنید و افزونه را نصب و فعال کنید.
4. بهروزرسانی اطلاعات اسکیما با افزونه Rank Math
اگر همچنان مشکل دارید، میتوانید با استفاده از امکانات پیشرفته افزونه Rank Math Pro ، اسکیما را برای محصولات بهصورت دستی تنظیم کنید:
- به ویرایش یک محصول بروید.
- به بخش اسکیما > محصول در رنک مث مراجعه کنید.
- مطمئن شوید که در قسمت “Currency” کد ارز IRR درج شده باشد.
نتیجهگیری
خطای Invalid ISO 4217 currency code یکی از مشکلات رایج برای سایتهای فروشگاهی ایرانی است. با تغییر کد واحد پول به IRR، استفاده از افزونه ووکامرس فارسی، یا افزودن کد سفارشی به قالب، میتوانید بهراحتی این مشکل را برطرف کنید و مطمئن شوید که گوگل محصولات فروشگاه شما را به درستی نمایش میدهد.
اگر همچنان با این مشکل مواجه شدید، در بخش دیدگاه های همین پست ، مشکل خود را مطرح کنید تا با کمک کارشناسان میهن تم ، مشکل شما حل شود.

10 پاسخ
ممنون از شما و سایت خوبتون
کدتون بخوبی کار کرد.
خوشحالم که مشکلتون حل شد
ممنون از شما بابت کد تبدیل تومان به ریال در اسکیمای رنک مث
فقط یه مشکل داره، برای محصولاتی که متغیر دارن و برای هر متغیر یه قیمت جدا کار نمیکنه و همون تومان لود میشه.
کد اصلاح شده برای محصل متغیر
/*
* Fix Invalid ISO 4217 currency code Error for Variable Products
* https://www.mihantheme.ir/
*/
add_filter( “rank_math/snippet/rich_snippet_product_entity”, function( $entity ) {
global $product;
$id = get_the_ID();
// بررسی اینکه آیا ارز ووکامرس “IRT” است
if (get_woocommerce_currency() == ‘IRT’) {
// اگر محصول متغیر است، حداقل و حداکثر قیمت را دریافت کن
if ($product->is_type(‘variable’)) {
$min_price = $product->get_variation_price(‘min’) * 10; // تبدیل تومان به ریال
$max_price = $product->get_variation_price(‘max’) * 10; // تبدیل تومان به ریال
$entity[‘offers’][‘lowPrice’] = $min_price;
$entity[‘offers’][‘highPrice’] = $max_price;
$entity[‘offers’][‘priceCurrency’] = ‘IRR’;
} else {
// اگر محصول ساده است، قیمت را مستقیم تبدیل کن
$entity[‘offers’][‘price’] = $product->get_price() * 10;
$entity[‘offers’][‘priceCurrency’] = ‘IRR’;
}
}
// بررسی تاریخ تخفیف و تنظیم آن
if (!empty($product->get_date_on_sale_to())) {
$entity[‘offers’][‘priceValidUntil’] = date_i18n(‘Y-m-d’, strtotime($product->get_date_on_sale_to()));
} else {
$entity[‘offers’][‘priceValidUntil’] = date(‘Y-12-31’, time() + YEAR_IN_SECONDS);
}
// تنظیم SKU و MPN
$entity[‘sku’] = $id;
$entity[‘mpn’] = $id;
return $entity;
});
تست کنید و نتیجه رو اعلام کنید
سلام
کار نکرد متاسفانه
تومان میخونه تو تست اسکیما
سلام ما که یواست سئو داریم چیکار کنیم کد بالا اصلا جواب نمیده
ووکامرس فارسی هم نصب می کنم فقط واسه محصولات ساده جواب میده (محصولات متغییر IRT) هستند
کد مخصوص افزونه Yoast Seo و همچنین محصولات متغیر قرار داده شد ، چک کنید اگر مشکلی بود اطلاع بدید
اگر این مشکل رو تغییر ندیم در نتایج و جایگاه سایت تاثیر داره؟
نه لزوما.
اگر این مشکل رو رفع نکنی، رتبه سایتت مستقیم پایین نمیاد، اما گوگل ریچ اسنیپت محصول (قیمت و ارز) رو نشون نمیده ، در نتیجه کلیک کمتر میگیری و غیرمستقیم روی ورودی و فروش تاثیر منفی میذاره.