我建立了wordpress和woocommerce網站(www.jescesole.eu)。由於該網站在德國銷售,我不得不安裝額外的插件,woocommerce德國化(與polylang一起,查看德語和意大利語的內容) 在最近幾天我升級了wp和所有插件,但是當客戶提交順序,出現內部服務器錯誤消息。 我讀服務器錯誤日誌和報告一個長錯誤消息:woocommerce - 內部服務器錯誤
星期四,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- >保存,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-> get_content_html,wc_get_template_html,wc_get_template,include('/ 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/
發生了什麼?可能是一些插件不兼容或與主題? thanx
試着回到這個錯誤之前的情況。然後再次逐個更新,每次更新WP或插件時,都要測試整個站點。通過這種方式,您可以快速找到哪個插件導致問題,或者安裝的插件與最新版本的Wordpress不兼容。 這可能是一項單調乏味的工作。但是找出造成問題的原因是解決問題的90%。在找出原因後,您可以找到解決方案。 – Kevinvhengst
此錯誤是由** WooCommerce mega主版本3.0.x引起的。更新**你應該更好地回到2.6.x版本,因爲許多事情已經改變。這裏的問題在於支付網關(插件),它正在調用$ order對象屬性。現在這個屬性不能像以前那樣直接調用。相反,它必須使用新的setters和getters方法...... **所以問題當然是支付網關插件(與WC 3.0+不兼容)或支付網關周圍的一些自定義代碼** – LoicTheAztec
「不應直接訪問訂單屬性。 「訂單,優惠券,產品和訂單項屬性現在必須通過getter函數訪問。所以'$ order-> payment_gateway'現在是'$ order-> get_payment_gateway()'。 – helgatheviking