- Статус
- Решено автором
- Решено в
- Blocksy Companion 2.0.33
- Связанный плагин/тема
- Blocksy
- Теги темы
- Compatibility
Обзор проблемы
В теме оформления Blocksy при использовании функции Products Tab с WPML вкладки, переведенные на дополнительный язык, могут некорректно отображаться на фронтенде на языке оригинала.
Обходное решение
Пожалуйста, перед продолжением убедитесь, что у Вас есть полная резервная копия сайта.
- Откройте файл …/wp-content/plugins/blocksy-companion-pro/framework/premium/extensions/woocommerce-extra/features/custom-tabs/feature.php
- Найдите строку 139.
- Замените:
$all_products_tabs = get_posts([ 'numberposts' => -1, 'post_type' => $this->post_type, ]);
- На:
$all_products_tabs = get_posts([ 'numberposts' => -1, 'post_type' => $this->post_type, // WPML Workaround for compsupp-7255 - PART 1 'suppress_filters' => false ]);
- Затем откройте файл …/wp-content/plugins/blocksy-companion-pro/framework/features/conditions/rules-resolver.php
- Найдите строку 364.
- Замените:
if ( isset($rule['payload']) && isset($rule['payload']['post_id']) && $post_id && intval($post_id) === intval($rule['payload']['post_id']) ) { return true; } - На:
// WPML Workaround for compsupp-7255 - Part 2 if ( class_exists('Sitepress') ) { $rule['payload']['post_id'] = apply_filters( 'wpml_object_id', $rule['payload']['post_id'], get_post_type($rule['payload']['post_id']) , TRUE ); } if ( isset($rule['payload']) && isset($rule['payload']['post_id']) && $post_id && intval($post_id) === intval($rule['payload']['post_id']) ) { return true; }