- الحالة
- في انتظار المطور
- الإضافة/القالب ذو الصلة
- 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 );