納品書などのPDF書類にPRメッセージを追加する方法
スポンサーリンク
見積書の有効期間を変更するカスタマイズに続き、PDF書類の文言を変更するカスタマイズ第2弾です。
今回は、「この度は、SAMPLE STOREをご利用下さいまして有難うございます。・・・」の文章に、PR文を続けて入れてみます。
例えば、会員限定のキャンペーンのカスタマイズと合わせて、
○月○日からシークレットキャンペーン開催!お見逃しなく!
というPRを入れてみたり、
クーポン機能を実装させるカスタマイズと合わせて、
次回のお買い物に使えるクーポンコードです。xxxxxx またのご来店お待ちしております!
というリピーター向けのPR文を追加してみても良いと思います。
もくじ
1. 利用するフック
見積書・納品書・請求書・領収書のそれぞれのメッセージ部分にフックが用意されています。記述されているファイルはincludes/order_pdf.phpです。
- 見積書
- usces_filter_pdf_estimate_message
- 納品書
- usces_filter_pdf_invoice_message
- 請求書
- usces_filter_pdf_bill_message
- 領収書
- usces_filter_pdf_receipt_message
2. functions.phpにコードを記述
今回は、納品書に「【お知らせ】○月○日からシークレットキャンペーン開催!お見逃しなく!」という文言を追加するという設定でやってみます。
functions.phpに追加するコードは以下の通りです。
//納品書にPRメッセージを挿入 function my_pdf_message($message){ $message .= "\n【お知らせ】○月○日からシークレットキャンペーン開催!お見逃しなく!"; return $message; } add_filter ('usces_filter_pdf_invoice_message', 'my_pdf_message', 10, 1);
PR文の直前で改行したほうがわかりやすいかなと、PHPの改行を意味する\nを文章の頭に入れています(そのため、ダブルクオートで文章を挟んでいます。※シングルクオートでは\nがそのまま出力されてしまうので注意)。改行が不要な場合は削除して下さい。
これで、もともとの文章の後に、PR文が入ります。
アレンジ:文言そのものをごっそり変える場合
上記コードは、もともとある「この度は SAMPLE STORE をご利用下さいましてありがとうございます。下記の通り納品いたします。」というメッセージに追加する形になっていますが、ごっそり変えたい場合は以下のようにします。
//納品書のメッセージを変更 function my_pdf_message($message){ $message = '店長のまめ子です。この度はご購入ありがとうございました。秋が近づき、徐々に涼しくなってまいりました。来月にはあったか雑貨の特集も企画しています。'; return $message; } add_filter ('usces_filter_pdf_invoice_message', 'my_pdf_message', 10, 1);
つまりは、最初のコードの3行目で$message .=
となっているところのドットを取っただけです。
3. まとめ
色々なメッセージを試してみましたが、2行を超える文章は「受注日」の行に被ってしまいます(もしかしたら解決策があるのかもしれませんが)。なるべく短く、かつ心に響くコピーを入れるように努力する必要があるかもしれません。
納品書以外のPDF書類のメッセージを変える場合も、同じような手順でOKです。全く同じメッセージを使う場合には、add_filter
だけを増やせばいいですね。
add_filter ('usces_filter_pdf_estimate_message', 'my_pdf_message', 10, 1); add_filter ('usces_filter_pdf_receipt_message', 'my_pdf_message', 10, 1); add_filter ('usces_filter_pdf_bill_message', 'my_pdf_message', 10, 1);
納品書はお客様と接する一つのチャンスなので、少しでも多くの方にリピート頂けるように色々工夫したいところです。
初めてコメントさせていただきます。「PRメッセージを追加する」いいですね!説明もわかりやすく、早速カスタマイズしてみました!ありがとうございました(^_^)
ところで、事のついでと言っては何ですが、納品書などの「キャンペーン割引」の表記を「値引き」もしくは、スペシャル会員のみ「会員優待割引」と表示させる方法を探しています。
こちらの方法をうまく活用できないものかといろいろ試してみましたが、どうにもうまくいきません。
WELCARTのコミュティでも質問をしたのですが、「usces_filter_disnount_labelというフィルタをご利用ください」という回答のみで、どのように設置すれば良いのかわかりません。もしよろしければ、アドバイスなどいただけないでしょうか?
こちらのカスタマイズで同様のフィルターフックを利用しています(3の手順)。未検証ですが、フックの条件分岐を会員ランクで判別するものに変更すれば出来ると思います。会員ランク判別につきましてはこちらの記事などを参考になさってみて下さい。
回答ありがとうございます。
そういえば、以前にもこちらのブログを参考に、カートの「キャンペーン割引」を「会員優待割引」に変更したことがあるのですが、その時のカスタマイズを元に下記の通り記入してみたのですが、ラベルの表記は変わりませんでした。
何がいけないのでしょうか?
/***********************************************************
* 「キャンペーン割引」を「会員優待割引」に書き換え(PDF)
***********************************************************/
add_filter(‘usces_filter_discount_label’, ‘special_member_discount_label’, 10, 1);
function special_member_discount_label(){
global $usces;
$entry = $usces->cart->get_entry();
$total_items_price = $usces->get_total_price();
$member_status = array( ‘優良会員’, ‘VIP会員’);
if( usces_is_login() && in_array(usces_the_member_status(‘return’), $member_status) ){
$text = “会員優待割引”;
} else {
$text = __(‘Campaign disnount’, ‘usces’);
}
return $text;
}
まずは条件などを減らして、フックそのものがちゃんと作動するか確認しながら、少しずつコードを足して動作を試していくといいと思います。また、処理に関係ない変数は、処理速度が落ちる原因や、後から見た時の混乱の原因になってしまうので、消しておいたほうがいいですよ。