- 状态
- 等待作者
- 相关插件/主题
- Soho Hotel
问题概述
当 Soho Hotel 主题与 WPML 一起使用时,应用于默认语言中住宿的季节价格不会复制到已翻译的住宿中。
临时解决方法
作为修复此问题的临时解决方法,请按以下步骤操作:
- 前往WPML → 设置 → 自定义字段翻译,并将自定义字段shb_pricing设置为复制。
- 在主题的functions.php文件中添加以下代码片段:
add_action( 'wpml_after_copy_custom_field', function($post_id_from, $post_id_to, $meta_key){ if ($meta_key == 'shb_pricing') { $translated_lang = apply_filters( 'wpml_post_language_details', '', $post_id_to ); $translated_lang = isset($translated_lang['language_code']) ? $translated_lang['language_code'] : ''; $original_value = get_post_meta($post_id_from, 'shb_pricing', true); $translated_value = $original_value; if (!empty($original_value) && is_array($original_value)) { foreach ($original_value as $key => $value) { $session_id = intval(substr($key, 7)); if ( !empty($session_id) ) { $session_id = apply_filters( 'wpml_object_id', $session_id, 'shb_season', false, $translated_lang ); $translated_value['season_' . $session_id] = $translated_value[$key]; unset($translated_value[$key]); } } update_post_meta($post_id_to, 'shb_pricing', $translated_value); } } }, 10, 3); - 更新原始 Accommodation 及其翻译。
后续步骤
Soho Hotel 的作者需要自行解决此问题,因为这与主题的编码方式有关。我们已经多次联系,但尚未得到作者的配合。
如果您遇到此问题并希望促使作者解决,请在他们的私人支持论坛上与他们联系。