2017-08-03 1 views
0

Im WordPress 4.8、Woocommerce 3.1.1、WooCommerce Subscriptions 2.2.10を実行しています。 Checkoutページで支払い方法BACSを選択すると、次のエラーが表示されます。商取引のチェックアウトページ:ステータスが間違って呼び出されました。注文プロパティに直接アクセスしないでください。

PHPメッセージ:ステータスが間違って呼び出されました。注文プロパティには直接アクセスしないでください。バックトレース:

require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), do_action('template_redirect'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::do_wc_ajax, do_action('wc_ajax_checkout'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_AJAX::checkout, WC_Checkout->process_checkout, WC_Checkout->process_order_payment, WC_Gateway_BACS->process_payment, WC_Order->update_status, WC_Order->save, WC_Order->status_transition, do_action('woocommerce_order_status_pending_to_on-hold'), WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_Emails::send_transactional_email, do_action_ref_array, WP_Hook->do_action, WP_Hook->apply_filters, call_user_func_array, WC_Email_New_Order->trigger, WC_Email->get_content, WC_Email_New_Order->get_content_html, wc_get_template_html, wc_get_template, include('/plugins/woocommerce/templates/emails/admin" ```

上流から応答ヘッダーを読み取っています。

エラーの原因を知っている人は誰ですか、どうすれば解決できますか?私はTwenty Seventeenのデフォルトテーマを実行しています。

答えて

2

チェックアウト機能のどこかに、$orderのプロパティステータスに直接アクセスできることを意味します。つまり、コードに$order->statusのようなものがあります。

これは変更されており、woocommerceのバージョン3.0ではこれ以上使用できません。あなたのデータベースのpost_metaテーブルのmeta_keyが発注状況のために呼ばれている方法を見つけ出すとで2番目の引数として、それを交換する必要が

$orderStatus = get_post_meta($order_id, '_status', true); 

check this related issue

は次のようにそれを変更してみてくださいget_post_meta関数(私はそれが_statusと呼ばれると仮定しました)。

私は、別のプラグインのために、その他のプロパティに同じ問題を抱えていた$order->payment_methodと私は

$payment_method = get_post_meta($order_id, '_payment_method', true); 

にそれを変更したときにそれが働いた、これ以上の通知メッセージが現れません。

関連する問題