对boolean调用成员函数get_data()



我遇到了一个错误。无法获取订单信息。起初,我认为问题出在一些插件上,关闭了所有插件。然后完全创建了一个新的WP,只有Wooccommerce和一个标准主题。还是同样的错误。请帮帮我。

致命错误:未捕获错误:调用上的成员函数get_data((布尔值在W: \domains\cafe2\wp-content\themes\envo-cafe2\functions.php:501堆栈跟踪:#0 W:\domains\cafe2\wp-settings.php(555(:include((#1W: \domains\cafe2\wp-config.php(96(:require_one('W:\domains\cafe…'(#2W: \domains\cafe2\wp-load.php(50(:require_one('W:\domains\cafe…'(#3 W:\domains\cafe2\wp博客header.php(13(:require_one('W:\domaines\cafe…'(#4W: \domains\cafe2\index.php(17(:require('W:\domains\cafe…'(#5{main}已抛出W: \domains\cafe2\wp content\themes\envo shopper\functions.php在线501本网站出现严重错误。

$order_id = 12;
$order = wc_get_order( $order_id );
$order_data = $order->get_data(); // The Order data
$order_id = $order_data['id'];
$order_parent_id = $order_data['parent_id'];
$order_status = $order_data['status'];

您应该检查

$order = wc_get_order( $order_id );

返回正确的值。

我会这样做(未经测试(:

$order_id = 12;
$order = wc_get_order( $order_id );
if ($order !== false) {
$order_data = $order->get_data(); // The Order data
$order_id = $order_data['id'];
$order_parent_id = $order_data['parent_id'];
$order_status = $order_data['status'];
....
}

Infos:https://wp-kama.com/plugin/woocommerce/function/wc_get_order

因此,问题是在wp中,您不能在注册自定义帖子类型之前请求订单。

我使用了woococommerce_after_register_post_type钩子,如下所示:

add_action( 'woocommerce_after_register_post_type', 
'action_function_name_533' );
function action_function_name_533(){
$order = wc_get_order( $order_id );
foreach ( $order->get_items() as $item_id => $item ) {
$product = $item->get_product();
$product_id = $item->get_product_id();
$variation_id = $item->get_variation_id();
$name = $item->get_name();
//etc....
}
}

希望这对将来的人有所帮助。

最新更新