バージョン選択

フォーラム

メニュー

オンライン状況

32 人のユーザが現在オンラインです。 (10 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 32
もっと...

サイト内検索

質問 > フロント機能 > ご注文完了画面で注文控えpdfをダウンロードさせたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
akadota
投稿日時: 2020/9/25 18:21
対応状況: 開発中
半人前
登録日: 2020/8/11
居住地:
投稿: 20
ご注文完了画面で注文控えpdfをダウンロードさせたい
クリスマスピザの予約フォームを作成していますが、予約控えのpdfをダウンロードできる機能がほしいです。
ご教授いただけないでしょうか?

ちなみにメールと住所は必要ないので、ダミーデータを入れて非表示にしています。

【やってみていること】
/html/user_data/の直下に『TCPDF』ライブラリーをアップロード。同じ場所に『complete_pdf.php』を配置し、ご注文完了画面に
<p><a href="/christmas/html/user_data/complete_pdf.php" download="diamondpizza-christmas.pdf">PDFファイルをダウンロード</a></p>
を記載してダウンロードできるようにしてみました。

ダウンロードはできるのですが、内容が入らないです。
【complete_pdf.phpの中身】
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>予約控え</title>
</head>
<body>
<?php
include "./TCPDF/tcpdf.php";
$tcpdf = new TCPDF();
$tcpdf->AddPage();
$tcpdf->SetFont("kozgopromedium", "", 10);

$html = <<< EOF
<p style="color:#333333;">
<strong>ご注文番号:{{ Order.order_no }}<br/></strong><br/>
ご注文日時:{{ Order.order_date|date_sec }}<br/><br>
{{ Order.name01 }} {{ Order.name02 }} 様<br/>
お名前(カナ):{{ Order.kana01 }} {{ Order.kana02 }} 様<br/>
{% if Order.company_name %}
会社名:{{ Order.company_name }}<br/>
{% endif %}
電話番号:{{ Order.phone_number }}<br/>
その他ご要望:{{ Order.message }}<br/>
<hr style="border-top: 3px double #8c8b8b;">
{% for Shipping in Order.Shippings %}
お受取り日:{{ Shipping.shipping_delivery_date is empty ? '指定なし' : Shipping.shipping_delivery_date|date_day_with_weekday }}<br/>
お受取り時間:{{ Shipping.shipping_delivery_time|default('指定なし') }}<br/>
{% endfor %}
<hr style="border-top: 3px double #8c8b8b;">
ご予約商品明細<br/>
<hr style="border-top: 3px double #8c8b8b;">
{% for OrderItem in Order.MergedProductOrderItems %}
<!--商品コード:{{ OrderItem.product_code }}<br/>-->
●商品名:{{ OrderItem.product_name }} {{ OrderItem.classcategory_name1 }} {{ OrderItem.classcategory_name2 }} {{ is_reduced_tax_rate(OrderItem) ? '※' }}<br/>
数量:{{ OrderItem.quantity|number_format }} 単価:{{ OrderItem.price_inctax|price }}<br/>
{% endfor %}
<hr style="border-top: 1px dotted #8c8b8b;">
お支払い合計(税込):{{ Order.payment_total|price }}
<br/>
EOF;

$tcpdf->writeHTML($html);
ob_end_clean();
$tcpdf->Output('complete.pdf', 'D'); // 第二引数をDに変更する
?>
</body>
</html>
umebius
投稿日時: 2020/9/25 22:44
対応状況: −−−
登録日: 2016/7/22
居住地: 東京日本橋
投稿: 1758
Re: ご注文完了画面で注文控えpdfをダウンロードさせたい
ご記載のようにEC-CUBE外部にphpファイルを作る方法であれば
<a href="/christmas/html/user_data/complete_pdf.php?order={{
Order.id }}"のようにして、受注IDを渡して、

complete_pdf.phpでは$_GET['order']が渡ってきて入れば、PDOなどを用いて$_GET['order']を元にdtb_orderテーブルからデータを取得してPDFに入れてやることになるかと思います。

※ただこの方法だとリンクの受注IDを変えれば他人の予約控えが簡単に取得できますので受注IDではなくランダムな文字列を使用するなど工夫が必要でしょう。


一方、EC-CUBE内でカスタマイズするならEC-CUBE内にPDFを出力するControllerまたはルーティングを作成してやります。
https://doc4.ec-cube.net/customize_controller



----------------
EC-CUBE4系 カスタマイズ ECのプロがシステム特急案件承ります。
EC-CUBE開発 リモートで働くエンジニア募集中

akadota
投稿日時: 2020/10/1 14:02
対応状況: 解決済
半人前
登録日: 2020/8/11
居住地:
投稿: 20
Re: ご注文完了画面で注文控えpdfをダウンロードさせたい
実装できました!ありがとうございます。
結局外部phpで対応しました。

Controllerが難しかったので。。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は66,747名です
総投稿数は98,437件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2651
4
nanasess
2107
5
umebius
1758
6
yuh
1612
7
red
1424
8
h_tanaka
1049
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.