- Status
- Resolvido
- Resolvido em
- WPML 4.7.6
- Plugin/tema relacionado
- Elementor
- Tags de tópico
- Compatibility
Visão geral do problema
Com as configurações avançadas de widget do Elementor Pro, é possível adicionar Condições de Exibição, por exemplo, para mostrar um widget apenas se o usuário estiver conectado.
Recentemente, algo mudou na forma como o Elementor armazena esses dados, e isso pode gerar o seguinte erro:
PHP Fatal error: Uncaught TypeError: Cannot access offset of type string on string in .../wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/DisplayConditions.php:138
Solução alternativa
Atualizaremos nosso código para lidar com essa alteração no armazenamento de dados do Elementor. Enquanto isso, você pode editar este arquivo do plugin: wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/Hooks/DisplayConditions.php
Localize a função convertConditionIds (a partir da linha 134 na versão atual) e substitua-a pelo código abaixo:
private function convertConditionIds( array $conditionGroups ) {
// ensure $conditionGroups is an array of arrays and not just an associative array
$result = array_keys($conditionGroups)[0] !== 0 ? array($conditionGroups) : $conditionGroups;
foreach ( $result as $key => $conditionGroup ) {
$configForCondition = $this->getConfigForCondition( $conditionGroup['condition'] );
if ( $configForCondition && isset( $conditionGroup[ $configForCondition['field'] ] ) ) {
$result[ $key ] = $this->convertIdsForCondition( $conditionGroup, $configForCondition );
}
}
return $result;
}