我正在运行WordPress 4.8,Woocommerce 3.1.1,WooCommerce订阅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->触发器,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默认主题 .
1 回答
在结账功能的某个地方,可以直接访问
$order
的 property 状态,这意味着代码中有类似于$order->status
的内容 .这已经改变,不再允许在版本3.0的woocommerce中 . check this related issue
尝试将其更改为:
您必须弄清楚如何为订单状态调用数据库的post_meta表中的meta_key,并将其替换为
get_post_meta
函数中的第二个参数(我假设它被称为_status) .我对另一个插件和其他属性有同样的问题,
$order->payment_method
当我将其更改为时它工作,没有更多通知消息出现 .