自動送信メールの本文の順序入れ替え
- 
		投稿者投稿
- 
		
			
				
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 #73418 yskysmrキーマスター yskysmrキーマスターこんにちは。 仰るとおり、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初心者(それ以下かも)なので、かなり厳しかったです。 
 精進あるのみ、ですね。ありがとうございました。 
 お騒がせいたしました。- 
		この返信は10年、 8ヶ月前にnotが編集しました。 
 
- 
		この返信は10年、 8ヶ月前に
- 
		投稿者投稿
- このトピックに返信するにはログインが必要です。
 PAGE TOP
PAGE TOP