[Resolved] Конфлікт сторінки товару з кастомним макетом Elementor
This thread is resolved. Here is a description of the problem and solution.
Проблема: Клієнт зіткнувся з проблемою, де кастомний макет сторінки товару через інструмент Layouts від WoodMart з використанням Elementor Pro відображається порожнім на оригінальній мові (українська) і без кастомного макету на перекладі (російська). При вимкненні WPML кастомний макет працює коректно. Рішення: Ми тимчасово вимкнули плагін WPCode, що призвело до зникнення консольної помилки. Після активації debug.log виявлено велику кількість помилок, які вказують на конфлікт між плагінами. Деактивація плагіна Additional Variation Images Gallery for WooCommerce вирішила проблему з відображенням сторінки товару. Рекомендуємо переглянути налаштування плагіна та спробувати змінити версію PHP на 8.4.x для виключення впливу версії PHP.
Якщо це рішення не допоможе або воно вже застаріло, рекомендуємо перевірити відомі проблеми, переконатися, що ви встановили останні версії тем і плагінів, а також відкрити новий тікет у службі підтримки WPML.
This is the technical support forum for WPML - the multilingual WordPress plugin.
Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.
Background of the issue:
Я намагаюся створити кастомний макет сторінки товару через інструмент Layouts від WoodMart з використанням Elementor Pro. Виникає дивна ситуація: на оригінальній мові сайту (українська) сторінка товару показує ПОРОЖНЮ сторінку, а на перекладі (російська) сторінка відображається, але БЕЗ кастомного макету - показується дефолтна сторінка товару. Посилання на сторінку: hidden link виникає на ВСІХ товарах з кастомними макетами, не тільки на цьому прикладі.
Symptoms:
Проблема виникає на ВСІХ товарах з кастомними макетами, не тільки на цьому прикладі.
Symptoms:
Кастомний макет сторінки товару поводиться по-різному залежно від мови:
Українська мова (оригінал): ПОРОЖНЯ сторінка - нічого не відображається
Російська мова (переклад): Відображається дефолтна сторінка товару WooCommerce без кастомного макету
При вимкненні WPML: кастомний макет працює коректно на всіх товарах
Додатково на перекладеній сторінці (російська): селектори атрибутів варіацій відображаються як випадаючі списки, хоча на оригінальній сторінці (коли WPML вимкнений) це селектори-кнопки.
Консольна помилка на українській версії (порожня сторінка):
"Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'."
Що вже пробував:
Створив окремий переклад макету на російську мову - не допомогло
В налаштуваннях WPML встановив макети (Layouts) як translatable - не допомогло
Перевірив умови відображення макету - вони налаштовані коректно
При вимкненні кастомного макету: українська версія починає працювати з дефолтною сторінкою
При вимкненні WPML: кастомний макет працює ідеально
Це виглядає як конфлікт між WoodMart Layouts, Elementor Pro та WPML, де макет не може коректно застосуватися до оригінальної мови, але частково працює (без дизайну макету) на перекладі.
Середовище:
WordPress 6.8.3, WoodMart 8.3.3, WoodMart Core 1.1.4, Elementor 3.33.0, Elementor Pro 3.33.1, WooCommerce 10.3.4, WPML Multilingual CMS 4.8.5, WooCommerce Multilingual 5.5.3, WPML String Translation 3.4.1, PHP 8.2.29, Server: LiteSpeed
Додаткові плагіни: Additional Variation Images Gallery for WooCommerce Pro 1.3.28, Bulky - Bulk Edit Products for WooCommerce Premium 1.3.8
Questions:
Чому на оригінальній мові (українська) сторінка товару порожня з увімкненим макетом, а на перекладі (російська) відображається без макету?
Як змусити кастомний макет WoodMart Layouts працювати з WPML на обох мовах?
Чому селектори варіацій змінюють тип відображення (кнопки → випадаючі списки) на перекладених сторінках?
Щоб я міг детально перевірити проблему та допомогти вам швидше, мені потрібен тимчасовий доступ до вашого сайту (WP-адмін та FTP). Бажано — доступ до тестового сайту, де проблему можна відтворити, якщо такий є.
Поля для надання доступу з’являться під формою коментаря після того, як ви надішлете наступну відповідь. Уся інформація, яку ви введете, буде приватною — її бачитимемо лише ви та я.
Загалом я розумію, у чому проблема, але, будь ласка, опишіть точні кроки для її відтворення, щоб я міг перевірити це максимально коректно.
Відправляю нову форму. Потім перевірю, що може бути не так.
Будь ласка, напиши точні кроки для відтворення проблеми — це допоможе мені швидше знайти причину.
Я детально перевірив проблему. Для початку тимчасово вимкнув плагін WPCode, щоб переконатися, чи не впливає Ваш кастомний код на поведінку сторінки товара. До речі, консольна помилка, яку Ви згадували, зникає, коли кастомний код відсутній.
Рухаючись далі, я активував debug.log, і можу підтвердити, що сторінка товару відображається порожньою через велику кількість помилок, які виникають у процесі завантаження. Поки складно однозначно сказати, між якими саме плагінами виникає конфлікт.
12-Nov-2025 11:40:09 UTC] PHP Fatal error: Declaration of WP\MCP\Transport\Contracts\McpRestTransportInterface::check_permission(WP_REST_Request $request) must be compatible with WP\MCP\Transport\Contracts\McpTransportInterface::check_permission() in /home/diamond2/public_html/wp-content/plugins/mcp-adapter/includes/Transport/Contracts/McpRestTransportInterface.php on line 29
[12-Nov-2025 11:42:22 UTC] PHP Fatal error: Declaration of WP\MCP\Transport\Contracts\McpRestTransportInterface::check_permission(WP_REST_Request $request) must be compatible with WP\MCP\Transport\Contracts\McpTransportInterface::check_permission() in /home/diamond2/public_html/wp-content/plugins/mcp-adapter/includes/Transport/Contracts/McpRestTransportInterface.php on line 29
[12-Nov-2025 11:42:34 UTC] PHP Fatal error: Declaration of WP\MCP\Transport\Contracts\McpRestTransportInterface::check_permission(WP_REST_Request $request) must be compatible with WP\MCP\Transport\Contracts\McpTransportInterface::check_permission() in /home/diamond2/public_html/wp-content/plugins/mcp-adapter/includes/Transport/Contracts/McpRestTransportInterface.php on line 29
...
14-Nov-2025 16:39:27 UTC] WordPress database error Commands out of sync; you can't run this command now for query SELECT meta_id FROM wpnw_postmeta WHERE meta_key = '_price' AND post_id = 67488 made by shutdown_action_hook, do_action('shutdown'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Post_Data::do_deferred_product_sync, array_walk, WC_Post_Data::deferred_product_sync, WC_Product_Variable::sync, WC_Data_Store->__call, WC_Product_Variable_Data_Store_CPT->sync_price, delete_post_meta, delete_metadata
[14-Nov-2025 16:39:27 UTC] WordPress database error Commands out of sync; you can't run this command now for query SELECT meta_id FROM wpnw_postmeta WHERE meta_key = '_sale_price' AND post_id = 67488 made by shutdown_action_hook, do_action('shutdown'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Post_Data::do_deferred_product_sync, array_walk, WC_Post_Data::deferred_product_sync, WC_Product_Variable::sync, WC_Data_Store->__call, WC_Product_Variable_Data_Store_CPT->sync_price, delete_post_meta, delete_metadata
[14-Nov-2025 16:39:27 UTC] WordPress database error Commands out of sync; you can't run this command now for query SELECT meta_id FROM wpnw_postmeta WHERE meta_key = '_regular_price' AND post_id = 67488 made by shutdown_action_hook, do_action('shutdown'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Post_Data::do_deferred_product_sync, array_walk, WC_Post_Data::deferred_product_sync, WC_Product_Variable::sync, WC_Data_Store->__call, WC_Product_Variable_Data_Store_CPT->sync_price, delete_post_meta, delete_metadata
[14-Nov-2025 16:39:27 UTC] WordPress database error Commands out of sync; you can't run this command now for query UPDATE `wpnw_posts` SET `post_modified` = '2025-11-14 18:39:27', `post_modified_gmt` = '2025-11-14 16:39:27' WHERE `ID` = 67488 made by shutdown_action_hook, do_action('shutdown'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Post_Data::do_deferred_product_sync, array_walk, WC_Post_Data::deferred_product_sync, WC_Product_Variable::sync, WC_Product->save, WC_Data_Store->update, WC_Product_Data_Store_CPT->update
[14-Nov-2025 16:39:27 UTC] WordPress database error Commands out of sync; you can't run this command now for query SELECT post_id, meta_key, meta_value FROM wpnw_postmeta WHERE post_id IN (67488) ORDER BY meta_id ASC made by shutdown_action_hook, do_action('shutdown'), WP_Hook->do_action, WP_Hook->apply_filters, WC_Post_Data::do_deferred_product_sync, array_walk, WC_Post_Data::deferred_product_sync, WC_Product_Variable::sync, WC_Product->save, WC_Data_Store->update, WC_Product_Data_Store_CPT->update, WC_Product_Data_Store_CPT->update_post_meta, WC_Data_Store_WP->get_props_to_update, metadata_exists, update_meta_cache
...
Наприклад, я деактивував плагін Additional Variation Images Gallery for WooCommerce, і можу підтвердити, що сторінка товару працює коректно разом із Layouts.
Я провів кілька різних тестів, але наразі не отримав чіткого рішення, окрім як деактивувати вищезазначений плагін.
Рекомендую:
1. Переглянути налаштування плагіна.
2. Спробувати змінити версію PHP — наприклад, тимчасово переключитися на PHP 8.4.x, щоб виключити вплив версії PHP на цю поведінку.