バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 【2.13.5】注文日時の●日後の日時をメールに表示したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2018/6/6 13:29
対応状況: 解決済
【2.13.5】注文日時の●日後の日時をメールに表示したい
支払期限などの案内用に、注文日時(create_date)に任意の日にちを加算した値をメールに挿入したいと思っています。

(例)
注文日時:2018/06/06 13:00
支払期限:2018/06/13 (7日後の日付)

そこでメールテンプレートに

<!--{assign var="limit" value=$arrOrder.create_date+24*60*60*7}-->
<!--{$limit|date_format:'%Y/%m/%d'}-->

と試したら実際に表示された日時は「1970/01/08」でした。

恐らく、Smarty内で計算処理をする前にphp側でcreate_dateのデータ型?形式?を変換する必要があるのだと思うのですが、認識としては合っておりますでしょうか?
宜しくお願いいたします。


EC-CUBE: 2.13.5
PHP: 5.6
DB: PostgreSQL
WEBサーバ: Apache
yuh
投稿日時: 2018/6/6 14:48
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1602
Re: 【2.13.5】注文日時の●日後の日時をメールに表示したい
Smarty側でやらずにDBから計算して取ってきた方が楽かもです。

SC_Helper_MailのsfSendOrderMailの
[code]$arrOrder = $objQuery->getRow('*', 'dtb_order', $where, array($order_id));

この部分を

$arrOrder = $objQuery->getRow('*,DATE_ADD(create_date,INTERVAL 7 DAY) as limitdate', 'dtb_order', $where, array($order_id));



$arrOrder = $objQuery->getRow('*,create_date + interval '7 day' as limitdate', 'dtb_order', $where, array($order_id));

に変更すれば取れると思います。


----------------
商品点数100万件、0.1秒以下表示。
https://speedtest2.ec-lab.net/products/list.php?category_id=13
2系最速(自称)

ゲスト
投稿日時: 2018/6/6 16:01
対応状況: −−−
Re: 【2.13.5】注文日時の●日後の日時をメールに表示したい
ありがとうございます。
データベースから取り出した値を加工するのではなく、加工して取り出した方が良いのですね。

もう少し詳しくお伺いさせていただきたいのですが、
DATE_ADD はPostgreSQL環境でも使えましたでしょうか?

SC_Helper_Mail.phpのsfSendOrderMailメソッドを

$arrOrder = $objQuery->getRow('*,DATE_ADD(create_date,INTERVAL 7 DAY) as limitdate', 'dtb_order', $where, array($order_id));

に置き換え、
メールテンプレートファイルに

<!--{$arrOrder.limitdate}-->

を追記しましたが注文日に7日間を加えた日付は表示できませんでした。
この「$arrOrder.limitdate」をテンプレート側で表示するための何かしらの処理をPHPに追記する必要がございましたでしょうか?

ちなみにSC_Helper_Mail.phpのsfSendOrderMailメソッドを

$arrOrder = $objQuery->getRow('*,create_date + interval '7 day' as limitdate', 'dtb_order', $where, array($order_id));


に置き換えた場合はシンタックスエラーとなりPHP自体が動作しませんでした。
yuh
投稿日時: 2018/6/7 10:07
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1602
Re: 【2.13.5】注文日時の●日後の日時をメールに表示したい
$arrOrder = $objQuery->getRow("*,create_date + interval '7 day' as limitdate", 'dtb_order', $where, array($order_id));

これで試してください


----------------
商品点数100万件、0.1秒以下表示。
https://speedtest2.ec-lab.net/products/list.php?category_id=13
2系最速(自称)

ゲスト
投稿日時: 2018/6/7 11:44
対応状況: −−−
Re: 【2.13.5】注文日時の●日後の日時をメールに表示したい
ありがとうございます。
期待通りの結果を実現することができました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は49,519名です
総投稿数は93,190件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1967
4
468
1818
5
yuh
1602
6
red
1343
7
umebius
1296
8
fukap
907
9
h_tanaka
907
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
774
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

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