WooCommerceというEコマース系のプラグインをインストールしたのですが、動きません。
http://www.youtube.com/watch?v=x_Mt0lMNGGA
作業は、こちらの動画↑と全く一緒な事をしているのですが、1:05あたりのInstall WooCommerce Pages をクリックするとエラーがでます。
エラーメッセージは
Fatal error: Call to undefined method stdClass::add_help_tab() in /home/users/1/ロリポップサーバー番号/web/wp-content/plugins/woocommerce/admin/woocommerce-admin-content.php on line 18
(〜.php の18列目がオカシイらしいです...)
ロリポップサーバーのプランは『ロリポプラン』を使用しています。
サービス比較:http://lolipop.jp/service/about/
どうしたら正常に動いてくれるのでしょう。
分かる方いらっしゃいますでしょうか?
コメント(6件)
こちらはWordPress 3.4.1 + WooCommerce 1.6.1で、その手順の箇所は問題なく動作しました。
使用していないのでその他の動作に関しては分かりませんが。
管理メニューの「WooCommerce」→「Settings」からアクセスした場合はどうなりますか?
上記の操作でも、「Install WooCommerce Pages」を実行した場合と同じページが表示されます。
※プラグイン有効化直後で、「WooCommerce」メニューが表示されていない場合は、管理画面を再読み込みしてください。
私の方も同じく WP 3.4.1 WooCommerce 1.6.1 でした。
「WooCommerce」→「Settings」の場合、上記と同じエラーメッセージが表示されます。
私はロリポップを使用していますが、サーバーは何を使用しているか教えて頂けますか?
今のところ、サーバーしか原因が思い浮かびません。
エラーが出る「wp-content/plugins/woocommerce/admin/woocommerce-admin-content.php」の18行目の前で、次のようにして$screenを出力して確認してみてください。
$screen = get_current_screen();
var_dump($screen); // この行を追加
$screen->add_help_tab( array(
$screenにはWP_Screenオブジェクトが入りますが、このクラスにadd_help_tab()メソッドがない為に発生しているエラーです。
何が入っているか確認してみてください。
次のように表示された内容をコピーして教えてください。
object(WP_Screen)#**** (15) {
["action"]=>
string(0) ""
["base"]=>
string(25) "toplevel_page_woocommerce"
["columns":"WP_Screen":private]=>
int(0)
["id"]=>
string(25) "toplevel_page_woocommerce"
(~ 略 ~)
}
get_current_screen()は、管理画面のほとんどのページで使用されていますが、他の管理画面は正常に表示されていて、WooCommerceだけ表示エラーになるのですよね?
いろいろカスタマイズしているのでしょうか?
問題の切り分けの為に、プラグインの停止とカスタマイズしていないデフォルトテーマへの変更を、それぞれ別々に実行して確認してみてください。
それから、WordPressは新規にインストールしたものでしょうか?
もし上書きアップグレードでしたら、別のフォルダへの新規インストールを試してみてください。
まず、WPは新規でインストールし、カスタマイズはしておりません。
今月はじめたばかりの初心者ですので、rouge_2008 さんのおっしゃった事は正直分からない事だらけです(汗)
ロリポップのお試し期間が切れましたので、契約はせずに、他のサーバーで また試してみる予定です。
分からない点
・ローカル環境での動かし方
・コードを書き換える場所、方法
WindowsだけでなくMac用もあります。
使い方は検索するとたくさん出てきますので、まず実行してみて、分からない事があったら質問するといいです。
「XAMPP」
http://www.apachefriends.org/jp/xampp.html
エラーメッセージが『Call to undefined method stdClass::add_help_tab() in ~/wp-content/plugins/woocommerce/admin/woocommerce-admin-content.php on line 18』なので、$screenにはstdClassのオブジェクトが入っていたのではないかと思いますが、なぜここにstdClassオブジェクトが入っているのかが分かりません。
管理画面の他のページは表示されているようですし、通常はWooCommerceでもWP_Screenのオブジェクトが入って、正しくページが表示されます。
何もカスタマイズしていないという事ですので、本当に不思議な現象が起きた事になります。
コードを書き換える場所は上でコメントした通り、「wp-content/plugins/woocommerce/admin/woocommerce-admin-content.php」の18行目の前です。
テキストエディタで開いて、元からある2行の間に 「// この行を追加」とした行を追加して保存し、編集したファイルをFTPソフトで上書きアップロードします。
※表示確認の為ですので、確認が終了したら元に戻してください。