WPML
状态
已解决
报告针对
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 );
}

所有已知问题 →