バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2018/6/7 11:44
対応状況: −−−
Re: 【2.13.5】注文日時の●日後の日時をメールに表示したい
ありがとうございます。
期待通りの結果を実現することができました。
yuh
投稿日時: 2018/6/7 10:07
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: 【2.13.5】注文日時の●日後の日時をメールに表示したい
$arrOrder = $objQuery->getRow("*,create_date + interval '7 day' as limitdate", 'dtb_order', $where, array($order_id));

これで試してください


----------------


http://ec-lab.net/

ゲスト
投稿日時: 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/6 14:48
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
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));

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


----------------


http://ec-lab.net/

ゲスト
投稿日時: 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
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,288名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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