投稿の際は下記の情報をお書き添えください。
-------------------------------------------
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)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------
フォーラムへの返信
-
投稿者投稿
-
hasu参加者
はい。そうです。
商品の欄の下にオプションがあった場合表示される場所です。
includes/order_edit_form.phpの中です。
欲をいうと返信時のメールに追記されるオプションの部分も
お客様に送る方は数字ではなく計算したサイズを表示、こちらは
サイズと数字を表示としたいのですが、オプション表示部分は
同じ文面を使っているみたいなので難しいでしょうか?
hasu参加者なるほど。わかりました。
今後の開発に期待しています。
hasu参加者マルチサイトについて調べてみましたら、管理特権の項目に言語選択があったようです。
そこを日本語に設定した後に子サイトで新規有効化したサイトは日本語で表示されました。
ただし、すでに作られてる英語表示だったサイトのwelcartを停止後有効化しても英語のままでした。
多分最初に英語でサイトを作成したのがいけなかったのでしょうか?
マルチサイトの挙動について詳しくないのでご迷惑をおかけしました。
hasu参加者親サイトでwelcartをインストール→子サイトで有効化にしています。
WPLANGはjaにしているのですがどうもconfig.phpのWPLANGは子サイトには反映されないようです。そのため、子サイトを作成時点ではwordpressは英語表記で、設定で日本語に直し、その後に子サイトでwelcartを有効化しました。
結果、他の部分の文字は日本語に翻訳されているのですが、支払い方法や都道府県など、selectタグでかかれている場所が英語のままのようです。
【追記】
調べてみたところinclude/install.phpでselectタグ関連のデータは作成されているようです。これは親サイトに最初にプラグインをインストールした時の言語で設定されて、後からは変更不可能ってことでしょうか?
hasu参加者受注データを投稿ユーザー毎に分離させるのに成功しました。
上記のコードを入力してauthor_idとauthor_nameを出力可能にしておきfunctionfunction.phpの
642行あたりにあるusces_reg_orderdataを
function usces_reg_orderdata( $results = array() ) {
global $wpdb, $usces;
// $wpdb->show_errors();
$carts = $usces->cart->get_cart();
$oeder_cart = array();
foreach($carts as $split_cart){
$oeder_cart[$split_cart['author_name']][] = $split_cart;
}
$entry = $usces->cart->get_entry();
foreach($oeder_cart as $cart){
if( empty($cart) )
return 0;
(省略。変更はありません)
$args = array('cart'=>$cart, 'entry'=>$entry, 'order_id'=>$order_id, 'member_id'=>$member['ID'], 'payments'=>$payments, 'charging_flag'=>$charging_flag);
do_action('usces_action_reg_orderdata', $args);
endif;
}
return $order_id;
}に変更したところ、受注データが二つに分けれました。
現在受注のメールもユーザー毎に割り振るための処理の修正も考えていますが、他にどこか修正しなくてはいけない場所等ありますでしょうか?
hasu参加者classes/cart.class.phpのkey_unserializeを以下のように変更してget_cart時にaoutor_idとaoutor_nameを出力するようにしてみました。
// key unserialize **************************************************************
function key_unserialize($serial){
global $wpdb;
$array = unserialize($serial);
$ids = array_keys($array);
$skus = array_keys($array[$ids[0]]);
$row['serial'] = $serial;
$row['post_id'] = $ids[0];
$row['sku'] = $skus[0];
$row['options'] = $array[$ids[0]][$skus[0]];
$row['price'] = $_SESSION['usces_cart'][$serial]['price'];
$row['quantity'] = $_SESSION['usces_cart'][$serial]['quant'];
$row['advance'] = isset($_SESSION['usces_cart'][$serial]['advance']) ? $_SESSION['usces_cart'][$serial]['advance'] : array();
$row['author_id'] = $wpdb->get_var("SELECT post_author FROM {$wpdb->posts} WHERE ID = {$row['post_id']}");
$row['author_name'] = $wpdb->get_var("SELECT user_nicename FROM {$wpdb->users} WHERE ID = {$row['author_id']}");
return $row;
}このIDを基準に、受注時のデータベースに書き込む段階で受注データを分けようかと思ったのですが、受注データの書き込みをしている場所がわかりませんでした。申し訳ありませんがどこか教えてもらえませんでしょうか?
hasu参加者おはようございます。
1受注に複数店舗からの商品があった場合はその店舗の商品のみ表示して、他店舗の商品は表示させないようにしたい予定です。送料手数料は、各店舗毎に発生し、イメージとしてはamazonのマーケットプレイスが近いでしょうか。受注の時点で違う店舗のデータがあった場合は別受注として登録させるようにカスタマイズした方が早いのでしょうか。
当初はマルチサイト機能を考えていたのですが、全ての店舗でカートをまとめて使いたい。のと、ポイントを全店舗共通にしたい。という理由で、一つのWELCARTでまとめた方がいいかなあと思っていました。
とりあえずorder_cartの中身を色々解析していくつか試してみたいと思います。
hasu参加者ご返答ありがとうございます。詳細フィルターはfilter_itemPageでしたか。
間違えてました。
また、パスワード保護ページへの対策追加ありがとう御座います。
hasu参加者すばやい対応ありがとうございます。
現DevelopmentVerでは上記の修正はされていないけど、追加しておけば次期Verでも互換が取れるということですよね?早速追加してみます。
hasu参加者送料は、オプションから送料を読み込んでいる
$charge = $this->options[$s_charge_index][$pref];
あたりにフックがあると助かります。個数別送料のことを考えるとforeach全部を囲んだ方がいいのかもしれませんが。
代引き手数料は、代引き手数料そのものの変更というよりは、代引きとは別の手数料を設定したいのでそのような設定ができると便利だなあと思いました(クール便+200円 お急ぎ便+300 Web割引き-100等を、カート確認時に出したい)
合計金額は、
$total_price = $total_items_price – $use_point + $discount + $shipping_charge + $cod_fee;
にフックがあると、合計金額に追加で増減があるとき助かります。
よろしくご検討お願いします。
hasu参加者素早い対応ありがとうございました。
早速試してみたいと思います。
-
投稿者投稿