本文整理汇总了PHP中WC_Subscriptions_Order::get_recurring_taxes方法的典型用法代码示例。如果您正苦于以下问题:PHP WC_Subscriptions_Order::get_recurring_taxes方法的具体用法?PHP WC_Subscriptions_Order::get_recurring_taxes怎么用?PHP WC_Subscriptions_Order::get_recurring_taxes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WC_Subscriptions_Order
的用法示例。
在下文中一共展示了WC_Subscriptions_Order::get_recurring_taxes方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generate_renewal_order
//.........这里部分代码省略.........
update_post_meta($renewal_order_id, '_order_tax', woocommerce_format_total($woocommerce->cart->tax_total));
update_post_meta($renewal_order_id, '_order_shipping_tax', woocommerce_format_total($woocommerce->cart->shipping_tax_total));
update_post_meta($renewal_order_id, '_order_total', woocommerce_format_total($woocommerce->cart->total));
update_post_meta($renewal_order_id, '_checkout_renewal', 'yes');
} else {
// If there are outstanding payment amounts, add them to the order, otherwise set the order details to the values of the recurring totals
if ($outstanding_balance > 0 && 'yes' == get_option(WC_Subscriptions_Admin::$option_prefix . '_add_outstanding_balance', 'no')) {
$failed_payment_multiplier = WC_Subscriptions_Order::get_failed_payment_count($original_order, $product_id);
} else {
$failed_payment_multiplier = 1;
}
// Set order totals based on recurring totals from the original order
$cart_discount = $failed_payment_multiplier * get_post_meta($original_order->id, '_order_recurring_discount_cart', true);
$order_discount = $failed_payment_multiplier * get_post_meta($original_order->id, '_order_recurring_discount_total', true);
$order_shipping_tax = $failed_payment_multiplier * get_post_meta($original_order->id, '_order_recurring_shipping_tax_total', true);
$order_shipping = $failed_payment_multiplier * get_post_meta($original_order->id, '_order_recurring_shipping_total', true);
$order_tax = $failed_payment_multiplier * get_post_meta($original_order->id, '_order_recurring_tax_total', true);
$order_total = $failed_payment_multiplier * get_post_meta($original_order->id, '_order_recurring_total', true);
update_post_meta($renewal_order_id, '_cart_discount', $cart_discount);
update_post_meta($renewal_order_id, '_order_discount', $order_discount);
update_post_meta($renewal_order_id, '_order_shipping_tax', $order_shipping_tax);
update_post_meta($renewal_order_id, '_order_shipping', $order_shipping);
update_post_meta($renewal_order_id, '_order_tax', $order_tax);
update_post_meta($renewal_order_id, '_order_total', $order_total);
update_post_meta($renewal_order_id, '_shipping_method', $original_order->recurring_shipping_method);
update_post_meta($renewal_order_id, '_shipping_method_title', $original_order->recurring_shipping_method_title);
// Apply the recurring shipping & payment methods to child renewal orders
if ('child' == $args['new_order_role']) {
update_post_meta($renewal_order_id, '_payment_method', $original_order->recurring_payment_method);
update_post_meta($renewal_order_id, '_payment_method_title', $original_order->recurring_payment_method_title);
}
}
// Set order taxes based on recurring taxes from the original order
$recurring_order_taxes = WC_Subscriptions_Order::get_recurring_taxes($original_order);
foreach ($recurring_order_taxes as $index => $recurring_order_tax) {
if (function_exists('woocommerce_update_order_item_meta')) {
// WC 2.0+
$item_ids = array();
$item_ids[] = woocommerce_add_order_item($renewal_order_id, array('order_item_name' => $recurring_order_tax['name'], 'order_item_type' => 'tax'));
// Also set recurring taxes on parent renewal orders
if ('parent' == $args['new_order_role']) {
$item_ids[] = woocommerce_add_order_item($renewal_order_id, array('order_item_name' => $recurring_order_tax['name'], 'order_item_type' => 'recurring_tax'));
}
// Add line item meta
foreach ($item_ids as $item_id) {
woocommerce_add_order_item_meta($item_id, 'compound', absint(isset($recurring_order_tax['compound']) ? $recurring_order_tax['compound'] : 0));
woocommerce_add_order_item_meta($item_id, 'tax_amount', woocommerce_clean($failed_payment_multiplier * $recurring_order_tax['tax_amount']));
woocommerce_add_order_item_meta($item_id, 'shipping_tax_amount', woocommerce_clean($failed_payment_multiplier * $recurring_order_tax['shipping_tax_amount']));
if (isset($recurring_order_tax['rate_id'])) {
woocommerce_add_order_item_meta($item_id, 'rate_id', $recurring_order_tax['rate_id']);
}
if (isset($recurring_order_tax['label'])) {
woocommerce_add_order_item_meta($item_id, 'label', $recurring_order_tax['label']);
}
}
} else {
// WC 1.x
if (isset($recurring_order_tax['cart_tax']) && $recurring_order_tax['cart_tax'] > 0) {
$recurring_order_taxes[$index]['cart_tax'] = $failed_payment_multiplier * $recurring_order_tax['cart_tax'];
} else {
$recurring_order_taxes[$index]['cart_tax'] = 0;
}
if (isset($recurring_order_tax['shipping_tax']) && $recurring_order_tax['shipping_tax'] > 0) {
$recurring_order_taxes[$index]['shipping_tax'] = $failed_payment_multiplier * $recurring_order_tax['shipping_tax'];
} else {
$recurring_order_taxes[$index]['shipping_tax'] = 0;
示例2: generate_renewal_order
//.........这里部分代码省略.........
// If there are outstanding payment amounts, add them to the order, otherwise set the order details to the values of the recurring totals
if ($outstanding_balance > 0 && 'yes' == get_option(WC_Subscriptions_Admin::$option_prefix . '_add_outstanding_balance', 'no')) {
$failed_payment_multiplier = WC_Subscriptions_Order::get_failed_payment_count($original_order, $product_id);
}
// Set order totals based on recurring totals from the original order
$cart_discount = $failed_payment_multiplier * wc_format_decimal(get_post_meta($original_order->id, '_order_recurring_discount_cart', true));
$order_discount = $failed_payment_multiplier * wc_format_decimal(get_post_meta($original_order->id, '_order_recurring_discount_total', true));
$order_shipping_tax = $failed_payment_multiplier * wc_format_decimal(get_post_meta($original_order->id, '_order_recurring_shipping_tax_total', true));
$order_shipping = $failed_payment_multiplier * wc_format_decimal(get_post_meta($original_order->id, '_order_recurring_shipping_total', true));
$order_tax = $failed_payment_multiplier * wc_format_decimal(get_post_meta($original_order->id, '_order_recurring_tax_total', true));
$order_total = $failed_payment_multiplier * wc_format_decimal(get_post_meta($original_order->id, '_order_recurring_total', true));
update_post_meta($renewal_order_id, '_cart_discount', $cart_discount);
update_post_meta($renewal_order_id, '_order_discount', $order_discount);
update_post_meta($renewal_order_id, '_order_shipping_tax', $order_shipping_tax);
update_post_meta($renewal_order_id, '_order_shipping', $order_shipping);
update_post_meta($renewal_order_id, '_order_tax', $order_tax);
update_post_meta($renewal_order_id, '_order_total', $order_total);
// Set shipping for orders created with WC 2.0.n (or when we are using WC 2.0.n)
if (WC_Subscriptions::is_woocommerce_pre_2_1() || isset($original_order->recurring_shipping_method)) {
update_post_meta($renewal_order_id, '_shipping_method', $original_order->recurring_shipping_method);
update_post_meta($renewal_order_id, '_shipping_method_title', $original_order->recurring_shipping_method_title);
// Also set recurring shipping as it's a parent renewal order
if ('parent' == $args['new_order_role']) {
update_post_meta($renewal_order_id, '_recurring_shipping_method', $original_order->recurring_shipping_method);
update_post_meta($renewal_order_id, '_recurring_shipping_method_title', $original_order->recurring_shipping_method_title);
}
}
// Apply the recurring shipping & payment methods to child renewal orders
if ('child' == $args['new_order_role']) {
update_post_meta($renewal_order_id, '_payment_method', $original_order->recurring_payment_method);
update_post_meta($renewal_order_id, '_payment_method_title', $original_order->recurring_payment_method_title);
}
// Set order taxes based on recurring taxes from the original order
$recurring_order_taxes = WC_Subscriptions_Order::get_recurring_taxes($original_order);
foreach ($recurring_order_taxes as $index => $recurring_order_tax) {
$item_ids = array();
$item_ids[] = woocommerce_add_order_item($renewal_order_id, array('order_item_name' => $recurring_order_tax['name'], 'order_item_type' => 'tax'));
// Also set recurring taxes on parent renewal orders
if ('parent' == $args['new_order_role']) {
$item_ids[] = woocommerce_add_order_item($renewal_order_id, array('order_item_name' => $recurring_order_tax['name'], 'order_item_type' => 'recurring_tax'));
}
// Add line item meta
foreach ($item_ids as $item_id) {
woocommerce_add_order_item_meta($item_id, 'compound', absint(isset($recurring_order_tax['compound']) ? $recurring_order_tax['compound'] : 0));
woocommerce_add_order_item_meta($item_id, 'tax_amount', $failed_payment_multiplier * WC_Subscriptions::format_total($recurring_order_tax['tax_amount']));
woocommerce_add_order_item_meta($item_id, 'shipping_tax_amount', $failed_payment_multiplier * WC_Subscriptions::format_total($recurring_order_tax['shipping_tax_amount']));
if (isset($recurring_order_tax['rate_id'])) {
woocommerce_add_order_item_meta($item_id, 'rate_id', $recurring_order_tax['rate_id']);
}
if (isset($recurring_order_tax['label'])) {
woocommerce_add_order_item_meta($item_id, 'label', $recurring_order_tax['label']);
}
}
}
// Set up shipping items on renewal order
$recurring_shipping_items = WC_Subscriptions_Order::get_recurring_shipping_methods($original_order);
foreach ($recurring_shipping_items as $recurring_shipping_item_id => $recurring_shipping_item) {
$item_ids = array();
$item_ids[] = woocommerce_add_order_item($renewal_order_id, array('order_item_name' => $recurring_shipping_item['name'], 'order_item_type' => 'shipping'));
// Also set recurring shipping as it's a parent renewal order
if ('parent' == $args['new_order_role']) {
$item_ids[] = woocommerce_add_order_item($renewal_order_id, array('order_item_name' => $recurring_shipping_item['name'], 'order_item_type' => 'recurring_shipping'));
}
// Add shipping item meta
foreach ($item_ids as $item_id) {
woocommerce_add_order_item_meta($item_id, 'method_id', $recurring_shipping_item['method_id']);