/** * get_order function. * * @param bool $the_order (default: false) * @return WC_Order|bool */ public function get_order($the_order = false) { global $post; if (false === $the_order) { $the_order = $post; } elseif (is_numeric($the_order)) { $the_order = get_post($the_order); } if (!$the_order || !is_object($the_order)) { return false; } $order_id = absint($the_order->ID); $post_type = $the_order->post_type; if ($order_type = wc_get_order_type($post_type)) { $classname = $order_type['class_name']; } else { $classname = false; } // Filter classname so that the class can be overridden if extended. $classname = apply_filters('woocommerce_order_class', $classname, $post_type, $order_id); if (!class_exists($classname)) { $classname = 'WC_Order'; } return new $classname($the_order); }
/** * Get order. * * @param mixed $order_id (default: false) * @return WC_Order|bool */ public static function get_order($order_id = false) { $order_id = self::get_order_id($order_id); if (!$order_id) { return false; } $post_type = get_post_type($order_id); if ($order_type = wc_get_order_type($post_type)) { $classname = $order_type['class_name']; } else { $classname = false; } // Filter classname so that the class can be overridden if extended. $classname = apply_filters('woocommerce_order_class', $classname, $post_type, $order_id); if (!class_exists($classname)) { return false; } try { return new $classname($order_id); } catch (Exception $e) { return false; } }