WPML
状态
等待作者
相关插件/主题
Soho Hotel

问题概述

当 Soho Hotel 主题与 WPML 一起使用时,应用于默认语言中住宿的季节价格不会复制到已翻译的住宿中。

临时解决方法

作为修复此问题的临时解决方法,请按以下步骤操作:

  1. 前往WPML设置自定义字段翻译,并将自定义字段shb_pricing设置为复制
  2. 在主题的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);
  3. 更新原始 Accommodation 及其翻译。

后续步骤

Soho Hotel 的作者需要自行解决此问题,因为这与主题的编码方式有关。我们已经多次联系,但尚未得到作者的配合。

如果您遇到此问题并希望促使作者解决,请在他们的私人支持论坛上与他们联系。

所有已知问题 →