当前位置: 首页>>代码示例>>PHP>>正文


PHP WC_Coupon::get_discount_amount方法代码示例

本文整理汇总了PHP中WC_Coupon::get_discount_amount方法的典型用法代码示例。如果您正苦于以下问题:PHP WC_Coupon::get_discount_amount方法的具体用法?PHP WC_Coupon::get_discount_amount怎么用?PHP WC_Coupon::get_discount_amount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WC_Coupon的用法示例。


在下文中一共展示了WC_Coupon::get_discount_amount方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: get_discounted_price

 /**
  * Function to apply discounts to a product and get the discounted price (before tax is applied).
  *
  * @access public
  * @param mixed $values
  * @param mixed $price
  * @param bool $add_totals (default: false)
  * @return float price
  */
 public function get_discounted_price($values, $price, $add_totals = false)
 {
     if (!$price) {
         return $price;
     }
     if (!empty($this->applied_coupons)) {
         foreach ($this->applied_coupons as $code) {
             $coupon = new WC_Coupon($code);
             if ($coupon->apply_before_tax() && $coupon->is_valid()) {
                 if ($coupon->is_valid_for_product($values['data']) || $coupon->is_valid_for_cart()) {
                     $discount_amount = $coupon->get_discount_amount($price, $values, $single = true);
                     $price = max($price - $discount_amount, 0);
                     if ($add_totals) {
                         $this->discount_cart += $discount_amount * $values['quantity'];
                         $this->increase_coupon_discount_amount($code, $discount_amount * $values['quantity']);
                         $this->increase_coupon_applied_count($code, $values['quantity']);
                     }
                 }
             }
         }
     }
     return apply_filters('woocommerce_get_discounted_price', $price, $values, $this);
 }
开发者ID:Joaquinsemp,项目名称:patriestausado,代码行数:32,代码来源:class-wc-cart.php

示例2: load_cart_contents

function load_cart_contents()
{
    global $woocommerce;
    $cart = $woocommerce->cart->cart_contents;
    if (sizeof($cart > 0)) {
        foreach ($cart as $cart_item_key => $cart_item) {
            $woocommerce->cart->calculate_totals();
            $product_id = $cart_item['product_id'];
            $product = $cart_item['data'];
            $coupons = $woocommerce->cart->applied_coupons;
            $price = $product->get_price();
            $quantity = $cart_item['quantity'];
            $subtotal = $price * $quantity;
            if ($coupons) {
                foreach ($coupons as $key => $coupon) {
                    $coupon = new WC_Coupon($coupon);
                    if ($coupon->is_valid_for_product($product)) {
                        $discount = $coupon->get_discount_amount($price, $cart_item);
                        $subtotal = $price * $quantity - $discount;
                    }
                }
            }
            ?>
<tr class="selectable ins_order_item" id="<?php 
            echo esc_attr($cart_item_key);
            ?>
">
  <td class="ins_product_id"><?php 
            echo esc_html($product_id);
            ?>
</td>
  <td class="ins_product_title"><?php 
            echo $product->get_title();
            ?>
</td>
  <td class="ins_product_price"><?php 
            echo wc_price($price);
            ?>
</td>
  <td class="ins_product_quantity"><?php 
            echo $quantity;
            ?>
</td>
  <td class="ins_product_subtotal"><?php 
            echo wc_price($subtotal);
            ?>
</td>
  <?php 
            $coupons = $woocommerce->cart->applied_coupons;
            if ($coupons) {
                foreach ($coupons as $coupon) {
                    $coupon = new WC_Coupon($coupon);
                    if ($coupon->is_valid_for_product($cart_item['data'])) {
                        ?>
<tr class="ins_item_discounts">
  <td style="text-align:center;"><?php 
                        echo __('Discount', 'instore');
                        ?>
</td>
  <td class="disc_code" style="text-align:center;"><?php 
                        echo esc_html($coupon->code);
                        ?>
</td>
  <td class="regular_price" style="text-align:center;"> Reg price <?php 
                        echo wc_price($product->get_price());
                        ?>
</td>
  <td class="disc_amount" style="text-align:right;">- <?php 
                        echo wc_price($discount);
                        ?>
</td>
</tr>
<?php 
                    }
                }
            }
            ?>
</tr>
<?php 
        }
    }
}
开发者ID:jusmark123,项目名称:instore-Dev,代码行数:82,代码来源:instore-template-functions.php

