Visão geral do problema
Ao enviar um e-mail a partir dos plugins YITH Affiliate, YITH Giftcards, WCFM e possivelmente de alguns outros, você pode encontrar um erro como este:
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
Solução alternativa
Este problema foi corrigido em WooCommerce Multilingual 4.9.0-b1. Atualizar resolve isso no seu site, então você só precisa desta solução alternativa se ainda não puder atualizar.
Nossos desenvolvedores estão trabalhando para corrigir esse problema.
Como uma solução alternativa temporária, e apenas após se certificar de que você tem um backup completo do seu site, você pode acessar wp-content/plugins/woocommerce-multilingual/inc/class-wcml-emails.php e alterar o código de:
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 );para este código:
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 );
}