本文整理汇总了PHP中WC_Subscriptions_Manager::get_subscription_trial_period_strings方法的典型用法代码示例。如果您正苦于以下问题:PHP WC_Subscriptions_Manager::get_subscription_trial_period_strings方法的具体用法?PHP WC_Subscriptions_Manager::get_subscription_trial_period_strings怎么用?PHP WC_Subscriptions_Manager::get_subscription_trial_period_strings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WC_Subscriptions_Manager
的用法示例。
在下文中一共展示了WC_Subscriptions_Manager::get_subscription_trial_period_strings方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get_price_string
/**
* Returns a string representing the details of the subscription.
*
* For example "$20 per Month for 3 Months with a $10 sign-up fee".
*
* @param WC_Product|int $product A WC_Product object or ID of a WC_Product.
* @param array $inclusions An associative array of flags to indicate how to calculate the price and what to include, values:
* 'tax_calculation' => false to ignore tax, 'include_tax' or 'exclude_tax' To indicate that tax should be added or excluded respectively
* 'subscription_length' => true to include subscription's length (default) or false to exclude it
* 'sign_up_fee' => true to include subscription's sign up fee (default) or false to exclude it
* 'price' => string a price to short-circuit the price calculations and use in a string for the product
* @since 1.0
*/
public static function get_price_string($product, $include = array())
{
if (!is_object($product)) {
$product = WC_Subscriptions::get_product($product);
}
if (!self::is_subscription($product)) {
return;
}
$include = wp_parse_args($include, array('tax_calculation' => false, 'subscription_price' => true, 'subscription_period' => true, 'subscription_length' => true, 'sign_up_fee' => true, 'trial_length' => true));
$include = apply_filters('woocommerce_subscriptions_product_price_string_inclusions', $include, $product);
$base_price = self::get_price($product);
if (true === $include['sign_up_fee']) {
$sign_up_fee = self::get_sign_up_fee($product);
} elseif (false !== $include['sign_up_fee']) {
// Allow override of product's sign-up fee
$sign_up_fee = $include['sign_up_fee'];
} else {
$sign_up_fee = 0;
}
if ($include['tax_calculation'] != false) {
if ($include['tax_calculation'] == 'exclude_tax') {
// Subtract Tax
$tax_per_period = self::calculate_tax_for_subscription($base_price, $product);
if (isset($include['price'])) {
$price = $include['price'];
} else {
$price = woocommerce_price($base_price - $tax_per_period);
}
if ($sign_up_fee > 0) {
$sign_up_tax = self::calculate_tax_for_subscription($sign_up_fee, $product);
$sign_up_fee = $sign_up_fee - $sign_up_tax;
}
} else {
// Add Tax
$tax_per_period = self::calculate_tax_for_subscription($base_price, $product, true);
if (isset($include['price'])) {
$price = $include['price'];
} else {
$price = woocommerce_price($base_price + $tax_per_period);
}
if ($sign_up_fee > 0) {
$sign_up_tax = self::calculate_tax_for_subscription($sign_up_fee, $product, true);
$sign_up_fee = $sign_up_fee - $sign_up_tax;
}
}
} else {
if (isset($include['price'])) {
$price = $include['price'];
} else {
$price = woocommerce_price($base_price);
}
}
$billing_interval = self::get_interval($product);
$subscription_length = self::get_length($product);
$trial_length = self::get_trial_length($product);
$trial_period = self::get_trial_period($product);
if (is_numeric($sign_up_fee)) {
$sign_up_fee = woocommerce_price($sign_up_fee);
}
if ($include['subscription_length']) {
$ranges = WC_Subscriptions_Manager::get_subscription_ranges(self::get_period($product));
}
if ($include['subscription_length'] && $subscription_length != 0) {
$include_length = true;
} else {
$include_length = false;
}
$subscription_string = '';
if ($include['subscription_price'] && $include['subscription_period']) {
// Allow extensions to not show price or billing period e.g. Name Your Price
if ($include_length && $subscription_length == $billing_interval) {
$subscription_string = $price;
// Only for one billing period so show "$5 for 3 months" instead of "$5 every 3 months for 3 months"
} else {
$subscription_string = sprintf(_n(' %s / %s', ' %s every %s', $billing_interval, 'woocommerce-subscriptions'), $price, WC_Subscriptions_Manager::get_subscription_period_strings($billing_interval, self::get_period($product)));
}
} elseif ($include['subscription_price']) {
$subscription_string = $price;
} elseif ($include['subscription_period']) {
$subscription_string = sprintf(_n('%s', 'every %s', $billing_interval, 'woocommerce-subscriptions'), WC_Subscriptions_Manager::get_subscription_period_strings($billing_interval, self::get_period($product)));
}
// Add the length to the end
if ($include_length) {
$subscription_string = sprintf(__('%s for %s', 'woocommerce-subscriptions'), $subscription_string, $ranges[$subscription_length]);
}
if ($include['trial_length'] && $trial_length != 0) {
$trial_string = WC_Subscriptions_Manager::get_subscription_trial_period_strings($trial_length, $trial_period);
//.........这里部分代码省略.........
示例2: get_price_string
//.........这里部分代码省略.........
$price = $include['price'];
} else {
$price = $product->get_price_including_tax();
}
if (true === $include['sign_up_fee']) {
$sign_up_fee = $product->get_sign_up_fee_including_tax();
}
}
} else {
if (isset($include['price'])) {
$price = $include['price'];
} else {
$price = woocommerce_price($base_price);
}
}
$price .= ' <span class="subscription-details">';
$billing_interval = self::get_interval($product);
$billing_period = self::get_period($product);
$subscription_length = self::get_length($product);
$trial_length = self::get_trial_length($product);
$trial_period = self::get_trial_period($product);
if (is_numeric($sign_up_fee)) {
$sign_up_fee = woocommerce_price($sign_up_fee);
}
if ($include['subscription_length']) {
$ranges = WC_Subscriptions_Manager::get_subscription_ranges($billing_period);
}
if ($include['subscription_length'] && $subscription_length != 0) {
$include_length = true;
} else {
$include_length = false;
}
$subscription_string = '';
if ($include['subscription_price'] && $include['subscription_period']) {
// Allow extensions to not show price or billing period e.g. Name Your Price
if ($include_length && $subscription_length == $billing_interval) {
$subscription_string = $price;
// Only for one billing period so show "$5 for 3 months" instead of "$5 every 3 months for 3 months"
} elseif (WC_Subscriptions_Synchroniser::is_product_synced($product) && in_array($billing_period, array('week', 'month', 'year'))) {
$payment_day = WC_Subscriptions_Synchroniser::get_products_payment_day($product);
switch ($billing_period) {
case 'week':
$payment_day_of_week = WC_Subscriptions_Synchroniser::get_weekday($payment_day);
if (1 == $billing_interval) {
// e.g. $5 every Wednesday
$subscription_string = sprintf(__('%s every %s', 'woocommerce-subscriptions'), $price, $payment_day_of_week);
} else {
// e.g. $5 every 2 weeks on Wednesday
$subscription_string = sprintf(__('%s every %s on %s', 'woocommerce-subscriptions'), $price, WC_Subscriptions_Manager::get_subscription_period_strings($billing_interval, $billing_period), $payment_day_of_week);
}
break;
case 'month':
if (1 == $billing_interval) {
// e.g. $15 on the 15th of each month
if ($payment_day > 27) {
$subscription_string = sprintf(__('%s on the last day of each month', 'woocommerce-subscriptions'), $price);
} else {
$subscription_string = sprintf(__('%s on the %s of each month', 'woocommerce-subscriptions'), $price, WC_Subscriptions::append_numeral_suffix($payment_day));
}
} else {
// e.g. $15 on the 15th of every 3rd month
if ($payment_day > 27) {
$subscription_string = sprintf(__('%s on the last day of every %s month', 'woocommerce-subscriptions'), $price, WC_Subscriptions::append_numeral_suffix($billing_interval));
} else {
$subscription_string = sprintf(__('%s on the %s day of every %s month', 'woocommerce-subscriptions'), $price, WC_Subscriptions::append_numeral_suffix($payment_day), WC_Subscriptions::append_numeral_suffix($billing_interval));
}
}
break;
case 'year':
if (1 == $billing_interval) {
// e.g. $15 on March 15th each year
$subscription_string = sprintf(__('%s on %s %s each year', 'woocommerce-subscriptions'), $price, $wp_locale->month[$payment_day['month']], WC_Subscriptions::append_numeral_suffix($payment_day['day']));
} else {
// e.g. $15 on March 15th every 3rd year
$subscription_string = sprintf(__('%s on %s %s every %s year', 'woocommerce-subscriptions'), $price, $wp_locale->month[$payment_day['month']], WC_Subscriptions::append_numeral_suffix($payment_day['day']), WC_Subscriptions::append_numeral_suffix($billing_interval));
}
break;
}
} else {
$subscription_string = sprintf(_n('%s / %s', ' %s every %s', $billing_interval, 'woocommerce-subscriptions'), $price, WC_Subscriptions_Manager::get_subscription_period_strings($billing_interval, $billing_period));
}
} elseif ($include['subscription_price']) {
$subscription_string = $price;
} elseif ($include['subscription_period']) {
$subscription_string = sprintf(_n('%s', 'every %s', $billing_interval, 'woocommerce-subscriptions'), WC_Subscriptions_Manager::get_subscription_period_strings($billing_interval, $billing_period));
}
// Add the length to the end
if ($include_length) {
$subscription_string = sprintf(__('%s for %s', 'woocommerce-subscriptions'), $subscription_string, $ranges[$subscription_length]);
}
if ($include['trial_length'] && $trial_length != 0) {
$trial_string = WC_Subscriptions_Manager::get_subscription_trial_period_strings($trial_length, $trial_period);
$subscription_string = sprintf(__('%s with %s free trial', 'woocommerce-subscriptions'), $subscription_string, $trial_string);
}
if ($include['sign_up_fee'] && self::get_sign_up_fee($product) > 0) {
$subscription_string = sprintf(__('%s and a %s sign-up fee', 'woocommerce-subscriptions'), $subscription_string, $sign_up_fee);
}
$subscription_string .= '</span>';
return apply_filters('woocommerce_subscriptions_product_price_string', $subscription_string, $product, $include);
}
示例3: get_price_string
/**
* Returns a string representing the details of the subscription.
*
* For example "$20 per Month for 3 Months with a $10 sign-up fee".
*
* @param $product WC_Product | Int A WC_Product object or ID of a WC_Product.
* @param $inclusions array An associative array of flags to indicate how to calculate the price and what to include, values:
* 'tax_calculation' => false to ignore tax, 'include_tax' or 'exclude_tax' To indicate that tax should be added or excluded respectively
* 'subscription_length' => true to include subscription's length (default) or false to exclude it
* 'sign_up_fee' => true to include subscription's sign up fee (default) or false to exclude it
* 'price' => string a price to short-circuit the price calculations and use in a string for the product
* @since 1.0
*/
public static function get_price_string($product, $include = array())
{
if (!is_object($product)) {
$product = new WC_Product($product);
}
// Shouldn't matter if product is variation as all we need is the product_type
if (!self::is_subscription($product)) {
return;
}
$include = wp_parse_args($include, array('tax_calculation' => false, 'subscription_length' => true, 'sign_up_fee' => true, 'trial_length' => true));
$base_price = self::get_price($product);
$sign_up_fee = self::get_sign_up_fee($product);
if ($include['tax_calculation'] != false) {
if ($include['tax_calculation'] == 'exclude_tax') {
// Subtract Tax
$tax_per_period = self::calculate_tax_for_subscription($base_price, $product);
if (isset($include['price'])) {
$price = $include['price'];
} else {
$price = woocommerce_price($base_price - $tax_per_period);
}
if ($sign_up_fee > 0) {
$sign_up_tax = self::calculate_tax_for_subscription($sign_up_fee, $product);
$sign_up_fee = $sign_up_fee - $sign_up_tax;
}
} else {
// Add Tax
$tax_per_period = self::calculate_tax_for_subscription($base_price, $product, true);
if (isset($include['price'])) {
$price = $include['price'];
} else {
$price = woocommerce_price($base_price + $tax_per_period);
}
if ($sign_up_fee > 0) {
$sign_up_tax = self::calculate_tax_for_subscription($sign_up_fee, $product, true);
$sign_up_fee = $sign_up_fee - $sign_up_tax;
}
}
} else {
if (isset($include['price'])) {
$price = $include['price'];
} else {
$price = woocommerce_price($base_price);
}
}
$billing_interval = self::get_interval($product);
$subscription_length = self::get_length($product);
$trial_length = self::get_trial_length($product);
$trial_period = self::get_trial_period($product);
if ($include['subscription_length']) {
$ranges = WC_Subscriptions_Manager::get_subscription_ranges(self::get_period($product));
}
if ($include['subscription_length'] && $subscription_length != 0) {
$include_length = true;
} else {
$include_length = false;
}
if ($include_length && $subscription_length == $billing_interval) {
$subscription_string = $price;
} else {
$subscription_string = sprintf(_n(' %s / %s', ' %s every %s', $billing_interval, WC_Subscriptions::$text_domain), $price, WC_Subscriptions_Manager::get_subscription_period_strings($billing_interval, self::get_period($product)));
}
// Add the length to the end
if ($include_length) {
$subscription_string = sprintf(__('%s for %s', WC_Subscriptions::$text_domain), $subscription_string, $ranges[$subscription_length]);
}
if ($include['trial_length'] && $trial_length != 0) {
$trial_string = WC_Subscriptions_Manager::get_subscription_trial_period_strings($trial_length, $trial_period);
$subscription_string = sprintf(__('%s with %s free trial', WC_Subscriptions::$text_domain), $subscription_string, $trial_string);
}
if ($include['sign_up_fee'] && self::get_sign_up_fee($product) > 0) {
$subscription_string = sprintf(__('%s and a %s sign-up fee', WC_Subscriptions::$text_domain), $subscription_string, woocommerce_price($sign_up_fee));
}
return apply_filters('woocommerce_subscriptions_product_price_string', $subscription_string, $product, $include);
}