ترجمه و تغییر واحد پول در وردپرس چندزبانه و افزونه WPML

مسیح دیندار
مدیریت
عضو شده: 2021-04-12 14:23:35
2021-07-22 05:28:47

اگر از وردپرس استفاده کرده باشید و با افزونه wpml قصد چندزبانه کردن سایتتان را داشته باشید، حتما می دانید که در ووکامرس قابلیت ترجمه واحدهای پول مانند ریال به دلار و ... برای انجام اینکار دو راه وجود دارد که در ادامه این تاپیک از تاکینا برای شما آموزش خواهم داد.

 

روش اول: استفاده از افزونه

این روش بهترین سازگاری را دارد. برای شروع باید افزونه WooCommerce Multilingual – run WooCommerce with WPML را که بطور رایگان در مخزن وردپرس هم در دسترس است را نصب و فعال کنید. با فعال کردن این افزونه، در "پیشخوان > محصولات ووکامرس" یک منو به نام "ووکامرس چندزبانه" ایجاد خواهد شد. وارد این گزینه شوید و بخش Multi-currency را باز کنید.

مانند تصویر زیر شما می توانید برای هر زبانی که با افزونه WPML فعال و تنظیم کرده اید، واحد پولی خود را ترجمه کنید:

روش دوم: استفاده از کد

توجه داشته باشید این کد فقط برای ووکامرس کارایی دارد و سایر افزونه های فروشگاه ساز و یا مدیریت دوره ها و ... کارایی ندارد.

برای شروع، کد زیر را در فایل functions.php قالبتان قرار دهید:

add_filter('woocommerce_currency_symbol', 'talkina_currency_symbol', 10, 2);

function talkina_currency_symbol( $currency_symbol, $currency ) {
    switch( $currency ) {
        case 'SAR':         
        if(ICL_LANGUAGE_CODE=='ar'){ $currency_symbol = 'ریال عربستان'; }
        elseif(ICL_LANGUAGE_CODE=='en'){ $currency_symbol = '$'; }
        else{
                 $currency_symbol = 'ریال ایران'; 
            } 
        break;          
    }
    return $currency_symbol;
}

تنظیمات:

  • در کد بالا ما سه واحد پول تعریف کردیم. برا دو زبان عربی با کد ar و زبان انگلیسی با کد en ترجمه واحد پول را تغییر دادیم. شما برای اضافه کردن زیان دیگر، کافیست خط elseif مربوط به زبان انگلیسی را کپی کرده و زیر همان خط زبان انگلیسی قرار دهید. سپس کد زبان خود را دقیق بجای en وارد کرده و بجای نماد دلار $ ترجمه واحد پول مورد نظرتان را وارد کنید.
  • در نهایت به گونه ای کد را تهیه کرده ایم که برای سایر زبان هایی که بطور دستی واحدپولی ترجمه نشده، همان ریال ایران را نمایش دهد.