Welcartの注文明細(管理画面)から納品書や請求書の」PDFを印刷することが出来ますが、フィルターフックの usces_filter_pdf_note を利用すると備考欄に出力する内容をカスタマイズすることが出来ます。
備考欄カスタマイズサンプル
以下のサンプルで備考欄に配送関連情報やカスタムメンバーフィールドで管理している情報を出力することが出来ます。
また第三引数の $type
に “nohin” や “bill” という書類タイプを判別する文字列が入っているので内容に応じて切り替えることも可能です。
/**
* 見積書・納品書・請求書・領収書のPDF印刷時に
* 備考欄に出力するテキスト情報をカスタマイズする
*/
function custom_usces_filter_pdf_note( $note_text, $data, $type )
{
global $usces;
//会員情報やカート内の情報を取得する
$customer = $data->customer;
$deliveri = $data->deliveri;
$cart = $data->cart;
$condition = $data->condition;
$order = $data->order;
//会員ID取得
$member_id = $customer['mem_id'];
//カスタムメンバーフィールドに保存したメンバーコード取得
$member_code = $usces->get_member_meta_value('csmb_member_code', $member_id );
//書類タイプ
switch ( $type ) {
case 'mitumori':
$type_text = '見積書';
break;
case 'nohin':
$type_text = '納品書';
break;
case 'bill':
$type_text = '請求書';
break;
case 'receipt':
$type_text = '領収書';
break;
default:
$type_text = $type;
}
//納品書の印刷時のみカスタマイズ
if ( $type==='nohin' ) {
//オリジナル取得
$note_text_org = $note_text;
//備考欄出力内容カスタマイズ
$note_text = "\n";
$note_text .= '■メンバーコード:'.$member_code."\n";
$note_text .= '■配送希望日:'.$order['delivery_date']."\n";
$note_text .= '■配送時間帯:'.$order['delivery_time']."\n";
$note_text .= '■発送予定日:'.$order['delidue_date']."\n";
$note_text .= "\n";
//管理画面上の備考欄の内容
if ( $note_text_org ) {
$note_text .= "--------------------"."\n";
$note_text .= $note_text_org."\n";
$note_text .= "\n";
}
}
//
return $note_text;
}
add_filter( 'usces_filter_pdf_note', 'custom_usces_filter_pdf_note', 10, 3 );
動作環境情報
"エックスサーバー" x10 "PHP" 7.4.13 "MySQL" 5.7 "WordPress" 5.7.2 "Welcart e-Commerce" 2.2.4
コメント
困っていた所に「まさに!」という内容で大変助かりました。有用な記事を掲載していただきありがとうございました。
送付先確認のために、配送先の宛名+住所も表示されるように出来るとなお嬉しいのですが、上記コードに追記する形で実現することはできるものでしょうか?
初めましての身分で不躾ながら、もしもお応えいただけるようであればお願いいたします。
お役に立てて幸いです!
配送先の宛名+住所の表示も可能かと思います。
すぐ検証が出来ず曖昧な返信となりスミマセン。
phpコードの記述はあまり自信がなくて四苦八苦でしたが、なんとか実装できました!
おかげ様です、ありがとうございました!
解決されたようで良かったです!ご対応ありがとうございました。