###現在直面している問題
以前Terateilにて質問しました、Woocommerceのチェックアウトページにデフォルトで表示される"Ship to a different address?"を非表示にしたく、functions.phpの最後に以下のようなプラグラムを追加しました。
php
1function unset_different_shipping_address(){ 2 if (wc_商品1_is_in_the_cart()) { 3 add_filter( 'woocommerce_cart_needs_shipping_address', '__return_false'); 4 } 5} 6add_action( 'init', 'unset_different_shipping_address', 99 );
すると、サイト上では実行したいように動作したのですが、Wordpress管理画面に入ろうとすると、500エラーが表示されました。
エラー内容
wp-config.php内の
define('WP_DEBUG', false);
を false から true にしてデバッグモードにし、エラー内容を確認したところ以下のような警告が表示されました。
"Notice: get_cart was called incorrectly. Get cart should not be called before the wp_loaded action. Please see Debugging in WordPress for more information. (This message was added in version 2.3.) in .../wp-includes/functions.php on line 4161"
/wp-includes/functions.phpの4161行目あたりは、以下の通りです。
function is_lighttpd_before_150() { $server_parts = explode( '/', isset( $_SERVER['SERVER_SOFTWARE'] )? $_SERVER['SERVER_SOFTWARE'] : '' ); $server_parts[1] = isset( $server_parts[1] )? $server_parts[1] : ''; return 'lighttpd' == $server_parts[0] && -1 == version_compare( $server_parts[1], '1.5.0' );
やってみたこと
実行順でinit、wp_loadedより後の他のアクションフック(_admin_menuなど)を使用すると、管理画面で500エラーになる上に、実行したかったことも反映されません。
また、以下の一行を無効にすると、実行したかったことは反映されませんが問題なく管理画面にアクセスでき、500エラーも表示されません。
add_action( 'init', 'unset_different_shipping_address', 99 );
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/05 08:05
2018/10/05 08:25 編集
2018/10/05 08:49
2018/10/07 07:38