- الحالة
- محلولة
- أُبلغ عنها لـ
- WPML Multilingual & Multicurrency for WooCommerce 4.8.0
- تم حلها في
- WooCommerce Multilingual 4.9.0-b1
نظرة عامة على المشكلة
عند إرسال بريد إلكتروني من إضافات YITH Affiliate، وYITH Giftcards، وWCFM، وربما غيرها، قد تواجه خطأً كهذا:
PHP Fatal error: Uncaught Error: Call to a member function get_id() on array in /public_html/wp-content/plugins/woocommerce-multilingual/inc/class-wcml-emails.php:395
حل بديل مؤقت
يعمل مطورونا على إصلاح هذه المشكلة.
كحل بديل مؤقت، وفقط بعد التأكد من أن لديك نسخة احتياطية كاملة لموقعك، يمكنك الذهاب إلى wp-content/plugins/woocommerce-multilingual/inc/class-wcml-emails.php وتغيير الكود من:
public function get_email_translated_string( $key,
$object, $language)
{
$context = 'admin_texts_woocommerce_' . $object->id . '_settings';
$name = '[woocommerce_' . $object->id . '_settings]' . $key;
return $this->wcml_get_translated_email_string( $context, $name, $object->object->get_id(), $language );
إلى هذا الكود:
public function get_email_translated_string( $key, $object, $language ) {
$context = 'admin_texts_woocommerce_' . $object->id . '_settings';
$name = '[woocommerce_' . $object->id . '_settings]' . $key;
$order_id = false;
if ( method_exists( $object->object, 'get_id' ) ) {
$order_id = $object->object->get_id();
}
if ( is_array( $object->object ) && isset( $object->object['ID'] ) ) {
$order_id = $object->object['ID'];
}
return $this->wcml_get_translated_email_string( $context, $name, $order_id, $language );
}