- สถานะ
- รอผู้พัฒนา
- ปลั๊กอิน/ธีมที่เกี่ยวข้อง
- Kadence WooCommerce Email Designer
- แท็กหัวข้อ
- Compatibility
ภาพรวมของปัญหา
เมื่อใช้ Kadence WC Email Designer ร่วมกับ WPML คุณอาจพบปัญหาที่ตัวยึดตำแหน่ง เช่น {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 );