welcart Cannot use object of type WP_Error as array ログインできない?!
ワードプレスにログインしようとしたら、Cannot use object of type WP_Error as array
って、何?!さっきまで動いてたぞ!
よく見ると、Cannot use object of type WP_Error as array
要するに、ワードプレスは、そのタイプを求めてない!処理できないから落ちる!
ってことらしい。
さらに見ると plugins/usc-e-shop と言う文字が。
お? welcart のどこかで落ちてるね?
で、見つけた。
Cannot use object of type WP_Error as array のエラーメッセージの中に usc-e-shop が見つかっていきなり落ちたんなら、たぶん原因は、ここ。
メッセージの最後に in xxx ってエラーを出した行番号がでてないですか?
50~60行目当たりなら、いい感じ♪
で、エラーメッセージの中に update_check.php って文字見えない?
え?!見える?! おお!ますます解決できそうですね。
plugins/usc-e-shop/includes/update_check.php なら大当たり。
update_check.php の該当する行を調べてみるとこんなステートメントじゃない?
$wcproducts = (array)json_decode($response[‘body’]);
なに?!ほんとか、この行か!
おめでとーございまーす。解決できまーす。
原因は、その一つ上の行をみてください。
こんなステートメントが入ってますよね?
$response = wp_remote_post( USCES_UPDATE_INFO_URL.’/update_info/info_api.php’, $options );
これ、バージョンアップ検査した結果を返してるんです。
バージョンアップ検査は、WELCARTのサイト。
そこが落ちてるとバージョンアップ情報の仮想配列ではなく WP_Error が返ってきます。
要するに仮想配列を求めてるのに、なにしてくれてんじゃー!ってことで
$wcproducts = (array)json_decode($response[‘body’]);
の行で落とされちゃってるんです。
要するに配列じゃないから落ちてるわけなので、戻ってきたものが配列かどうかしらべてあげて、配列じゃなければ、今日は更新するのやめましょうってことにすればいいわけです。
このように修正します。
黄色い部分が追加したステートメント。
サイトがいつでも生きているって前提で書かれたプログラム。。。
いや、ありえんなとか思いながら修正しました。
あなたの一助になれば幸いです。
って、何?!さっきまで動いてたぞ!
よく見ると、Cannot use object of type WP_Error as array
要するに、ワードプレスは、そのタイプを求めてない!処理できないから落ちる!
ってことらしい。
さらに見ると plugins/usc-e-shop と言う文字が。
お? welcart のどこかで落ちてるね?
で、見つけた。
Cannot use object of type WP_Error as arrayの原因
Cannot use object of type WP_Error as array のエラーメッセージの中に usc-e-shop が見つかっていきなり落ちたんなら、たぶん原因は、ここ。
メッセージの最後に in xxx ってエラーを出した行番号がでてないですか?
50~60行目当たりなら、いい感じ♪
で、エラーメッセージの中に update_check.php って文字見えない?
え?!見える?! おお!ますます解決できそうですね。
plugins/usc-e-shop/includes/update_check.php なら大当たり。
update_check.php の該当する行を調べてみるとこんなステートメントじゃない?
$wcproducts = (array)json_decode($response[‘body’]);
なに?!ほんとか、この行か!
おめでとーございまーす。解決できまーす。
原因は、その一つ上の行をみてください。
こんなステートメントが入ってますよね?
$response = wp_remote_post( USCES_UPDATE_INFO_URL.’/update_info/info_api.php’, $options );
これ、バージョンアップ検査した結果を返してるんです。
バージョンアップ検査は、WELCARTのサイト。
そこが落ちてるとバージョンアップ情報の仮想配列ではなく WP_Error が返ってきます。
要するに仮想配列を求めてるのに、なにしてくれてんじゃー!ってことで
$wcproducts = (array)json_decode($response[‘body’]);
の行で落とされちゃってるんです。
Cannot use object of type WP_Error as arrayの対策
要するに配列じゃないから落ちてるわけなので、戻ってきたものが配列かどうかしらべてあげて、配列じゃなければ、今日は更新するのやめましょうってことにすればいいわけです。
このように修正します。
$response = wp_remote_post( USCES_UPDATE_INFO_URL.′/update_info/info_api.php′, $options );
if(!is_array($response)){
return;
}
$wcproducts = (array)json_decode($response[′body′]);return;
}
黄色い部分が追加したステートメント。
Cannot use object of type WP_Error as array まとめ
サイトがいつでも生きているって前提で書かれたプログラム。。。
いや、ありえんなとか思いながら修正しました。
あなたの一助になれば幸いです。