خطای invalid iso 4217 currency code ووکامرس
- آموزش سئو وردپرس مقالات آموزشی
- بروزرسانی شده در
اگر سایت فروشگاهی دارید که واحد پولی اون تومان ایران هست، قطعا خطای invalid iso 4217 currency code رو توی سرچ کنسول گوگل مشاهده میکنید. امروز روش حل این مشکل رو به شما توضیح خواهم داد همراه با افزونهای که برای اینکار برنامهنویسی کردم.
بسیار بسیار مهم: کد در تاریخ ۲۸ مرداد ۱۴۰۴ آپدیت شد. لطفا از کد جدید استفاده کنید. با استفاده از کد جدید نیازی به تغییر واحد پولی از طریق تنظیمات ووکامرس نیست و مشکلی از بابت درگاه پرداخت نخواهید داشت.
برای استفاده از این کد حتما باید افزونه رنک مث را روی سایتتان نصب و فعال کنید. به غیر از رنک مث، هیچ افزونه سئو یا اسکیمای دیگری روی سایتتان فعال نباشد.
آنچه در این مقاله میخوانید
خطای invalid iso 4217 currency code ووکامرس
در دنیای تجارت الکترونیک، ووکامرس به عنوان یکی از پرکاربردترین پلتفرمهای فروشگاهی شناخته میشود. با این حال، گاهی اوقات کاربران با خطاهای فنی مواجه میشوند که میتواند تجربه کاربری را تحت تأثیر قرار دهد. یکی از این خطاها، خطای “Invalid ISO 4217 currency code” است که برای فروشگاههایی که از واحد پولی “تومان” استفاده میکنند، بسیار رایج است. این مقاله به بررسی علت این مشکل و راهحلی که توسط یک افزونه جدید ارائه شده، میپردازد.

دلیل بروز این ارور
این خطا زمانی رخ میدهد که ووکامرس سعی میکند واحد پولی “تومان” را با کد “IRT” به سیستمهای خارجی مانند سرچ کنسول گوگل معرفی کند. متأسفانه، از آنجا که “تومان” به طور رسمی در استانداردهای ISO 4217 ثبت نشده است، گوگل نمیتواند این کد را به درستی تشخیص دهد و به این ترتیب خطای مذکور به وجود میآید. این مسئله میتواند بر شناسایی و رتبهبندی فروشگاه در نتایج جستجوی گوگل تأثیر بگذارد.

راه حل من برای حل این مشکل
برای حل این مشکل، یک افزونه جدید ساختم که به صورت خاص برای ادغام “تومان” به عنوان واحد پولی در ووکامرس طراحی شده است. این افزونه با ایجاد یک پل بین کد پولی “IRT” و استانداردهای قابل شناسایی توسط گوگل، به رفع این مشکل کمک میکند.
نصب و پیکربندی این افزونه بسیار ساده است. کافیست افزونه را از این لینک دانلود و نصب بفرمایید.
یا به جای استفاده از افزونه میتوانید کد زیر را به فایل functions.php قالب سایت خود اضافه کنید. (البته در این صورت با آپدیت قالب، کد حذف خواهد شد.)
// Add settings to WooCommerce
function mihanwp_irr_add_settings( $settings ) {
$settings[] = array(
'title' => __( 'MihanWP IRR Schema Fix', 'mihanwp-irr-schema-fix' ),
'type' => 'title',
'desc' => sprintf( __( 'Settings for MihanWP IRR Schema Fix. More information <a href="%s" target="_blank">here</a>.', 'mihanwp-irr-schema-fix' ), 'https://mihanwp.com/invalid-iso-4217-currency-code/' ),
'id' => 'mihanwp_irr_schema_fix_options',
);
$settings[] = array(
'title' => __( 'Enable IRR Schema Fix', 'mihanwp-irr-schema-fix' ),
'desc' => __( 'Check this box to enable the IRR Schema Fix.', 'mihanwp-irr-schema-fix' ),
'id' => 'mihanwp_irr_schema_fix_enable',
'default' => 'yes',
'type' => 'checkbox',
);
$settings[] = array( 'type' => 'sectionend', 'id' => 'mihanwp_irr_schema_fix_options' );
return $settings;
}
add_filter( 'woocommerce_get_settings_products', 'mihanwp_irr_add_settings', 10, 1 );
// Custom currency function (Edit)
function mihanwp_irr_custom_woocommerce_currency( $currency ) {
if ( 'yes' === get_option( 'mihanwp_irr_schema_fix_enable', 'yes' ) ) {
// Return IRR directly without using backtrace
return 'IRR';
}
return $currency;
}
add_filter( 'woocommerce_currency', 'mihanwp_irr_custom_woocommerce_currency', 10, 1 );
// Fix structured data for WooCommerce, Yoast, and Rank Math
function mihanwp_irr_fix_structured_data( $markup_offer ) {
if ( 'yes' === get_option( 'mihanwp_irr_schema_fix_enable', 'yes' ) && is_array( $markup_offer ) ) {
foreach ( $markup_offer as $key => &$value ) {
if ( $key === 'priceCurrency' ) {
$value = 'IRR';
}
if ( in_array( $key, [ 'price', 'lowPrice', 'highPrice' ], true ) ) {
$value = intval( $value );
}
if ( is_array( $value ) ) {
$value = mihanwp_irr_fix_structured_data( $value );
}
}
}
return $markup_offer;
}
add_filter( 'woocommerce_structured_data_product_offer', 'mihanwp_irr_fix_structured_data', 100 );
add_filter( 'wpseo_schema_offer', 'mihanwp_irr_fix_structured_data', 10, 3 );
add_filter( 'rank_math/snippet/rich_snippet_product_entity', 'mihanwp_irr_fix_structured_data', 100 );

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