【シンプル】Welcartで領収書の但し書きを動的にPDFに反映させる方法
フリーランスのWeb制作者、i-nob(@inobapen)です。
WordPressでECサイトを構築する際によく使われているプラグイン【Welcart】には、受注リストから見積書や納品書・請求書・領収書をPDFで発行する機能があります。
その中でも、特に【領収書】に関してはお客様から対面の時のように「こんな但し書きにしてほしい」という要望に応えられらたいいなー…
ってこと、考えたりしませんか?
今日はそんなカスタマイズを、意外とシンプルに実装することができたのでご紹介致します。
この方法は、一部記述を変更すると見積書や納品書・請求書にも利用できる内容です。
手順はなんと2つのみ!
早速行ってみましょう!
1:カスタム・オーダーフィールドで但し書き欄を追加
WordPressの管理画面左側メニュー【Welcart Shop】→【カートページ設定】に移動し、【カスタム・オーダーフィールド】のタブで但し書き欄を作ります。
◆入力欄について
●フィールドキー:半角英字やアンダーバー( _ )でキーを設定→後で使用
(ここでは例としてフィールドキーをexampleとします)
●フィールド名:支払方法ページの入力欄ラベル→「但し書きの指定」など
●入力形式はドロップダウンメニューから「テキスト」を選択
↓
こうすると、支払方法ページに「但し書きの指定」という欄が表示され、希望する但し書きの表記を購入者に入力してもらうことができます。
2:functions.phpでPDF出力のカスタマイズを行う
Welcartは基本的にフィルターフックを使ってカスタマイズを行います。
では先に、カスタマイズの記述から紹介↓
function change_receipt_message() {
$message = usces_get_custom_field_value('order', 'example', $_REQUEST['order_id'], 'return');
return $message;
}
add_filter('usces_filter_pdf_receipt_message', 'change_receipt_message');
使用している【usces_get_custom_field_value】という関数に関しては下のリンクで説明されています。
これでPDFの領収書のメッセージ(ちょうど但し書きっぽい位置)を、カスタム・オーダーフィールドに入力されたものに差し替えて自動で出力してくれます。
また、仮に「お品代として、と書いてください」などと入力されても、Welcartの受注リストから修正することも可能ですので、その辺もご安心を。
実装する時にオーダーIDをどうやって取得すればいいのかで詰まってしまいましたが、pdf出力用のファイルを見ていたら
$_REQUEST['order_id']
上記で取得していたので解決に至った…という流れでした。
ということで、領収書の但し書きを動的に出力する機能の実装についてはあまり情報が見当たらなかったので、記事にしてみました。
お役立て頂ければ幸いです!