- 상태
- 개발자 대기 중
- 관련 플러그인/테마
- 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 );