نظرة عامة على المشكلة
عند إرسال بريد إلكتروني من إضافات 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
حل بديل مؤقت
تم إصلاح هذه المشكلة في WooCommerce Multilingual 4.9.0-b1. يحل التحديث المشكلة على موقعك، لذا لا تحتاج إلى هذا الحل البديل المؤقت إلا إذا لم تتمكن من التحديث بعد.
يعمل مطورونا على إصلاح هذه المشكلة.
كحل بديل مؤقت، وفقط بعد التأكد من أن لديك نسخة احتياطية كاملة لموقعك، يمكنك الذهاب إلى 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 );
}