WPML
Status
Resolvido
Relatado para
WPML Multilingual & Multicurrency for WooCommerce 4.6.1
Resolvido em
4.6.2.1

Visão geral do problema

É possível encontrar um problema com o WPML Multilingual & Multimoeda para WooCommerce 4.6.1 e, possivelmente, em versões anteriores também.

O erro se manifesta com o seguinte timeout:

PHP Fatal error: Maximum execution time of 60 seconds exceeded in /wp-includes/class-wp-hook.php on line 288

Solução alternativa

O problema é causado por ter uma chave meta _thumbnail_id com valor igual a 0 (zero).

Você pode verificar isso com esta consulta:

SELECT * FROM `wp_postmeta`
WHERE `meta_key` = '_thumbnail_id' AND `meta_value` = '0';

Como solução alternativa, você pode remover esses valores do banco de dados OU aplicar o seguinte patch:

1. Vá para a pasta ../wp-content/plugins/woocommerce-multilingual/inc/ e edite o arquivo class-wcml-products.php.

2. Encontre a seguinte linha:

if( is_product() && !$this->woocommerce_wpml->products->is_original_product( $product_id ) ){

3. Altere essa linha para:

$is_original_product = $this->woocommerce_wpml->products->is_original_product( $product_id );
			if( is_product() && !$is_original_product ){

4. Agora, encontre a seguinte linha:

} elseif ( '_product_image_gallery' === $meta_key ) {

5. Altere essa linha para:

} elseif ( '_product_image_gallery' === $meta_key && !$is_original_product ) {

6. Por fim, encontre a seguinte linha:

} elseif ( '_thumbnail_id' === $meta_key ) {

7. Altere essa linha para:

} elseif ( '_thumbnail_id' === $meta_key && !$is_original_product ) {

8. Salve o arquivo e teste.

Todos os problemas conhecidos →