示例3: ins_ajax_get_discount

 public function ins_ajax_get_discount()
 {
     global $woocommerce, $current_user;
     $total_discount = 0.0;
     if (isset($_POST['discount'])) {
         if (is_array($_POST['discount'])) {
             $discount = $_POST['discount'];
             $disc_code = $discount['disc_reason'] . time();
             $coupon_code = add_filter('woocommerce_get_shop_coupon_data', array($this, 'ins_get_discount_code'), $disc_code);
         } else {
             $coupon_code = $_POST['discount'];
         }
         $coupon = new WC_Coupon($coupon_code);
         $cart_items = $woocommerce->cart->cart_contents;
         if ($coupon->is_valid()) {
             $total_discount += $coupon->get_discount_amount($woocommerce->cart->total);
             $post = get_post($coupon->id);
             $coupon->amount = $coupon->type == 'percent' ? $coupon->amount . '%' : wc_price($coupon->amount);
             $coupon->minimum_amount = isset($_POST['call']) && $_POST['call'] == 'edit' ? $coupon->minimum_amount : wc_price($coupon->minimum_amount);
             $coupon->expiry_date = is_long($coupon->expiry_date) ? date('m/d/Y', $coupon->expiry_date) : $coupon->expiry_date;
             $coupon->usage_count = empty($coupon->usage_count) ? 0 : $coupon->usage_count;
             $this->json_return = array('success' => true, 'call' => 'update_item_display', 'coupon' => $coupon, 'discount' => $total_discount, 'description' => isset($post) ? $post->post_excerpt : $discount['disc_reason'] . ' discount created on ' . date('m/d/Y h:m:i a') . ' by ' . $current_user->user_login);
             if (isset($_POST['call'])) {
                 $this->json_return['action'] = $_POST['call'];
             }
         } else {
             $this->json_return = array('success' => false, 'coupon_error' => $coupon->error_message);
         }
     }
     echo json_encode($this->json_return);
     die;
 }
开发者ID:jusmark123,项目名称:instore-Dev,代码行数:32,代码来源:class-instore-ajax.php

示例4: foreach

 /**
  * Does the coupon have a value? (autocoupon should not be applied if it has no value)
  * @param  WC_Coupon $coupon The coupon data
  * @return bool True if it has a value (discount, free shipping, whatever) otherwise false)
  **/
 function coupon_has_a_value($coupon)
 {
     $has_a_value = false;
     if ($coupon->enable_free_shipping()) {
         $has_a_value = true;
     } else {
         //Test whether discount > 0
         //See WooCommerce: class-wc-cart.php function get_discounted_price
         global $woocommerce;
         foreach ($woocommerce->cart->get_cart() as $cart_item) {
             if ($coupon->is_valid_for_cart() || $coupon->is_valid_for_product($cart_item['data'], $cart_item)) {
                 if ($coupon->get_discount_amount($cart_item['data']->price, $cart_item) > 0) {
                     $has_a_value = true;
                     break;
                 }
             }
         }
     }
     return apply_filters('wjecf_coupon_has_a_value', $has_a_value, $coupon);
 }
开发者ID:JaneJieYing,项目名称:kiddoonline_dvlpment,代码行数:25,代码来源:wjecf-autocoupon.php

