——————————————-
WordPress のバージョン:7.0.1
Welcart のバージョン:2.11.31
PHP のバージョン:8.2
ご利用の親テーマとバージョン :Lightning Pro 8.27.2
ご利用の子テーマとバージョン :lightning_pro_child 0.1.2
症状を確認したブラウザ:Chrome
サーバー【重要】:Xサーバー
——————————————–
いつもお世話になっております。
「購入個数の制限」欄を一度も保存していない商品について、以下のPHP Warningが表示される事象を確認しましたので、ご報告いたします。
【発生箇所】
classes/usceshop.class.php 5333行目
classes/usceshop.class.php 5450行目
includes/edit-form-advanced34.php 108行目
【再現条件】
「購入個数の制限」欄が未設定(postmetaが未作成)の商品を、カートに入れる(在庫チェック時)または商品編集画面を開く
上記いずれかを行うと、下記の警告が表示されます。
Warning: Undefined array key “itemRestriction” in …/usceshop.class.php on line 5450
【原因と考えられる箇所】
上記3箇所では、$product[‘itemRestriction’] を直接参照しています。
php$itemRestriction = $product[‘itemRestriction’];
一方、同ファイル内の他の箇所(2314行目、7170行目など)では、以下のように isset() によるチェックが行われており、キーが存在しない場合でも安全に処理されています。
php$itemRestriction = isset( $product[‘itemRestriction’] ) ? $product[‘itemRestriction’] : ”;
3箇所のみこのチェックが抜けているため、警告が発生していると考えられます。
【ご提案】
該当の3箇所についても、他の箇所と同様に isset() チェックを追加していただければ、警告は解消されるかと存じます。
php$itemRestriction = isset( $product[‘itemRestriction’] ) ? $product[‘itemRestriction’] : ”;
なお、現状は当方の子テーマ側で wel_get_product フィルターを用いて暫定対応しておりますが、本体側でのご対応をご検討いただけますと幸いです。
お手数をおかけしますが、ご確認のほどよろしくお願いいたします。