suitchocolat

投稿の際は下記の情報をお書き添えください。
-------------------------------------------
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)
症状を確認したブラウザ:
サーバー【重要】:(会社名、サービス名)
--------------------------------------------

フォーラムへの返信

15件の投稿を表示中 - 1 - 15件目 (全26件中)
  • 投稿者
    投稿
  • suitchocolat
    参加者

    大変恐れ入りますが自己解決しました。
    YamatoNumber.class.php内の make_individual_cart( $cart_org )をカスタマイズしており、本番環境のみ、そのコードに誤りがありました。

    テスト環境

    	public function make_individual_cart( $cart_org ) {
    		
      		global $usces;
    		$opt_shipping_charges = $usces->options['shipping_charge'];//送料設定の配列を取得
    
    		$individual_cart = array();
    		$normal_cart = array();
    		$reizou_cart = array();
    		$reitou_cart = array();
    
    		foreach ( $cart_org as $org ) {
    			$is_individual = false;
    			$post_id = (int) $org['post_id'];
    			$quantity = (int) $org['quantity'];
    			$product = wel_get_product( $post_id );
    			$is_individual = $product['itemIndividualSCharge'];
    			if ( $is_individual ) {
    				$org['quantity'] = 1;
    				for ( $i = 0; $i < $quantity; $i++ ) {
    					$individual_cart[] = array( $org );
    				}
    			} else {
    				$normal_cart[] = $org;
    			}
    		}
    		if ( ! empty( $normal_cart ) ) {
    			foreach ( $normal_cart as $org){
    				$post_id = (int) $org['post_id'];
    				$product = wel_get_product( $post_id );
    				$item_shipping_charge_id = $product['itemShippingCharge'];
    				foreach($opt_shipping_charges as $opt_shipping_charge) {
        			if($item_shipping_charge_id == $opt_shipping_charge['id']) {
            			switch ( $opt_shipping_charge['name']){
    						case '宅急便コンパクト(常温)':
    							$reizou_cart[] = $org; 
    							break;
    						case 'クール便':
    							$reizou_cart[] = $org; 
    							break;
    						case '宅急便(常温)':
    							$reizou_cart[] = $org; 
    							break;
    						case 'クール便(冷凍)';
    							$reitou_cart[] = $org; 
    							break;
    						default:
    						}
            		break;
        			}
    				}
    			}
    		if ( ! empty( $reizou_cart ) ) {
    			$individual_cart[] = $reizou_cart;
    		}
    		if ( ! empty( $reitou_cart ) ) {
    			$individual_cart[] = $reitou_cart;
    		}
    		}
    		return $individual_cart;
    	}

    本番環境

    	public function make_individual_cart( $cart_org ) {
    		
      		global $usces;
    		$opt_shipping_charges = $usces->options['shipping_charge'];//送料設定の配列を取得
    
    		$individual_cart = array();
    		$normal_cart = array();
    
    		foreach ( $cart_org as $org ) {
    			$is_individual = false;
    			$post_id = (int) $org['post_id'];
    			$quantity = (int) $org['quantity'];
    			$product = wel_get_product( $post_id );
    			$is_individual = $product['itemIndividualSCharge'];
    			if ( $is_individual ) {
    				$org['quantity'] = 1;
    				for ( $i = 0; $i < $quantity; $i++ ) {
    					$individual_cart[] = array( $org );
    				}
    			} else {
    				$normal_cart[] = $org;
    			}
    		}
    		if ( ! empty( $normal_cart ) ) {
    			foreach ( $normal_cart as $org){
    				$post_id = (int) $org['post_id'];
    				$product = wel_get_product( $post_id );
    				$item_shipping_charge_id = $product['itemShippingCharge'];
    				foreach($opt_shipping_charges as $opt_shipping_charge) {
        			if($item_shipping_charge_id == $opt_shipping_charge['id']) {
            			switch ( $opt_shipping_charge['name']){
    						case '宅急便コンパクト(常温)':
    							$reizou_cart = array($org); 
    							break;
    						case 'クール便':
    							$reizou_cart = array($org); 
    							break;
    						case '宅急便(常温)':
    							$reizou_cart = array($org); 
    							break;
    						case 'クール便(冷凍)';
    							$reitou_cart = array($org); 
    							break;
    						default:
    						}
            		break;
        			}
    				}
    			}
    		if ( ! empty( $reizou_cart ) ) {
    			$individual_cart[] = $reizou_cart;
    		}
    		if ( ! empty( $reitou_cart ) ) {
    			$individual_cart[] = $reitou_cart;
    		}
    		}
    		return $individual_cart;
    	}
    
    

    当店では【常温】【冷蔵】【冷凍】の三温度帯の商品を扱っており、常温と冷蔵は同梱できるのですが、冷凍とその他の温度帯は同梱できず、伝票を2枚出力する必要があり、このようにカスタマイズしています。

    プラグインのコードを直接編集するのは避けるべきと重々承知しているのですが、ここにフィルターフックが無かったので…
    お騒がせして大変申し訳ありませんでした。
    誠にありがとうございました。

    suitchocolat
    参加者

    度々失礼いたします。
    調べを進めたところ、本番環境では$cartに入っている商品情報が1点のみになってしまっている事がわかりました。

    【調査方法】
    ※参考https://haniwaman.com/functions-value/
    ①下記を参照し、ワードプレスをデバックモードにしてエラーログを出力するように設定
    ②上記のカスタマイズコードを下記に変更し$cartの中身を調べた

    // WCEX Yamato NumberのCSV出力に発送区分反映
    function csm_wcynb2_filter_outcsv_data( $ldata, $order_id, $data, $cart ) {
    	ob_start();
    	var_dump( $cart );
    	$test = ob_get_contents();
    	ob_end_clean();
    	error_log( '処理前cart: ' . $test );
    	global $usces;
    -以下変更なし-
    

    【実行結果】
    テスト環境:

    [05-Jul-2024 05:32:52 UTC] 処理前cart: array(2) {
      [0]=>
      array(19) {
        ["cart_id"]=>
        string(5) "13451"
        ["order_id"]=>
        string(4) "8498"
        ["group_id"]=>
        string(1) "0"
        ["row_index"]=>
        string(1) "0"
        ["post_id"]=>
        string(5) "16794"
        ["item_code"]=>
        string(7) "lgs-001"
        ["item_name"]=>
        string(63) "商品A"
        ["cprice"]=>
        string(11) "20231106.00"
        ["sku_code"]=>
        string(9) "lgs-001-2"
        ["sku_name"]=>
        string(10) "2個入り"
        ["price"]=>
        string(6) "750.00"
        ["quantity"]=>
        string(1) "1"
        ["unit"]=>
        string(0) ""
        ["tax"]=>
        string(4) "0.00"
        ["destination_id"]=>
        string(1) "0"
        ["cart_serial"]=>
        string(0) ""
        ["sku"]=>
        string(9) "lgs-001-2"
        ["options"]=>
        array(0) {
        }
        ["advance"]=>
        array(0) {
        }
      }
      [1]=>
      array(19) {
        ["cart_id"]=>
        string(5) "13452"
        ["order_id"]=>
        string(4) "8498"
        ["group_id"]=>
        string(1) "0"
        ["row_index"]=>
        string(1) "1"
        ["post_id"]=>
        string(5) "15872"
        ["item_code"]=>
        string(7) "mon-012"
        ["item_name"]=>
        string(54) "商品B"
        ["cprice"]=>
        string(11) "20230515.00"
        ["sku_code"]=>
        string(7) "mon-012"
        ["sku_name"]=>
        string(0) ""
        ["price"]=>
        string(7) "2050.00"
        ["quantity"]=>
        string(1) "1"
        ["unit"]=>
        string(0) ""
        ["tax"]=>
        string(4) "0.00"
        ["destination_id"]=>
        string(1) "0"
        ["cart_serial"]=>
        string(0) ""
        ["sku"]=>
        string(7) "mon-012"
        ["options"]=>
        array(1) {
          ["お渡し用のお手提げ(無料)"]=>
          string(6) "不要"
        }
        ["advance"]=>
        array(0) {
        }
      }
    }
    
    

    本番環境

    [05-Jul-2024 05:32:55 UTC] 処理前cart: array(1) {
      [0]=>
      array(19) {
        ["cart_id"]=>
        string(5) "19057"
        ["order_id"]=>
        string(5) "11811"
        ["group_id"]=>
        string(1) "0"
        ["row_index"]=>
        string(1) "3"
        ["post_id"]=>
        string(5) "15872"
        ["item_code"]=>
        string(7) "mon-012"
        ["item_name"]=>
        string(54) "商品名B"
        ["cprice"]=>
        string(11) "20240419.00"
        ["sku_code"]=>
        string(7) "mon-012"
        ["sku_name"]=>
        string(0) ""
        ["price"]=>
        string(7) "2444.00"
        ["quantity"]=>
        string(1) "1"
        ["unit"]=>
        string(0) ""
        ["tax"]=>
        string(4) "0.00"
        ["destination_id"]=>
        string(1) "0"
        ["cart_serial"]=>
        string(0) ""
        ["sku"]=>
        string(7) "mon-012"
        ["options"]=>
        array(1) {
          ["お渡し用のお手提げYC"]=>
          string(6) "不要"
        }
        ["advance"]=>
        array(0) {
        }
      }
    }
    
    

    $cart内に複数の商品が入るようにするにはどうすればいいのでしょうか?
    何卒ご教示いただけますと幸いです。
    よろしくお願いいたします。

    suitchocolat
    参加者

    urushi様

    ご教示誠にありがとうございます。
    確認すべきvalue値ですが、添付画像のように検証ツールでoption valueの値を見る、であっていますでしょうか?
    option valueの値及び送料名は全て同一でした…
    他にも何か思いつく点があれば何卒よろしくお願いいたします。

    Attachments:
    You must be logged in to view attached files.
    suitchocolat
    参加者

    urushi様

    ご返信下さり誠にありがとうございます。

    送料名については、本番環境では10項目、テスト環境では8項目設定されており、本番環境の1~8項目目はテスト環境と同一です(テスト環境を本番環境から複製構築後、本番環境のみに送料設定を2つ追加しました)

    配送名についても同様で、本番環境では8項目、テスト環境では5項目設定されています。

    なお上記カスタマイズのコードに登場する送料名はいずれの環境にも同じ名前で設定されています。

    テスト環境にも本番環境に追加した設定を追加してみるべきでしょうか?

    suitchocolat
    参加者

    urushi様

    早速のお返事誠にありがとうございます。

    こちらのカスタマイズは、元々使用していたテーマ(ICONIC)に入っていたものではなく、外注で作成していただいたものですが、リニューアル前は問題なく動作していました。

    何卒よろしくお願いいたします。

    suitchocolat
    参加者

    お返事下さり誠にありがとうございます。
    >「カスタムフィールド項目の値の中にHTMLタグやセミコロンが入力されており」とのことですが、やはりこちらが原因ではないかと思われます。
    やはりここですよね…。エクセル以外のエディタでは開いたことがありませんでした。やってみます。
    誠にありがとうございます。

    suitchocolat
    参加者

    ikeda様

    早速お返事ありがとうございます。
    ・全項目CSVでは、列名に問題はありません
     が、カスタムフィールド列内の値を見ると、ショートコードや商品説明の一部がメタキーとして入力されているケースがあります。(;;ショートコード;;のように)
    ・カスタムフィールドのプラグインは使用していません

    昨日投稿の後調べを進めたのですが、
    「WP CSV Exporter」という別のプラグインから投稿データ全体を出力しようとすると、
    出力するカスタムフィールド項目を選択する画面で、やはり項目名に値が入ってきていました。

    昨日phpbyAdminからデータベース内のpost_metaの不要なデータを削除しひとまず正常なcsv出力を得られるようにはなりました。今後再発した際にどのような条件で再発するか調べてみますが、ご助言をいただけますと嬉しいです。

    返信先: ネットショップの不正使用について #101785
    suitchocolat
    参加者

    ご回答ありがとうございます。
    特になにもしていないのですがresponse_OKになりましたので引き続き様子を見てみます…

    返信先: ネットショップの不正使用について #101782
    suitchocolat
    参加者

    早々にお返事下さり、誠にありがとうございます。
    ②について、GooglereCAPTCHAのステータスはresponse_ERRORとなっていました。恐れ入りますが、改善の方法をご教授いただけないでしょうか?
    何卒よろしくお願いいたします。

    返信先: ネットショップの不正使用について #101769
    suitchocolat
    参加者

    度々失礼致します。
    本件、先日ソニーペイメントサービス様にご報告したのですが、本日再度攻撃を受けているとご連絡いただき、決済サービスの一時停止を提案されています。極力回避したく、設定面で防げる可能性はないか改めてお尋ねしたく思います。
    なお、Welcartバージョンは2.10.1、
    GooglereCAPTCHA、クレジットカードセキュリティ対策は設定済みです

    ■発生事象
    4/13よりトークン処理件数の異常値を検知

    4/13  19657件
    4/14  19321件
    4/15  5000件以上(現時点)

    ■ご質問
    ①最新バージョン2.10.1にて今回の攻撃が防げないのは想定の範囲内か
    ②Google reCAPTCHAにて今回の攻撃が防げないのは想定の範囲内か
    ③Welcart拡張機能のクレジットカードセキュリティ対策にて今回の攻撃が防げないのは想定の範囲内か、設定の値(カウント時間等)を変更すれば防げる可能性はあるか

    何卒ご回答よろしくお願いいたします。

    返信先: ネットショップの不正使用について #101703
    suitchocolat
    参加者

    ご返信が遅くなり申し訳ありません。
    ご確認、ご教授誠にありがとうございます。
    ご指示いただいた内容を順次進めてまいります。
    引き続き何卒よろしくお願いいたします。

    返信先: Welcart Reportsの認証コード取得について #99304
    suitchocolat
    参加者

    ikeda様

    ご対応、ご連絡誠にありがとうございます。
    マニュアルを拝見して設定ができました。

    一点ご質問なのですが、現在私のGoogleアカウントではユニバーサルアナリティクスのプロパティとGA4プロパティを両方取得しているのですが、
    ビューIDの選択肢として表示されるのはユニバーサルアナリティクスのプロパティのみでした。
    今後ユニバーサルアナリティクスは計測停止しGA4に移行するかと思いますが、
    こちら対応のご予定はあるのでしょうか?

    お手すきの際にご回答いただけますと幸いです。
    何卒よろしくお願いいたします。

    返信先: WCEX Yamato Numberの品名受け渡しについて #98884
    suitchocolat
    参加者

    ikeda様

    お返事下さり誠にありがとうございます。
    全角で受け渡される点について、ご修正いただけるとの事嬉しいです。
    他の点も承知いたしました。引き続き何卒よろしくお願いいたします。

    返信先: Welcart Reportsの認証コード取得について #98831
    suitchocolat
    参加者

    furuta様

    迅速なご回答誠にありがとうございます。
    お忙しいところ恐縮ですが、ご対応をお待ちしています。

    suitchocolat
    参加者

    早速丁寧なお返事をありがとうございました。
    安心しました。引き続き利用させていただきます。
    何卒よろしくお願いいたします。

15件の投稿を表示中 - 1 - 15件目 (全26件中)