問題の概要
SMS Alert Order Notifications – WooCommerceでは、セカンダリ言語で注文した顧客は、サイトのデフォルト言語で注文のSMSを受け取ります。
回避策
SMS Alertでこの問題が修正されるまでの間、以下の方法で注文の言語で注文SMSを送信できます。
- WPML設定に移動し、カスタム XML 設定を開いて次を追加し、保存します。
<wpml-config> <admin-texts> <key name="smsalert_message"> <key name="sms_body_*" /> </key> </admin-texts> </wpml-config> - WPML文字列翻訳に移動し、SMSテンプレート(ドメイン:admin_texts_smsalert_message)を翻訳します。
- お使いのテーマの
functions.phpファイルに、またはコードスニペットプラグインを使用して、次のコードを追加します。これにより、注文の言語で顧客向けSMSが作成されます。add_action( 'woocommerce_order_status_changed', function ( $order_id ) { $order = wc_get_order( $order_id ); $lang = $order ? $order->get_meta( 'wpml_language' ) : ''; if ( $lang ) { $GLOBALS['sms_alert_wpml_previous_lang'] = apply_filters( 'wpml_current_language', null ); do_action( 'wpml_switch_language', $lang ); } }, 9 ); add_action( 'woocommerce_order_status_changed', function () { if ( isset( $GLOBALS['sms_alert_wpml_previous_lang'] ) ) { do_action( 'wpml_switch_language', $GLOBALS['sms_alert_wpml_previous_lang'] ); unset( $GLOBALS['sms_alert_wpml_previous_lang'] ); } }, 11 );