Обзор проблемы
Если Вы используете тему оформления Woodmart вместе с WPML, Вы можете столкнуться с проблемой, при которой перевод макета товара зависает и не завершается. Кроме того, Вы обнаружите похожую ошибку:
Call to a member function get_gallery_image_ids() on null .../wp-content/themes/woodmart/woocommerce/single-product/product-image.php:27
Актуальная документация: макеты товаров WoodMart переводятся с помощью WPML. Узнайте, как это сделать, в руководстве Перевод магазина WoodMart с помощью WPML.
Обходное решение
Эта проблема исправлена в WoodMart 8.0.2. Обновление решает эту проблему на Вашем сайте, поэтому это обходное решение понадобится Вам, только если Вы пока не можете выполнить обновление.
Перед продолжением обязательно создайте полную резервную копию Вашего сайта.
- Откройте файл functions.php Вашей темы оформления.
- Добавьте следующий фрагмент кода:
add_action( 'woocommerce_before_template_part', function () { global $product; if ( wp_is_json_request() && ! $product ) { $random_product = new WP_Query( array( 'posts_per_page' => '1', 'post_type' => 'product', ) ); while ( $random_product->have_posts() ) { $random_product->the_post(); $product_id = get_the_ID(); } wp_reset_postdata(); $product = wc_get_product( $product_id ); } } ); - Очистите кеш и заново переведите макет товара.
- Перейдите в консоль WordPress -> WoodMart -> Patcher.
- Выберите патч номер 618307.