Alicia
投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.0.2)
Welcart のバージョン:(例 2.8.1)
PHP のバージョン:(例 8.0)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.4.1、SKU Select 1.4.2)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.7.1)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.4)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
Alicia参加者
moma 様
こんにちは。
Welcart 2.9.14 ~
From は、送信元メールアドレス[ sender mail ] ( 新旧変わらず )
Reply-to は、受注用メールアドレス[ order mail ] (新設)
Reply-name は、サイトのタイトル [ blog name ] ( WordPress 設定 > 一般 )(新設)
Return-path は、エラーメールアドレス[ error mail ] (従来は、送信元メールアドレス)にメールの種類にかかわらず統一されました。
購入者宛メールからお客様が返信してくださる際、以前は【送信元メールアドレス】に届いていた
これまで、Reply-to はデフォルトでは指定されていませんでしたので、その場合には、一般的なメーラーでは、返信ボタンを押すと返信者が特に指定しない限り、”From:” フィールドに指定されているメールボックスに返信される仕様です。
【受注用メールアドレス】に届くようになりました。
つまり、送信元メールアドレス以外に返信して欲しい場合に、Reply-to を指定する必要があるということで、送信元メールアドレスのままでよければ、Reply-to を指定しなければよいということになります。(ちなみに、Return-path は、メールが届かなかったときに返すメールアドレスという意味で、通常の返信希望メールアドレスを指すものではありません。)
余談になりますが、私の場合は、お客様が返信なさるときにどのメールアドレスに返信するのかをあれこれ意識させることはしたくないので、受信用メールアドレスと送信元メールアドレスは同じにしています。「来たメールにそのまま返信していただく」のが迷わせないのではないかと考えています。 ましてや、返信ボタンを押したときに no-reply@ にして、質問メールは、お問い合わせフォーム限定にしてしまうサイトは、お客様本位ではないので好きではありません。
また、お客様が「連絡先」などに登録されるようなことがあったときにも、どちらを登録されるかわからないことや、返信ボタンを押して送信されるとも限らないことが理由です。元々、1つに統一しておけばそういった問題から開放されます。
また、受信用と送信元アドレスを分けたとしても、お客様のメーラーの操作次第によって、どちらにも届く可能性がありますので、結局のところ両方注意して見ておかなければならないことも大きな理由です。もちろん、考え方は人それぞれだと思います。
規模やスタッフの役割分担などの理由があって、受信用と送信元アドレスを分ける必要があることもあるかと思いますので、それを否定するわけではありません。(個人的には、返信をいただく機会が多くアドレスの使い分けをしていたので、以前の方が便利でした…)
今回、仕様変更になりましたので、元に戻すにはカスタマイズする必要があります。上記の説明をお読み頂ければ、Reply-to の指定を消去するか、送信元メールアドレスをReply-to に指定するかの対応が必要ということがお分かりいただけるかと思います。
フックが扱えるようであればそれが一番良いとは思いますが、扱えない方もいらっしゃるので、今回は、ikeda 様が仰っていることに沿った内容を補足する形になりますが、代替方法としてノーコードでも Reply-to を変更できる方法をお伝えしたいと思います。
残念ながら、ノーコードで Reply-to の指定を消去することはできません。残るは、送信元メールアドレスを Reply-to に設定する方法です。まず、 マニュアル を読みますと、
受注用メールアドレス(必須)
注文内容を受け取るためのメールアドレスを入力します。カンマ区切りで複数指定できます。となっています。
そして、こちらはマニュアルには書かれていないのですが、今回のアップデートでは、コードを読むかぎり Reply-to に指定されるのは、「 1番目の受注用メールアドレス[ first_order_mail ] 」 のようです。
つまり、Welcart Shop > 基本設定 受注用メールアドレス の
「 1番目 」 に 「送信元メールアドレス」を追加、そして「 , 」(カンマ)に続けて、
「 2番目 」 にこれまでの「受信用メールアドレス」を指定するこれだけで、Reply-to に「送信元メールアドレス」 がノーコードで設定されることになります。
デメリットですが、当然ながら、両方のメールアドレスに受注報告メールや各種管理メールのBCCメールといった自動送信メールが届くわけですが、こちらは、「送信元メールアドレス」に届いたメーラーの受信設定で、「送信元メールアドレス」でフィルタリングしてフォルダ分けを設定しておけば、これらの自動送信メールとお客様からの返信メールをフォルダで区別することが可能です。あとはこれらの自動送信メールが不要ならば、まとめて消去するだけです。
私のように、元々両方同じにされている方は、今回のアップデートの影響はほとんどないと思います。他にも、フックが扱えないという方がいらっしゃったら、試してみてください。私は、想像だけで実験していませんので、もし試された方がいらっしゃったら、このフォーラムにて共有いただけますと嬉しいです。
Alicia参加者kitagawa 様
mainichi web様お世話になっております。動かなくなっておりました、Reply-to へのカスタマイズにつきまして、遅くなりましたがその後の顛末です。
Welcart 2.9.10 → 2.9.14 まで emails.php をコンペアして確認したところ、私のところでは、フィルターフックの usces_send_ordermail_para_to_manager を利用したカスタマイズへの修正で問題なく動くようになりました。FFWでは、usces_filter_phpmailer_init で最終的に Fires after PHPMailer is initialized.部分の phpmailer_init への修正もされているようですが、自分だけでカスタマイズを管理できるのでそこまでの修正は不要でした。
自分のカスタマイズを停止して、FFWにて該当の機能を稼働させても、HTML形式でうまく機能しているのが確認できました。私としましては、これにて解決としていただいて構いません。この度は、大変お世話になりありがとうございました。
Alicia参加者furuta 様
ありがとうございます。痛み入ります。
急ぎません。
よろしくお願いいたします。Alicia参加者kitagawa 様
ご丁寧に連絡いただきましてありがとうございます。
私のところは、Welcart 2.9.14 にしても元の様には動きませんでした。2.9.11の時に変わった影響を受けているのだと思います。
やはり、FFWと同じように自分のカスタマイズを見直す必要があるのでしょう。私は、HTML形式ですので、元々FFWの機能は使えませんでした。今回のFFWのアップデートでは使えるようになっているのだと思います。両者出揃ったところで、変更後のemails.php 全体をコンペアして解読しないといけませんね。フックを追加してくださったとのこと。おそらくこれで以前より簡単になったのかと期待しています。私は、コーディング経験が浅く、時間が掛かりますのでしばらくはこのままでいくと思います。
今、まだ確定申告で時間が取れませんので、改めて落ち着いてから取り組むこととします。
この度はご案内ありがとうございました。Alicia参加者mainichi web 様
こんなところでお話しできるとは思っていませんでした。
お世話になっております。ご丁寧にありがとうございます。以前のバージョンでは、
if(!is_array($order_para['headers'])){ $order_para['headers'] = array();}
で元々含まれていた、”Content-Type: text/html” も初期化されて消えてしまっていましたので、HTML形式の人には使えてなかったと思います。
今回、調整事項があるとのことですので、Welcart 2.9.14 が出てからになりますが、また後日確認させていただきます。 この度はありがとうございました。
Alicia参加者tani.on-gaeshi.com 様
こんにちは。
気になっていたものの、時間が取れなくてすっかり遅くなってしまいました。
もう、これを見ることはないかもですが、他の方が参考にされるかもしれませんのでメモしておきます。商品合計3900円以下の場合に送料を一律150円引きにしたいのですが、
オプションで商品毎にギフトラッピングの選択が出来るようにしており、
一商品でもオプション(ギフトラッピング)を選択した場合は、例外としたいです。そのお気持ちすごくよくわかります。特に、「〇〇円以下」の「以下」ってところが・・・。送料で稼ぎたいわけじゃないので、できるだけ安くしたいけど・・・。
ギフトラッピングにすると、包装用の箱の中に更に化粧箱が入るので、包装用の箱のサイズが変わっちゃうんですよね。たぶん。だから除外・・・。素人の私は、たまにしかプログラムを書かないので、すぐに忘れてしまいます。なので、今回お手伝いさせてもらいました。ですが、最近プログラムというものを初めて書き始めたばかりですので、何の保証もできません。しっかりバックアップを取ってからにしてくださいね。
WCEX Multi Price をご利用ですので、ギフトラッピングの箱代などは、それで徴収されるのだと思います。私の場合、オプションがとても多くなってしまったので、色んな独自のルールがあるために、オプションの先頭8文字をコード化して、フロント側では見えないように消去しています。その為、そのコードで厳格に引っ掛けてゴニョゴニョと色々しているのですが、今回はわかりやすく、「ギフトラッピング」という文字列を含んでいれば、という条件にしました。簡素化したせいで予期せぬ動きをするかもしれませんので、気になったらご自身で変更してください。
Welcart 本体の送料無料の機能も、せっかくなので残しておきます。【注意事項】
PHP8.0 ~ 新設された str_contains() を使っています。
今、お使いのPHP のバージョン:7.4.30
では、機能しません。
PHPを更新して、8.0にする(8.1以上は、他のプラグインなどの対応状況がわからないうちは、やめておいた方がいいと思います。)か、ご都合が悪いようでしたら strpos() や strstr() に変更するなどしてください。add_filter( 'usces_filter_set_cart_fees_shipping_charge', 'my_filter_set_cart_fees_shipping_charge', 10 ); function my_filter_set_cart_fees_shipping_charge(){ // 変数の一部は、フックから取っても構いません。 global $usces, $usces_entries; $carts = $usces->cart->get_cart(); $entries = $usces->cart->get_entry(); $total_items_price = $usces->get_total_price(); $entries['order']['total_items_price'] = $total_items_price; // 一応、Welcart 本体の送料無料条件 は機能するように残しました if( empty( $usces->options['postage_privilege'] ) || $total_items_price < $usces->options['postage_privilege'] ) { $shipping_charge = $usces->getShippingCharge( $entries['delivery']['pref'], $carts, $entries ); $carts = $usces->cart->get_cart(); //カートの中身を抽出する $counter = 0;// カウンター初期化 foreach($carts as $cart_key => $cart_row){ //カートの中身からカートの行番号となるKeyと内容を1行ごと(1つの注文ごと)に抽出してループする $opt = $carts{"$cart_key"}["options"]; //1つ目の注文からオプションデータのみ抽出する foreach($opt as $opt_key => $value){ //オプションデータから共通オプションのKeyと中身を抽出してループする $wrapping_name = 'ギフトラッピング';// ← ← ← ← ← ← ← ここに、除外したいオプションの任意の文字列を入力する if( str_contains( urldecode($value), $wrapping_name)){ // オプションのセレクト値に $wrapping_name が含まれる場合 (注 str_contains PHP 8.0~) $counter ++;// 1ループごとにカウントしていく } } } // カウンターが0のまま(ギフトラッピングがなかった)、且つ 商品合計 3,900円以下だったら if( $counter <= 0 && $total_items_price <= 3900){ $shipping_charge -= 150; } } else { $shipping_charge = 0;// Welcart 本体で送料無料の条件を満たした場合 } return $shipping_charge; }
- この返信は9ヶ月、 2週前にAliciaが編集しました。
Alicia参加者furuta 様
Welcart 2.9.11 でのフックの追加を確認しました。ありがとうございました。
別件の方で手間取りまして、ご連絡が遅くなりました。申し訳ありません。トピ主様がまだ見ておられるかわかりませんが、他に参考にされる方がいらっしゃるかもしれませんので、やったことのメモを残しておくことにしました。
【前提】
次の項目に、フィールドキー company を設定しています
・カスタム・カスタマーフィールド
・カスタム・デリバリーフィールド
・カスタム・メンバーフィールド【今回使用したフック】
・usces_filter_pdf_customer_name (今回新設 購入者の個人名にusces_filters_pdf_person_honor2を連結)
・usces_filter_pdf_shipping_name (今回新設 配送先の個人名にusces_filters_pdf_shipping_person_honorを連結)
・usces_filter_pdf_contact_person (最近追加 先頭部分の「ご担当者:」を非表示にして、usces_filters_pdf_person_honor2 と usces_filters_pdf_shipping_person_honor をそれぞれ連結)
・usces_filter_pdf_customer_company (会社名にusces_filters_pdf_company_honor2を連結)
・usces_filters_pdf_person_honor (元の位置の敬称を非表示)
・usces_filters_pdf_company_honor (元の位置の敬称を非表示)
・useces_filter_order_pdfheader_fontsize(宛名の大きさ調整)【フックの中に勝手に追加した独自のフック】(本体のアップデートでも消えることはありません。)
・usces_filters_pdf_person_honor2 (購入者の個人名の右隣に新しい敬称を追加)
・usces_filters_pdf_shipping_person_honor (配送先の個人名の右隣に新しい敬称を追加)
・usces_filters_pdf_company_honor2 (会社名の右隣に新しい敬称を追加)【実際に作ってみて・・・】
最近追加されました、usces_filter_pdf_contact_person の納品書の条件分岐が複雑でしたが、お陰様でなんとかやり切りました。Welcart本体が苦労されて作り込まれていたのが印象的でした。リファレンスにありましたように、両方非表示にするだけなら簡単だったのですが、購入者と配送先の両方が同じフィルターフックでしたので、これを分岐するために少しトリッキーな仕組みが必要でした。【今後期待されるフック】
・usces_filter_pdf_delivery_company ?
盲点だったのが、これです。現状ですと、配送先の会社名の入力値を一時的に変更して、「御中」をくっつけて登録し直して、PDFを出力してからまた元に戻すのが一番早いかもしれません。担当者名を併記する場合であれば、現状のまま会社名の右隣に「御中」が表示できなくても問題ないので、あまり困らないと言えば困らないといったところです。今回、宛名周りの見栄えをどうにかしたいということでチャレンジしましたが、重要度は低めかもしれません。強力なカスタマイズ機能を備えた Welcart で現状どこまでできるか試してみました。医療関係の敬称は、ちょっとマニアックなので、丁度良いと思いまして使ってみました。
お忙しいところ無理を言ってフックを作っていただきましたので、お礼を兼ねてご報告いたします。結果は、サンプルをご用意しましたのでご覧下さい。
この度は、誠にありがとうございました。Attachments:
You must be logged in to view attached files.Alicia参加者eno.k. 様
(管理者をログアウトして)お客様として(ご自分の管理しているその)サイトに訪れてください。
Alicia参加者eno.k. 様
ごめんなさい。お客様としてサイトに訪れてください。
Alicia参加者eno.k. 様
こんにちは。
フロント側へお回りください。Alicia参加者Rights 様
ご確認いただきありがとうございました。
ブラウザのコンソールでJavascriptのエラーは出ていますか?Alicia参加者Rights 様
こんにちは。
問題の切り分けが必要かと思います。
おそらくJava でエラーが発生しています。
1.セキュリティ系のプラグインを一旦全部停止してみる。
2.ブラウザの設定を確認する。ブラウザを替えてみる。
3.サーバーのWAFを停止して15分くらい待つ。後半のご質問は、別件ですか?本件と何か関係ありますか?
別件ならば、新しいトピックを立てられることをお勧めします。Alicia参加者YS-nishida 様
こんにちは。
マニュアルの読み方ですが、送料固定
通常は一つの配送方法に対して一つの送料を指定して固定するのが一般的です。
しかし送料が複数有り、同じ配送方法でも商品ごとに送料を変える必要がある場合は、「送料を固定しない」を選択します。これにより、商品登録時に送料を選択できるようになります。
(送料を固定した場合、商品情報編集での送料選択は無視されます)これによると、
送料固定→送料を固定しない
ではなく、固定すれば、お望みの結果が得られると思います。一度試してみてください。
Alicia参加者yossiy0815 様
こんにちは。
公式で対応中とのことですので、アップデートを待たれるのがよいと思います。
それまでは、reCAPTCHA v3 を停止すれば受注できるはずです。Alicia参加者ikeda 様
お世話になっております。
こちら、原因がわかりました。おそらく解決したのではないかと思います。
Welcart 2.9.11 アップデートのバグの原因を調べているときにプラグインを外したり、カスタマイズをいじったときにフックの優先度を変更したのを忘れていました。ついでにこのタイミングで wpautop の無効化を解除してしまったこともあり、すっかり嵌まってしまいました。
お騒がせして申し訳ありませんでした。取り急ぎご報告まで。 -
投稿者投稿