- الحالة
- مفتوحة
- أُبلغ عنها لـ
- WPML Multilingual & Multicurrency for WooCommerce 5.3.5
- الإضافة/القالب ذو الصلة
- WooCommerce Payments
- وسوم الموضوع
- Compatibility
نظرة عامة على المشكلة
في الوقت الحالي، لا يمكن حفظ أي تغييرات في توفر البلدان ضمن إعدادات WooPayments عند استخدام WPML متعدد اللغات وتعدد العملات لـ WooCommerce.
هذه المشكلة مشابهة للمشكلة التي تم الإبلاغ عنها في بوابة الدفع WooCommerce Stripe.
حل بديل مؤقت
في غضون ذلك، يمكنك التفكير في أحد الحلول التالية:
1) إذا كنت ترغب في قصر WooPayments على دولة واحدة (مثل إسبانيا)، يمكنك استخدام الكود التالي:
// Limit Stripe to Spain.
add_filter( 'woocommerce_available_payment_gateways', function( $gateways ) {
$country = WCML\MultiCurrency\Geolocation::getUserCountry();
if ( $country ) {
if ( 'ES' !== $country ) {
unset( $gateways['woocommerce_payments'] );
}
}
return $gateways;
} );2) من ناحية أخرى، إذا كنت ترغب في قصر WooPayments على عدة دول، يمكنك استخدام هذه الصيغة:
// Limit WooPayments for several countries
add_filter( 'woocommerce_available_payment_gateways', function( $gateways ) {
$country = WCML\MultiCurrency\Geolocation::getUserCountry();
if ( $country ) {
// List of country codes to check against
$country_codes = array('ES', 'FR', 'DE');
if ( !in_array($country, $country_codes) ) {
unset( $gateways['woocommerce_payments'] );
}
}
return $gateways;
} );
يمكنك إضافة الكود أعلاه إلى ملف functions.php في قالبك.
لا تنسَ تعديل رمز الدولة وفقاً لاحتياجاتك (في كلا المثالين نستخدم «ES» لإسبانيا).