2
我試圖改變存在於woocommerce \公共功能的核心功能包括:\類-WC-coupon.php如何改變woocommerce
更改核心文件是不好的,因爲我不想讓每次更改核心文件我更新woocommerce,這就是爲什麼我想找到一種方法,我可以在我的主題functions.php文件中添加此功能的更新版本,以使其工作
這裏的核心功能
/**
* Get discount amount for a cart item
*
* @param float $discounting_amount Amount the coupon is being applied to
* @param array|null $cart_item Cart item being discounted if applicable
* @param boolean $single True if discounting a single qty item, false if its the line
* @return float Amount this coupon has discounted
*/
public function get_discount_amount($discounting_amount, $cart_item = null, $single = false) {
$discount = 0;
if ($this->type == 'fixed_product') {
$discount = $discounting_amount < $this->amount ? $discounting_amount : $this->amount;
// If dealing with a line and not a single item, we need to multiple fixed discount by cart item qty.
if (! $single && ! is_null($cart_item)) {
// Discount for the line.
$discount = $discount * $cart_item['quantity'];
}
} elseif ($this->type == 'percent_product' || $this->type == 'percent') {
$discount = round(($discounting_amount/100) * $this->amount, WC()->cart->dp);
} elseif ($this->type == 'fixed_cart') {
if (! is_null($cart_item)) {
/**
* This is the most complex discount - we need to divide the discount between rows based on their price in
* proportion to the subtotal. This is so rows with different tax rates get a fair discount, and so rows
* with no price (free) don't get discounted.
*
* Get item discount by dividing item cost by subtotal to get a %
*/
$discount_percent = 0;
if (WC()->cart->subtotal_ex_tax)
$discount_percent = ($cart_item['data']->get_price_excluding_tax() * $cart_item['quantity'])/WC()->cart->subtotal_ex_tax;
$discount = min(($this->amount * $discount_percent)/$cart_item['quantity'], $discounting_amount);
} else {
$discount = min($this->amount, $discounting_amount);
}
}
// Handle the limit_usage_to_x_items option
if (in_array($this->type, array('percent_product', 'fixed_product')) && ! is_null($cart_item)) {
$qty = empty($this->limit_usage_to_x_items) ? $cart_item['quantity'] : min($this->limit_usage_to_x_items, $cart_item['quantity']);
if ($single) {
$discount = ($discount * $qty)/$cart_item['quantity'];
} else {
$discount = ($discount/$cart_item['quantity']) * $qty;
}
}
return $discount;
}
我要添加$discount = $discount * -1;
前return $discount;
感謝