昨日に引き続いてWelcartの領収書、請求書類のPDFカスタマイズです。Welcartが自動生成するPDF類は、内訳に「キャンペーン割引」「ポイント使用」「代引き」といった項目がありますが、これらをPDFに表示させないカスタマイズをご紹介します。

このネタもWelcartの「開発フォーラム」に上がっています。

[解決済み] 納品書等に表示する項目

ただし、ご覧いただくとわかるように、order_print.phpを直接コメントアウトするよう書かれています。プラグインなどの本体ソースを書き換えるのは極力避けたいところですが、記事の日付は2011年の6月とかなり前です。

「もしかして・・・」とWelcart最新版のorder_print.phpを見てみたら、フィルターが付加されていました!

Welcart開発サイドがこういう要望に応えるために用意してくださったのでしょうか。感謝です!

ということで、本体をいじることなくフィルターフックで対応することができます。

内訳項目はラベル(項目名)と値とをそれぞれ出力するようになっており、それぞれに以下のフィルターが用意されています。

キャンペーン割引・ラベル:usces_filter_disnount_label
キャンペーン割引・値:usces_filter_disnount_vlue
代引き・ラベル:usces_filter_cod_label
代引き・値:usces_filter_cod_vlue
使用ポイント・ラベル:usces_filter_point_label
使用ポイント・値:usces_filter_point_vlue

非表示にしたい項目のラベルと値を、functions.phpでフックして空の値を返すようにすれば、PDF上で空欄にすることができます。

たとえば「使用ポイント」を非表示にしたい場合は、

add_filter( 'usces_filter_point_label', 'my_usces_filter_point_label' );
function my_usces_filter_point_label() {
  return null;
}
add_filter( 'usces_filter_point_vlue', 'my_usces_filter_point_vlue' );
function my_usces_filter_point_vlue() {
  return null;
}

のように、ラベルと値のフィルターにフックをして、「return null;」で空にしています。

空にしないで、ラベルの方だけフックして名称を変える、なんていう応用もできますね。

先の印鑑挿入と合わせて、独自の領収書類にカスタマイズしてみてください!