質問 > フロント機能 > ご注文完了画面で注文控えpdfをダウンロードさせたい |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
akadota |
投稿日時: 2020/10/1 14:02
対応状況: 解決済
|
半人前 登録日: 2020/8/11 居住地: 投稿: 24 |
Re: ご注文完了画面で注文控えpdfをダウンロードさせたい 実装できました!ありがとうございます。
結局外部phpで対応しました。 Controllerが難しかったので。。 |
umebius |
投稿日時: 2020/9/25 22:44
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
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
|
akadota |
投稿日時: 2020/9/25 18:21
対応状況: 開発中
|
半人前 登録日: 2020/8/11 居住地: 投稿: 24 |
ご注文完了画面で注文控え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> |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |