web-dev-qa-db-ja.com

woocommerceがメールタイトルのテンプレート文字列を置き換えられない

私はWoocommerceを使用していて、Eメールをカスタマイズしようとします。電子メールのタイトルで、私は{customer_first_name}{customer_name}をうまく使わないようにしました。それらは置き換えられません。これはバグですか、それとも私が使用した文字列は正しくありませんか?

1
Ro L

Eメールテンプレート変数はEメールの本文でのみ使用できます。あなたが電子メールのタイトル/件名を変更したい場合は、対応するフィルタを使用し、子テーマのfunctions.phpファイルにカスタムコードを追加するか、カスタムプラグインを使用する必要があります。

WooCommerceのドキュメントにこれを行うためのスニペットがあります。 https://docs.woocommerce.com/document/change-email-subject-lines/ /

処理順序の例としては、次のものを使用します。

add_filter( 'woocommerce_email_subject_customer_processing_order', 'change_processing_email_subject', 1, 2 );

function change_processing_email_subject( $subject, $order ) {
    global $woocommerce;

    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

    $subject = sprintf( 'Hi %s, thanks for your order on %s', $order->billing_first_name, $blogname );

    return $subject;
}

これにより、件名が次のように変わります。

'こんにちは{顧客名}、{ウェブサイト名}でのご注文に感謝します

1
Mat