/** * Get formatted price * * @access public * @param float $price * @return string */ public function get_formatted_price($price) { return Subscriptio::get_formatted_price($price, $this->renewal_order_currency); }
/** * Return formatted subscription price to be displayed on product pages and cart * * @access public * @param int $id * @param bool $is_checkout * @param int $quantity * @param float $price_now * @param bool $is_variable * @param bool $variations_equal * @return string */ public static function get_formatted_subscription_price($id, $is_checkout = false, $quantity = 1, $price_now = null, $is_variable = false, $variations_equal = false) { $meta = Subscriptio::unwrap_post_meta(get_post_meta($id)); $recurring_price = Subscriptio_Subscription_Product::get_recurring_price($id); // Check if product is configured properly, if not - revert to standard price display if (!isset($meta['_subscriptio_price_time_unit']) || !isset($meta['_subscriptio_price_time_value'])) { return Subscriptio::get_formatted_price($recurring_price, get_woocommerce_currency()); } // Cart/checkout page? if ($is_checkout) { $recurring_price_html = self::format_recurring_amount(($recurring_price * $quantity), $meta['_subscriptio_price_time_unit'], $meta['_subscriptio_price_time_value']); // Payable now differs from recurring amount? if ($price_now != $recurring_price) { $html_now = Subscriptio::get_formatted_price(($price_now * $quantity), get_woocommerce_currency()); return sprintf(__('%1$s now then %2$s', 'subscriptio'), $html_now, $recurring_price_html); } else { return self::format_recurring_amount(($price_now * $quantity), $meta['_subscriptio_price_time_unit'], $meta['_subscriptio_price_time_value']); } } // Other pages else { $recurring_price_html = self::format_recurring_amount($recurring_price, $meta['_subscriptio_price_time_unit'], $meta['_subscriptio_price_time_value']); // Any signup fee? if (!empty($meta['_subscriptio_signup_fee'])) { $signup_fee = Subscriptio::get_formatted_price($meta['_subscriptio_signup_fee'], get_woocommerce_currency()); } // Any free trial? if (!empty($meta['_subscriptio_free_trial_time_value'])) { $time_units = Subscriptio::get_time_units(); if (isset($time_units[$meta['_subscriptio_free_trial_time_unit']]) && is_numeric($meta['_subscriptio_free_trial_time_value'])) { $free_trial = $meta['_subscriptio_free_trial_time_value'] . ' ' . call_user_func($time_units[$meta['_subscriptio_free_trial_time_unit']]['translation_callback'], $meta['_subscriptio_free_trial_time_unit'], $meta['_subscriptio_free_trial_time_value']); } else { $free_trial = ''; } } // Free trial & Signup fee if (!empty($meta['_subscriptio_signup_fee']) && !empty($meta['_subscriptio_free_trial_time_value'])) { if ($is_variable && !$variations_equal) { return sprintf(__('From %1$s', 'subscriptio'), $recurring_price_html); } else { return sprintf(__('%1$s with a free trial of %2$s and a sign-up fee of %3$s', 'subscriptio'), $recurring_price_html, $free_trial, $signup_fee); } } // Free trial else if (!empty($meta['_subscriptio_free_trial_time_value'])) { if ($is_variable && !$variations_equal) { return sprintf(__('From %1$s', 'subscriptio'), $recurring_price_html); } else { return sprintf(__('%1$s with a free trial of %2$s', 'subscriptio'), $recurring_price_html, $free_trial); } } // Signup fee else if (!empty($meta['_subscriptio_signup_fee'])) { if ($is_variable && !$variations_equal) { return sprintf(__('From %1$s', 'subscriptio'), $recurring_price_html); } else { return sprintf(__('%1$s with a sign-up fee of %2$s', 'subscriptio'), $recurring_price_html, $signup_fee); } } // Plain recurring price else { if ($is_variable && !$variations_equal) { return sprintf(__('From %s', 'subscriptio'), $recurring_price_html); } else { return $recurring_price_html; } } } }