public function needs_payment()
{
$valid_order_statuses = apply_filters('woocommerce_valid_order_statuses_for_payment', array('pending', 'failed'), $this);
return apply_filters('woocommerce_order_needs_payment', $this->has_status($valid_order_statuses) && $this->get_total() > 0, $this, $valid_order_statuses);
}