WPML
상태
개발자 대기 중
관련 플러그인/테마
Kadence WooCommerce Email Designer
주제 태그
Compatibility

문제 개요

WPML과 함께 Kadence WC Email Designer를 사용할 때, 이메일 본문 텍스트 내에 삽입된 {site_title}, {site_address}{site_url}과 같은 자리 표시자가 번역된 이메일에서 대체되지 않는 문제가 발생할 수 있습니다. 이러한 자리 표시자는 기본 WooCommerce 헤더 또는 추가 참고 사항 필드에서는 계속해서 정상적으로 작동합니다.

임시 해결 방법

진행하기 전에 전체 사이트 백업을 완료했는지 확인하세요.


  • …/wp-content/plugins/kadence-woocommerce-email-designer/kadence-woocommerce-email-designer.php 파일을 여세요.

  • 375번째 줄을 찾으세요.

  • 변경 전:
    $body_text = str_replace( '{site_title}', get_bloginfo( 'name', 'display' ), $body_text );
    $body_text = str_replace( '{site_address}', wp_parse_url( home_url(), PHP_URL_HOST ), $body_text );
    $body_text = str_replace( '{site_url}', wp_parse_url( home_url(), PHP_URL_HOST ), $body_text );
    
    if ( $order ) {
    	if ( 0 === ( $user_id = (int) $order->get_customer_id() ) ) {
    		$user_id = 'guest';
    	}
    	if ( class_exists( 'WCML_Orders' ) ) {
    		$order_language = WCML_Orders::getLanguage( $order->get_id() );
    		if ( $order_language ) {
    			$language_code = $order_language;
    			$name   = '[kt_woomail]' . $setting_key;
    			$body_text = apply_filters( 'wpml_translate_single_string', $body_text, 'admin_texts_kt_woomail', $name, $order_language );
    		}
    	}
    	// Check for placeholders.
    	$body_text = str_replace( '{order_date}', wc_format_datetime( $order->get_date_created() ), $body_text );
    	$body_text = str_replace( '{order_number}', $order->get_order_number(), $body_text );
    	$body_text = str_replace( '{customer_first_name}', $order->get_billing_first_name(), $body_text );
    	$body_text = str_replace( '{customer_last_name}', $order->get_billing_last_name(), $body_text );
    	$body_text = str_replace( '{customer_full_name}', $order->get_formatted_billing_full_name(), $body_text );
    	$body_text = str_replace( '{customer_company}', $order->get_billing_company(), $body_text );
    	$body_text = str_replace( '{customer_email}', $order->get_billing_email(), $body_text );
    	$body_text = str_replace( '{customer_username}', self::get_username_from_id( $user_id ), $body_text );
    }
    
    $body_text = apply_filters( 'kadence_woomail_order_body_text', $body_text, $order, $sent_to_admin, $plain_text, $email );
            


  • 변경 후:
    // Moved from here
    
    if ( $order ) {
    	if ( 0 === ( $user_id = (int) $order->get_customer_id() ) ) {
    		$user_id = 'guest';
    	}
    	if ( class_exists( 'WCML_Orders' ) ) {
    		$order_language = WCML_Orders::getLanguage( $order->get_id() );
    		if ( $order_language ) {
    			$language_code = $order_language;
    			$name   = '[kt_woomail]' . $setting_key;
    			$body_text = apply_filters( 'wpml_translate_single_string', $body_text, 'admin_texts_kt_woomail', $name, $order_language );
    		}
    	}
    	// Check for placeholders.
    	$body_text = str_replace( '{order_date}', wc_format_datetime( $order->get_date_created() ), $body_text );
    	$body_text = str_replace( '{order_number}', $order->get_order_number(), $body_text );
    	$body_text = str_replace( '{customer_first_name}', $order->get_billing_first_name(), $body_text );
    	$body_text = str_replace( '{customer_last_name}', $order->get_billing_last_name(), $body_text );
    	$body_text = str_replace( '{customer_full_name}', $order->get_formatted_billing_full_name(), $body_text );
    	$body_text = str_replace( '{customer_company}', $order->get_billing_company(), $body_text );
    	$body_text = str_replace( '{customer_email}', $order->get_billing_email(), $body_text );
    	$body_text = str_replace( '{customer_username}', self::get_username_from_id( $user_id ), $body_text );
    }
    
    // To here
    $body_text = str_replace( '{site_title}', get_bloginfo( 'name', 'display' ), $body_text );
    $body_text = str_replace( '{site_address}', wp_parse_url( home_url(), PHP_URL_HOST ), $body_text );
    $body_text = str_replace( '{site_url}', wp_parse_url( home_url(), PHP_URL_HOST ), $body_text );
    
    $body_text = apply_filters( 'kadence_woomail_order_body_text', $body_text, $order, $sent_to_admin, $plain_text, $email );
            

알려진 모든 문제 →