自動送信メールの本文変更について

フォーラム その他 自動送信メールの本文変更について

  • このトピックには4件の返信、2人の参加者があり、最後にpore58により7年、 11ヶ月前に更新されました。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #78266
    pore58
    参加者

    いつもお世話になっております。

    受注時の自動送信メールの文言を一部変更したいのですが該当のフック等が分からず困っております。
    過去の書き込みなどを参考に一部は上手く変更できたのですが、最後の一箇所だけ上手くいかず書き込みをさせて頂きました。

    具体的に変更したい箇所は、自動送信メール内の項目【ご注文内容】内の「ご購入者」を「ご依頼主」に変更したいと考えております。

    《参考にした書き込み》
    https://www.welcart.com/community/forums/topic/%E8%87%AA%E5%8B%95%E9%80%81%E4%BF%A1%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E6%9C%AC%E6%96%87%E5%A4%89%E6%9B%B4

    《現状のコード》
    add_filter(“usces_filter_apply_mail_addressform”, “my_filter_apply_mail_addressform”, 10, 4);
    function my_filter_apply_mail_addressform($formtag, $type, $data, $order_id){
    $ptns = array(
    array(
    “ptn” => “^” . __(‘Buyer’,’usces’). “\t:”,
    “rep” => __(‘ご依頼主’,’usces’)
    )
    );
    $formtag = explode(“\r\n”, $formtag);
    foreach($formtag as $k => $msg){
    foreach($ptns as $ptn_arr){
    if($ptn_arr[“ptn”] != “”){
    $ptn = “/” . $ptn_arr[“ptn”] . “/u”;
    $rep = $ptn_arr[“rep”];
    if(preg_match($ptn, $msg)){
    if(isset($ptn_arr[“rmv”]) && $ptn_arr[“rmv”] != “”){
    $rmv_ptn = “/” . $ptn_arr[“rmv”] . “/u”;
    if(preg_match($rmv_ptn, $msg)){
    $msg = preg_replace($rmv_ptn, “”, $msg);
    }
    }
    $formtag[$k] = preg_replace($ptn, $rep, $msg);
    }
    }
    }
    }
    $formtag = implode(“\r\n”, $formtag);
    return $formtag;
    }

    何卒、宜しくお願い致します。

    #78268
    yskysmr
    キーマスター

    こんにちは。

    ご利用の環境を教えてください。
    ——————————————-
    WordPress のバージョン:
    Welcart のバージョン:
    ご利用のテーマ:
    症状を確認したブラウザ:
    サーバー(会社名、サービス名):
    SSLの利用: 
    WordPress のパーマリンク設定:
    ——————————————–

    #78271
    pore58
    参加者

    お世話になっております。
    失礼いたしました。
    環境は以下になります。

    ——————————————-
    WordPress のバージョン:4.4.2
    Welcart のバージョン: 1.7.5
    ご利用のテーマ:
    症状を確認したブラウザ:
    サーバー(会社名、サービス名):お名前.comレンタルサーバー(SD-12)
    SSLの利用:利用
    WordPress のパーマリンク設定:
    ——————————————–

    以上、宜しくお願い致します。

    #78299
    yskysmr
    キーマスター

    pore58 様

    確かに「ご購入者」個別にはフックはありませんので、usces_filter_apply_mail_addressform を使うしかないようですが、個人的には正規表現でなくてもよいのではと思います。str_replace で、文字列全体から「ご購入者」を「ご依頼主」にしてしまってもいいのではないでしょうか。

    ちなみに、いずれにしましても、変換元の “^”“\t:” が不要です。

    #78314
    pore58
    参加者

    ご返信ありがとうございます。
    アドバイス頂いた通り、str_replaceを利用し実現できました!!
    悩みが解決され本当に助かりました。

    《改良コード》
    add_filter(“usces_filter_apply_mail_addressform”, “my_filter_apply_mail_addressform”, 10, 4);
    function my_filter_apply_mail_addressform($formtag, $type, $data, $order_id){
    $formtag = str_replace(“ご購入者” , “ご依頼主” , $formtag);
    return $formtag;
    }

    今後ともよろしくお願いいたします!

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。