示例5: easy_booking_get_booking_price

 /**
  *
  * Gets custom price on the order page
  *
  * @param WC_Product $product
  * @param int $item_id
  * @param str $start - Start date
  * @param str $end - End date
  * @param array $order_item
  * @param array $coupons
  * @return array $item_prices - Item prices (subtotal, total, tax subtotal and tax total)
  *
  **/
 public function easy_booking_get_booking_price($product, $item_id, $start, $end, $order_item, $coupons)
 {
     if (!$product) {
         return false;
     }
     $calc_mode = $this->options['easy_booking_calc_mode'];
     // Calculation mode (Days or Nights)
     // Get booking duration
     $start_diff = strtotime($start);
     $end_diff = strtotime($end);
     $diff = absint($start_diff - $end_diff) * 1000;
     $days = $diff / 86400000;
     if ($days === 0) {
         $days = 1;
     }
     // If calculation mode is set to "Days", add one day
     if ($calc_mode === 'days' && $start != $end) {
         $duration = absint($days + 1);
     } elseif ($calc_mode === 'days' && $start === $end) {
         $duration = absint($days);
     } else {
         $duration = absint($days);
     }
     if ($product->is_taxable()) {
         $price = $product->get_price_excluding_tax();
         // Product price excluding tax
     } else {
         $price = $product->get_price();
         // Product price
     }
     // Price for x days
     $new_price = apply_filters('easy_booking_get_order_item_price', $price * $duration, $product, $item_id, $duration);
     if ($product->is_taxable()) {
         $item_tax_class = $order_item['tax_class'];
         $product_taxes = $this->easy_booking_get_product_taxes($new_price, $item_tax_class);
         // Product taxes without potential discounts
         foreach ($product_taxes as $_tax_id => $_tax_value) {
             $tax_subtotal[$_tax_id] = $_tax_value;
         }
         $tax_amount = WC_Tax::get_tax_total($product_taxes);
     }
     if ($coupons) {
         foreach ($coupons as $code) {
             $coupon = new WC_Coupon($code);
             if ($coupon->is_valid_for_product($product)) {
                 $coupon_amount = $coupon->get_discount_amount($new_price, $order_item, true);
                 // Discounted amount for item price
                 $total = $new_price - $coupon_amount;
                 // New price with discount
                 if (!empty($product_taxes)) {
                     foreach ($product_taxes as $_tax_id => $_tax_value) {
                         $tax_discount[$_tax_id] = $coupon->get_discount_amount($_tax_value, $order_item, true);
                         // Discounted amount for item taxes
                         $tax_total[$_tax_id] = $_tax_value - $tax_discount[$_tax_id];
                         //  Product taxes with discount
                     }
                 }
             } else {
                 if (!empty($product_taxes)) {
                     foreach ($product_taxes as $_tax_id => $_tax_value) {
                         $tax_total[$_tax_id] = $_tax_value;
                         // No valid coupon - Product taxes unchanged
                     }
                 }
                 $total = $new_price;
                 // No valid coupon - Product  price unchanged
             }
         }
     } else {
         if (!empty($product_taxes)) {
             foreach ($product_taxes as $_tax_id => $_tax_value) {
                 $tax_total[$_tax_id] = $_tax_value;
                 // No coupon - Product taxes unchanged
             }
         }
         $total = $new_price;
         // No coupon - Product  price unchanged
     }
     $new_price = $new_price * $order_item['quantity'];
     // Multiply subtotal by item quantity
     $total = $total * $order_item['quantity'];
     // Multiply total by item quantity
     if (!empty($product_taxes)) {
         foreach ($tax_subtotal as $tax_subtotal_id => $tax_subtotal_amount) {
             $tax_subtotal[$tax_subtotal_id] = $tax_subtotal_amount * $order_item['quantity'];
         }
         // Multiply tax subtotal by item quantity
//.........这里部分代码省略.........
开发者ID:noikiy,项目名称:woocommerce-easy-booking-system,代码行数:101,代码来源:class-wceb-order.php


注:本文中的WC_Coupon::get_discount_amount方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。