自動送信メールの本文の順序入れ替え
-
投稿者投稿
-
2015年2月4日 4:04 PM #73387not参加者
お世話になっております。
注文後の自動送信メールの、内容確認欄の表示順を入れ替えたいと思っています。
デフォルトでは
お客様情報 → 注文番号・日時 → 商品名 → 金額 → 配送先 → お支払方法 → その他
ですが、下記のように変更したいのです。【ご注文内容】
******************************************************
ご注文日時 2015-01-19 15:21:38
お支払方法 代金引換
お支払金額 10,064円——————————————————————
品番/品名 単価 数量 小計
——————————————————————
商品名 00円 1 00円
======================================
商品合計 0,000円送料 : ¥800
代引手数料 : ¥0
——————————————————————
お支払い金額 : ¥0,000
——————————————————————【ご注文者情報】
******************************************************
メールアドレス :
ご購入者 :
フリガナ :
郵便番号 :
住所 :
電話番号 :
FAX番号 :【配送先】
******************************************************
宛名 :
フリガナ :
郵便番号 :
住所 :
電話番号 :
FAX番号 :
配送方法 :
配送希望日 :
配送希望時間 :【お支払方法】
******************************************************
代金引換現在、中身を functions/function.php の usces_send_ordermail を参考にして
自作テーマの functions.php にadd_filter(‘usces_filter_send_order_mail_first’, ‘order_info’);
function order_info(){
global $usces;
$args = func_get_args();
$cart = $usces->cart->get_cart();
$entry = $usces->cart->get_entry();
$mail_data = $usces->options[‘mail_data’];
$msg_body .= __(‘Order number’,’usces’) . ” : ” . usces_get_deco_order_id( $order_id ) . “\r\n”;
$meisai .= __(‘Payment amount’,’usces’) . ” : ” . usces_crform( $entry[‘order’][‘total_full_price’], true, false, ‘return’ ) . “\r\n”;
$meisai .= usces_mail_line( 2, $entry[‘customer’][‘mailaddress1’] );//——————–
return $meisai;
}と記述し、合計金額を上に持って行くことだけはできました。
しかし、注文日時やお支払方法を上に移動させることが、どうしてもできません。プラグインのfunction.phpを書き換えると、アップデートの時に消えてしまうと思うのですが
それでもそれしか方法はありませんか?おかしな質問で申し訳ないのですが、何かヒントなどありましたら、ご教示ください。
——————————————-
WordPress のバージョン:WordPress 4.1
Welcart のバージョン:1.4.12.1412031
ご利用のテーマ:独自のテーマ
症状を確認したブラウザ:Google chrome
サーバー(会社名、サービス名):
SSLの利用: なし
WordPress のパーマリンク設定:カスタム構造
——————————————–2015年2月6日 1:10 PM #73418yskysmrキーマスターこんにちは。
仰るとおり、function.php を改変されることは、お勧めいたしておりません。
usces_filter_send_order_mail_first
は、メールの冒頭部分だけをカスタマイズできるフックです。メール本文全体を編集するには、usces_filter_send_order_mail_bodyall
をお使いください。2015年2月6日 3:51 PM #73433not参加者yskysmr 様
お返事ありがとうございます。実は、お恥ずかしながら、タイムリミットが来てしまいまして
完全に希望通りにはいかなかったのですが、打ち切らざるを得ませんでした。ご注文日時を上に移動することと、商品名・単価・数量をテーブル形式にすることは叶わなかったのですが、未完全な解決法がこちらです。
add_filter(‘usces_filter_send_order_mail_first’, ‘my_filter_send_order_mail_first’, 10, 6);
function my_filter_send_order_mail_first($meisai, $payment, $data, $cart, $entry, $order_id){
global $usces;
$args = func_get_args();
$cart = $usces->cart->get_cart();
$entry = $usces->cart->get_entry();
$mail_data = $usces->options[‘mail_data’];
$payment = $usces->getPayments( $entry[‘order’][‘payment_name’] );
$res = false;
$meisai .= “\r\n”;
$meisai .= __(‘お支払い方法’,’usces’) . ” : ” . $payment[‘name’] . usces_payment_detail($entry) . “\r\n\r\n”;
$meisai .= __(‘Payment amount’,’usces’) . ” : ” . usces_crform( $entry[‘order’][‘total_full_price’], true, false, ‘return’ ) . “\r\n”;
$meisai .= __(‘Order number’,’usces’) . ” : ” . usces_get_deco_order_id( $order_id ) . “\r\n”;
$meisai .= “\r\n”;
$meisai .= usces_mail_line( 3, $entry[‘customer’][‘mailaddress1’] );//====================
$meisai .= “\r\n”;
$meisai .= __(‘Items’,’usces’) . “\r\n”;
$meisai .= usces_mail_line( 2, $entry[‘customer’][‘mailaddress1’] );//——————–
foreach ( $cart as $cart_row ) {
$post_id = $cart_row[‘post_id’];
$sku = urldecode($cart_row[‘sku’]);
$quantity = $cart_row[‘quantity’];
$options = $cart_row[‘options’];
$itemCode = $usces->getItemCode($post_id);
$itemName = $usces->getItemName($post_id);
$cartItemName = $usces->getCartItemName($post_id, $sku);
$skuPrice = $cart_row[‘price’];
if (!empty($options)) {
// $optstr = implode(‘,’, $options);
} else {
$optstr = ”;
$options = array();
}
if( is_array($options) && count($options) > 0 ){
$optstr = ”;
foreach($options as $key => $value){
if( !empty($key) ) {
$key = urldecode($key);
if(is_array($value)) {
$c = ”;
$optstr .= $key. ‘ : ‘;
foreach($value as $v) {
$optstr .= $c.urldecode($v);
$c = ‘, ‘;
}
$optstr .= “\r\n”;
} else {
$optstr .= $key . ‘ : ‘ . urldecode($value) . “\r\n”;
}
}
}
}
$meisai .= “$cartItemName \r\n”;
$meisai .= usces_crform( $skuPrice, true, false, ‘return’ ) . __(‘ * ‘,’usces’) . $cart_row[‘quantity’] . “\r\n”;
$meisai .= usces_mail_line( 2, $entry[‘customer’][‘mailaddress1’] );//——————–
}
$meisai .= __(‘total items’,’usces’) . ” : ” . usces_crform( $entry[‘order’][‘total_items_price’], true, false, ‘return’ ) . “\r\n”;
$meisai .= usces_mail_line( 3, $entry[‘customer’][‘mailaddress1’] );//====================
$meisai .= __(‘Shipping’,’usces’) . ” : ” . usces_crform( $entry[‘order’][‘shipping_charge’], true, false, ‘return’ ) . “\r\n”;
if ( $payment[‘settlement’] == ‘COD’ )
$meisai .= apply_filters(‘usces_filter_cod_label’, __(‘COD fee’, ‘usces’)) . ” : ” . usces_crform( $entry[‘order’][‘cod_fee’], true, false, ‘return’ ) . “\r\n”;
if ( !empty($usces->options[‘tax_rate’]) )
$meisai .= __(‘consumption tax’,’usces’) . ” : ” . usces_crform( $entry[‘order’][‘tax’], true, false, ‘return’ ) . “\r\n”;
$meisai .= usces_mail_line( 3, $entry[‘customer’][‘mailaddress1’] );//====================
$meisai .= __(‘Payment amount’,’usces’) . ” : ” . usces_crform( $entry[‘order’][‘total_full_price’], true, false, ‘return’ ) . “\r\n”;
$meisai .= usces_mail_line( 3, $entry[‘customer’][‘mailaddress1’] );//====================
$meisai .= “\r\n\r\n” . __(‘【ご注文者情報】’,’usces’) . “\r\n”;
$meisai .= usces_mail_line( 1, $entry[‘customer’][‘mailaddress1’] );//********************
return $meisai;
}
add_filter(“usces_filter_apply_mail_addressform”, “my_filter_apply_mail_addressform”, 10, 4);
function my_filter_apply_mail_addressform($formtag, $type, $data, $order_id){
if($type === “order_mail_customer”){
$formtag .= “”;
}
return $formtag;
}
add_filter(“usces_filter_send_order_mail_meisai”, “my_filter_send_order_mail_meisai”, 10, 4);
function my_filter_send_order_mail_meisai($meisai, $data, $cart, $entry){
$msg_body .= usces_get_deco_order_id( ‘order_mail_customer’, $entry, $order_id );
$meisai = “”;
$meisai = “\r\n\r\n”;
return $meisai;
}
add_filter(“usces_filter_send_order_mail_shipping”, “my_filter_send_order_mail_shipping”, 10, 3);
function my_filter_send_order_mail_shipping($msg_shipping, $data, $entry){
$msg_body .= uesces_get_mail_addressform( ‘order_mail_customer’, $entry, $order_id );
$msg_shipping .= “”;
return $msg_shipping;
}他の方のトピックにあった、他の方の回答を使用させていただいております。
ごめんなさい。冒頭部分用のフックに詰め込む、という、恐らくかなり乱暴な方法にしました。
PHP初心者(それ以下かも)なので、かなり厳しかったです。
精進あるのみ、ですね。ありがとうございました。
お騒がせいたしました。- この返信は9年、 9ヶ月前にnotが編集しました。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。