JunichiK
投稿の際は下記の情報をお書き添えください。
-------------------------------------------
WordPress のバージョン:(例 6.0.2)
Welcart のバージョン:(例 2.8.1)
PHP のバージョン:(例 8.0)
Welcart専用の拡張プラグインとバージョン:(例 DL Seller 3.4.1、SKU Select 1.4.2)
ご利用の親テーマとバージョン :(例 Welcart Basic 1.7.1)
ご利用の子テーマとバージョン :(例 Welcart Beldad 1.4)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
2019年12月12日 11:36 AM 返信先: 他テーマ(Cocoon)においてメンバーページ(usces-member)のみナビゲーションメニューの表示がすべて「会員ログイン」になる #88973JunichiK参加者
>こちらの環境では、aタグの中に他のタグはありません。
なるほど、ありがとうございます。
>welcartを1.9.22に戻した場合は正常でした。
過去バージョンはどこかでダウンロード可能でしょうか?
よろしくお願いいたします。
2019年12月12日 9:11 AM 返信先: 他テーマ(Cocoon)においてメンバーページ(usces-member)のみナビゲーションメニューの表示がすべて「会員ログイン」になる #88968JunichiK参加者デフォルトテーマなどで検証しますと、ナビゲーションラベルがaタグ直下に文字列のテーマだと大丈夫なようです。
<li><a href="#">ラベル</a></li> → OK <li><a href="#"><div class="hoge">ラベル</div></a></li> → NG
当方で使用のテーマのナビゲーションメニューは、aタグの中にdivタグで囲った文字列なので、今回の現象が起きているような気がします。
- この返信は4年、 11ヶ月前にJunichiKが編集しました。
JunichiK参加者yskysmr様
すみません、報告が遅くなってしまい、申し訳ありません。
みずほファクターから、お客様がカード会社から拒否されているエラーであり、システム上の問題ではないと連絡がございました。
早々にご返信いただき、誠にありがとうございます。また、お手数おかけしまして申し訳ありませんでした。JunichiK参加者naubu様、ありがとうございます。
SKUは1つしか使用しないのですが、試行錯誤してみましたが、私のスキルではプライスの取得方法が分からないです。
これは諦めるしかなさそうです。JunichiK参加者naubu様、分かりました。
他のプラグインとの兼ね合いもありますので、タイミングをみてWordpress本体をアップグレードし、Welcartをアップグレードいたします。JunichiK参加者当方が使用しているWordPressのバージョンは3.9.3で、Welcartのバージョンは1.4.12です。
対応バージョンページでは「WordPress3.9 以降をご利用の場合 Welcart は 1.3.14 以降が必要です。」とあり、それを守っています。
にも関わらず、プレビューが正常に動作しないというのは、どうしてなんでしょう?最初は3.9.3と1.4.12の組み合わせでもも正常に動作していたような気もします。
逆に言えば、WordPress3.9.3に対応するWelcartのバージョンは無いということでしょうか?JunichiK参加者nanbu様、ありがとうございます。
しかし、当方で使用しているWordPressバージョン3.9.3では、ダッシュボードにもプラグイン画面にも更新通知が出ておりません。
WordPress 3.9.3では、Welcart 1.4.13は非対応でしょうか?
3系と4系はかなり違ったものになっているという情報もあり、他のプラグインとの相性もあるので、しばらくは3.9.3でいきたいのですが…。
何卒よろしくお願いいたします。JunichiK参加者yskysmr様、お忙しいところ、ご返信ありがとうございます。
本番環境でテストしながら、もう少し原因を探ってみます。
ありがとうございました。JunichiK参加者nglife様、最後の最後にありがとうございます!
正規表現は難解で、私が理解するには時間がかかりそうですが、とりあえずコピーさせていただいて、うまくいきました。
このトピックの中盤あたりから紆余曲折あり、解決していないこともありますが、とりあえず及第点には届いたと思います。
ありがとうございました。JunichiK参加者yskysmr様、ありがとうございます。
お騒がせいたしましたが、テスト環境のほうは、テスト環境用のカード番号を使っていなかったことが原因でした。
テスト環境で正常にテストした後、本番環境でも正常に完了いたしました。
本番環境が何度もうまくいかなかった理由は分からないのですが、もしかすると、テスト環境で行った後でないと本番環境が使えないような仕組みなのでしょうか?JunichiK参加者nglife様、本当にありがとうございます。
何度も無理申しましてすみません。この前にご回答いただいたコードから、preg_replace()関数を使用するのか…と思っていたところでしたので、スッキリいたしました。
もし、可能なら、もう1つだけお付き合いいただけないでしょうか。
ご教示いただいたコードを参考に試行錯誤しておりますが、うまくいかない箇所が一つありまして…。無理なら諦めます。
単価の後の数量( × 1)を消したいのです。
function.phpにある元のコードは下記ですが、消したい要素に’$cart_row[‘quantity’] . “\r\n”‘というふうに変数が絡んでいるので、うまくいきません。
$meisai .= __('Unit price','usces') . " ".usces_crform( $skuPrice, true, false, 'return' ) . __(' * ','usces') . $cart_row['quantity'] . "\r\n";
preg_replace()で $cart_row[‘quantity’] を置換する方法を教えていただければ助かります。すみません、よろしくお願い致します。
- この返信は9年、 9ヶ月前にJunichiKが編集しました。
JunichiK参加者nglife様、ありがとうございます。
おかげ様で、概ね、うまくいきました。
ただ、$msg_bodyの内容を変更したい箇所が数ヶ所ございまして、それらをどうすべきか悩んでおります。下記箇所等になります。
$msg_body = "\r\n\r\n\r\n" . __('** content of ordered items **','usces') . "\r\n";
上記は【ご注文内容】と表示されるところですが、これを【お支払内容】に変更したいのです。
また、注文番号→お支払い番号、注文日時→お支払い日時、商品→ご請求内容、単価→金額、商品合計→合計金額・・・としたいのですが、可能でしょうか?何卒よろしくお願いいたします。
JunichiK参加者nanbu様、ありがとうございます。
仰せの通り、’usces_filter_send_order_mail_shipping’で配送方法を取り除くことは出来ました。
金額欄の送料を取るのは難しいということですが、
$msg_body .= uesces_get_mail_addressform( 'order_mail_customer', $entry, $order_id );
で取得している住所や電話番号・FAX番号を取り除くことも難しいでしょうか?
部分的に取るのが難しいようでしたら、メールアドレスや名前も含めて取り除いてもかまいません。
ただ、注文番号と注文日時は活かしたいのですが、そのようなことは難しいでしょうか?何卒よろしくお願いいたします。
JunichiK参加者いつもお世話になります。
希望するサンキューメール本文は下記の通りです。
ここから——————–
【ご注文内容】
******************************************************
注文番号 : 00001234
注文日時 : 2015-01-26 00:24:41
商品 :
——————————————————————
(商品名) (商品コード)
単価 ¥10,000 × 1
=============================================
商品合計 : ¥10,000
代引手数料 : ¥0
——————————————————————
お支払い金額 : ¥10,000
——————————————————————
(通貨 : 円)【お支払方法】
******************************************************
代金引換【その他】
******************************************************
——————–ここまで上記の件につきまして、plugins/usc-e-shop/functionsのfunction.phpを下記のようにコメントアウトしますと、希望通りのサンキューメールになります(コメントアウト部分は///でマークしております)。
function usces_send_ordermail($order_id) { global $usces, $wpdb; $tableName = $wpdb->prefix . "usces_order"; $query = $wpdb->prepare("SELECT * FROM $tableName WHERE ID = %d", $order_id); $data = $wpdb->get_row( $query, ARRAY_A ); $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; $msg_body = "\r\n\r\n\r\n" . __('** content of ordered items **','usces') . "\r\n"; $msg_body .= usces_mail_line( 1, $entry['customer']['mailaddress1'] );//******************** $msg_body .= apply_filters('usces_filter_send_order_mail_first', NULL, $data); /// $msg_body .= uesces_get_mail_addressform( 'order_mail_customer', $entry, $order_id ); $msg_body .= __('Order number','usces') . "\t: " . usces_get_deco_order_id( $order_id ) . "\r\n"; $msg_body .= __( 'order date','usces' ) . "\t: " . $data['order_date'] . "\r\n"; $meisai = __('Items','usces') . "\t\t: \r\n"; 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']; // $pictids = $usces->get_pictids($itemCode); if (!empty($options)) { // $optstr = implode(',', $options); } else { $optstr = ''; $options = array(); } $meisai .= usces_mail_line( 2, $entry['customer']['mailaddress1'] );//-------------------- $meisai .= "$cartItemName \r\n"; 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 .= apply_filters( 'usces_filter_option_ordermail', $optstr, $options); } $meisai .= __('Unit price','usces') . " ".usces_crform( $skuPrice, true, false, 'return' ) . __(' * ','usces') . $cart_row['quantity'] . "\r\n"; } $meisai .= usces_mail_line( 3, $entry['customer']['mailaddress1'] );//==================== $meisai .= __('total items','usces') . "\t: " . usces_crform( $entry['order']['total_items_price'], true, false, 'return' ) . "\r\n"; if ( $entry['order']['discount'] != 0 ) $meisai .= apply_filters('usces_confirm_discount_label', __('Campaign disnount', 'usces'), $order_id) . " : " . usces_crform( $entry['order']['discount'], true, false, 'return' ) . "\r\n"; if ( 0.00 < (float)$entry['order']['tax'] && 'products' == usces_get_tax_target() ) $meisai .= usces_tax_label($data, 'return') . "\t: " . usces_crform( $entry['order']['tax'], true, false, 'return' ) . "\r\n"; /// $meisai .= "\r\n" . __('Shipping','usces') . "\t\t: " . 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')) . "\t: " . usces_crform( $entry['order']['cod_fee'], true, false, 'return' ) . "\r\n"; if ( 0.00 < (float)$entry['order']['tax'] && 'all' == usces_get_tax_target() ) $meisai .= usces_tax_label($data, 'return') . "\t: " . usces_crform( $entry['order']['tax'], true, false, 'return' ) . "\r\n"; if ( $entry['order']['usedpoint'] != 0 ) $meisai .= __('use of points','usces') . " : " . number_format($entry['order']['usedpoint']) . __('Points','usces') . "\r\n"; $meisai .= usces_mail_line( 2, $entry['customer']['mailaddress1'] );//-------------------- $meisai .= __('Payment amount','usces') . " : " . usces_crform( $entry['order']['total_full_price'], true, false, 'return' ) . "\r\n"; $meisai .= usces_mail_line( 2, $entry['customer']['mailaddress1'] );//-------------------- $meisai .= "(" . __('Currency', 'usces') . ' : ' . __(usces_crcode( 'return' ), 'usces') . ")\r\n\r\n"; $msg_body .= apply_filters('usces_filter_send_order_mail_meisai', $meisai, $data, $cart, $entry); /// $msg_shipping = __('** A shipping address **','usces') . "\r\n"; /// $msg_shipping .= usces_mail_line( 1, $entry['customer']['mailaddress1'] );//******************** /// $msg_shipping .= uesces_get_mail_addressform( 'order_mail', $entry, $order_id ); /// $deli_meth = (int)$entry['order']['delivery_method']; /// if( 0 <= $deli_meth ){ /// $deli_index = $usces->get_delivery_method_index($deli_meth); /// if( 0 <= $deli_index ) $msg_shipping .= __('Delivery Method','usces') . "\t: " . $usces->options['delivery_method'][$deli_index]['name'] . "\r\n"; /// } /// $msg_shipping .= __('Delivery date','usces') . " : " . $entry['order']['delivery_date'] . "\r\n"; /// $msg_shipping .= __('Delivery Time','usces') . " : " . $entry['order']['delivery_time'] . "\r\n"; /// $msg_shipping .= "\r\n"; /// $msg_body .= apply_filters('usces_filter_send_order_mail_shipping', $msg_shipping, $data, $entry ); $msg_payment = __('** Payment method **','usces') . "\r\n"; $msg_payment .= usces_mail_line( 1, $entry['customer']['mailaddress1'] );//******************** $msg_payment .= $payment['name'] . usces_payment_detail($entry) . "\r\n\r\n"; if ( $payment['settlement'] == 'transferAdvance' || $payment['settlement'] == 'transferDeferred' ) { $transferee = __('Transfer','usces') . " : \r\n"; $transferee .= $usces->options['transferee'] . "\r\n"; $msg_payment .= apply_filters('usces_filter_mail_transferee', $transferee, $payment); $msg_payment .= "\r\n".usces_mail_line( 2, $entry['customer']['mailaddress1'] )."\r\n";//-------------------- } elseif($payment['settlement'] == 'acting_jpayment_conv') { $args = maybe_unserialize($usces->get_order_meta_value($payment['settlement'], $order_id)); $msg_payment .= __('決済番号', 'usces').' : '.$args['gid']."\r\n"; $msg_payment .= __('決済金額', 'usces').' : '.number_format($args['ta']).__('dollars','usces')."\r\n"; $msg_payment .= __('お支払先', 'usces').' : '.usces_get_conv_name($args['cv'])."\r\n"; $msg_payment .= __('コンビニ受付番号','usces').' : '.$args['no']."\r\n"; if($args['cv'] != '030') {//ファミリーマート以外 $msg_payment .= __('コンビニ受付番号情報URL', 'usces').' : '.$args['cu']."\r\n"; } $msg_payment .= "\r\n".usces_mail_line( 2, $entry['customer']['mailaddress1'] )."\r\n";//-------------------- } elseif($payment['settlement'] == 'acting_jpayment_bank') { $args = maybe_unserialize($usces->get_order_meta_value($payment['settlement'], $order_id)); $msg_payment .= __('決済番号', 'usces').' : '.$args['gid']."\r\n"; $msg_payment .= __('決済金額', 'usces').' : '.number_format($args['ta']).__('dollars','usces')."\r\n"; $bank = explode('.', $args['bank']); $msg_payment .= __('銀行コード','usces').' : '.$bank[0]."\r\n"; $msg_payment .= __('銀行名','usces').' : '.$bank[1]."\r\n"; $msg_payment .= __('支店コード','usces').' : '.$bank[2]."\r\n"; $msg_payment .= __('支店名','usces').' : '.$bank[3]."\r\n"; $msg_payment .= __('口座種別','usces').' : '.$bank[4]."\r\n"; $msg_payment .= __('口座番号','usces').' : '.$bank[5]."\r\n"; $msg_payment .= __('口座名義','usces').' : '.$bank[6]."\r\n"; $msg_payment .= __('支払期限','usces').' : '.substr($args['exp'], 0, 4).'年'.substr($args['exp'], 4, 2).'月'.substr($args['exp'], 6, 2)."日\r\n"; $msg_payment .= "\r\n".usces_mail_line( 2, $entry['customer']['mailaddress1'] )."\r\n";//-------------------- } $msg_body .= apply_filters('usces_filter_send_order_mail_payment', $msg_payment, $order_id, $payment, $cart, $entry, $data); $msg_body .= usces_mail_custom_field_info( 'order', '', $order_id ); $msg_body .= "\r\n"; $msg_body .= __('** Others / a demand **','usces') . "\r\n"; $msg_body .= usces_mail_line( 1, $entry['customer']['mailaddress1'] );//******************** $msg_body .= $entry['order']['note'] . "\r\n\r\n";
しかし、これを、テーマの functions.php にて ‘usces_filter_send_order_mail_bodyall’ フックを使って行うと、注文番号と注文日時が取得出来なくて困っております。
関数の引数に$dataを入れたり、
$msg_body .= __('Order number','usces') . "\t: " . usces_get_deco_order_id( $order_id ) . "\r\n";
の $order_id を $data に変更してみたりしましたが、思うようにいきませんでした。
何かヒントだけでも良いので、ご教示願います。
よろしくお願いいたします。JunichiK参加者試行錯誤しておりますが、サンキューメールのカスタマイズが思うようにいきません。
フックの使い方が不慣れのせいもあり、なかなかうまくいきません。ヒントをお願いいたします。
希望しているのは、送料や配送先などの情報は不要で、下記の内容のみを取得したいのです。ご注文内容(メールアドレス、名前、注文日時)
商品明細(商品コード、商品名、単価)
合計金額
支払い方法
その他$msg_bodyには、’usces_filter_send_order_mail_bodyall’フック以外にも多数のフックが絡んでいるようで、それらをどのようにしてよいのか分からなくなっております。
何卒ご教示のほどよろしくお願いいたします。 -
投稿者投稿