我用wordpress和woocommerce建立了一个网站(www.jescesole.eu)。由于该网站在德国销售,我不得不安装一个额外的插件,woocommerce germanized(与polylang一起,查看德语和意大利语的内容) 在最近的几天里,我升级了wp和所有插件,但是当客户提交订单时,会出现一条内部服务器错误消息。 我读了服务器错误日志,并报告了一条很长的错误消息:
2017年4月13日星期四21:53:37 GMT [错误] [客户端87.13.188.180] - www.jescesole.eu - AH01215:payment_method调用不正确。不应直接访问订单属性。 Backtrace: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_COD-> process_payment,WC_Order-> update_status,WC_Order-> save,WC_Order-> status_transition,do_action(' woocommerce_order_status_pending_to_processing'), 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_GZD_Email_Customer_Paid_For_Order->触发器,WC_Email-> get_content,WC_GZD_Email_Customer_Paid_For_Order-&GT ; get_content_html,wc_get_template_html,wc_get_templat e,包括(' /plugins/woocommerce-germanized/templates/emails/customer-paid-for-order.php'),do_action(' woocommerce_email_order_details'),WP_Hook-> do_action ,WP_Hook-> apply_filters,call_user_func_array,WC_Emails-> order_details,wc_get_template,include(' /plugins/woocommerce/templates/emails/email-order-details.php'),do_action(' woocommerce_email_before_order_table'),WP_Hook-> do_action,WP_Hook-> apply_filters,call_user_func_array,Hyyan \ WPI \ Gateways \ GatewayBACS-> email_instructions,WC_Abstract_Legacy_Order-> __ get,wc_doing_it_wrong。此消息已在3.0版中添加:/ php-wrapper / php-cgi,referer http://www.jescesole.eu/it/checkout/
发生了什么事?可能是某些插件彼此不兼容或与主题不兼容? 提前谢谢
答案 0 :(得分:0)
我遇到了同样的问题,发现导致错误的“Hyyan WooCommerce Polylang Integration”插件。禁用它,内部服务器错误消失。 Woocommerce Germanized与Polylang完美配合。这个插头不需要(任何更多)。
答案 1 :(得分:-1)
WooCommerce 3.0修改了他们的代码以限制对属性的直接访问,您可以像下面那样更改代码。
$OrderID= ( WC()->version < '2.7.0' ) ? $order->id : $order->get_id();
$shipping_country = ( WC()->version < '2.7.0' ) ? $order->shipping_country : $order->get_shipping_country();
或者将您的插件更新为兼容WC3。
$ order-&gt; property:$ order-&gt; get _ property();