Skip to content

Commit 50a2a9b

Browse files
committed
v2.3.7
1 parent 277fd9f commit 50a2a9b

File tree

5 files changed

+71
-60
lines changed

5 files changed

+71
-60
lines changed

cost-of-goods-for-woocommerce.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
Plugin Name: Cost of Goods for WooCommerce
44
Plugin URI: https://wpfactory.com/item/cost-of-goods-for-woocommerce/
55
Description: Save product purchase costs (cost of goods) in WooCommerce. Beautifully.
6-
Version: 2.3.6
6+
Version: 2.3.7
77
Author: WPFactory
88
Author URI: https://wpfactory.com
99
Text Domain: cost-of-goods-for-woocommerce
@@ -33,7 +33,7 @@ final class Alg_WC_Cost_of_Goods {
3333
* @var string
3434
* @since 1.0.0
3535
*/
36-
public $version = '2.3.6';
36+
public $version = '2.3.7';
3737

3838
/**
3939
* @var Alg_WC_Cost_of_Goods The single instance of the class

includes/class-alg-wc-cog-orders.php

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/**
33
* Cost of Goods for WooCommerce - Orders Class
44
*
5-
* @version 2.3.6
5+
* @version 2.3.7
66
* @since 2.1.0
77
* @author WPFactory
88
*/
@@ -541,7 +541,7 @@ function get_order_total_for_pecentage_fees( $order ) {
541541
/**
542542
* update_order_items_costs.
543543
*
544-
* @version 2.3.6
544+
* @version 2.3.7
545545
* @since 1.1.0
546546
* @todo [maybe] filters: add more?
547547
* @todo [maybe] `$total_price`: customizable calculation method (e.g. `$order->get_subtotal()`) (this will affect `_alg_wc_cog_order_profit_margin`)
@@ -575,7 +575,7 @@ function update_order_items_costs( $order_id, $is_new_order, $is_no_costs_only =
575575
// Fees: Order extra cost: from meta (e.g. PayPal, Stripe etc.)
576576
$meta_fees = 0;
577577
// Refund calculation
578-
$refund_calc_method = get_option( 'alg_wc_cog_order_refund_calculation_method', 'profit_by_netpayment_and_cost_difference' );
578+
$refund_calc_method = get_option( 'alg_wc_cog_order_refund_calculation_method', 'ignore_refunds' );
579579
// Totals
580580
$profit = 0;
581581
$total_cost = 0;
@@ -732,14 +732,16 @@ function update_order_items_costs( $order_id, $is_new_order, $is_no_costs_only =
732732
$total_price += $_tax;
733733
}
734734
// Readjust profit on refunded orders
735-
if ( 'profit_based_on_total_refunded' == $refund_calc_method ) {
736-
$profit -= $order_total_refunded;
737-
} elseif ( 'profit_by_netpayment_and_cost_difference' == $refund_calc_method ) {
738-
$the_total = $order->get_total();
739-
$tax_percent = $the_total > 0 ? 1 - ( $order->get_total_tax() / $the_total ) : 1;
740-
$net_payment = apply_filters( 'alg_wc_cog_order_net_payment', $order->get_total() - $order_total_refunded );
741-
$net_payment = 'yes' === get_option( 'alg_wc_cog_net_payment_inclusive_of_tax', 'no' ) ? $net_payment : $net_payment * $tax_percent;
742-
$profit = $net_payment - $total_cost;
735+
if ( $order_total_refunded > 0 ) {
736+
if ( 'profit_based_on_total_refunded' == $refund_calc_method ) {
737+
$profit -= $order_total_refunded;
738+
} elseif ( 'profit_by_netpayment_and_cost_difference' == $refund_calc_method ) {
739+
$the_total = $order->get_total();
740+
$tax_percent = $the_total > 0 ? 1 - ( $order->get_total_tax() / $the_total ) : 1;
741+
$net_payment = apply_filters( 'alg_wc_cog_order_net_payment', $order->get_total() - $order_total_refunded );
742+
$net_payment = 'yes' === get_option( 'alg_wc_cog_net_payment_inclusive_of_tax', 'no' ) ? $net_payment : $net_payment * $tax_percent;
743+
$profit = $net_payment - $total_cost;
744+
}
743745
}
744746
}
745747

includes/settings/class-alg-wc-cog-settings-orders.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/**
33
* Cost of Goods for WooCommerce - Orders Section Settings
44
*
5-
* @version 2.3.5
5+
* @version 2.3.7
66
* @since 1.7.0
77
* @author WPFactory
88
*/
@@ -28,7 +28,7 @@ function __construct() {
2828
/**
2929
* get_settings.
3030
*
31-
* @version 2.3.5
31+
* @version 2.3.7
3232
* @since 1.7.0
3333
* @todo [later] `alg_wc_cog_order_prepopulate_in_ajax`: remove (i.e. always enabled)
3434
* @todo [later] `alg_wc_cog_order_save_items_ajax`: remove (i.e. always enabled)
@@ -312,18 +312,19 @@ function get_settings() {
312312
array(
313313
'title' => __( 'Refund calculation', 'cost-of-goods-for-woocommerce' ),
314314
'id' => 'alg_wc_cog_order_refund_calculation_method',
315-
'default' => 'profit_by_netpayment_and_cost_difference',
315+
'default' => 'ignore_refunds',
316316
'type' => 'radio',
317317
'options' => array(
318-
'ignore_refunds' => __( 'Profit and price ignore refunds', 'cost-of-goods-for-woocommerce' ),
319-
'profit_based_on_total_refunded' => __( 'Calculate profit based on total refunded', 'cost-of-goods-for-woocommerce' ),
320-
'profit_and_price_based_on_item_refunded_amount' => __( 'Calculate profit and price based on item refunded amount', 'cost-of-goods-for-woocommerce' ),
318+
'ignore_refunds' => __( 'Profit ignore refunds', 'cost-of-goods-for-woocommerce' ),
319+
'profit_based_on_total_refunded' => __( 'Subtract total refunded from profit', 'cost-of-goods-for-woocommerce' ),
320+
'profit_and_price_based_on_item_refunded_amount' => __( 'Subtract each item\'s refund amount from profit', 'cost-of-goods-for-woocommerce' ),
321321
'profit_by_netpayment_and_cost_difference' => __( 'Calculate profit by the difference between Net Payment and Cost', 'cost-of-goods-for-woocommerce' ),
322322
)
323323
),
324324
array(
325325
'title' => __( 'Net Payment inclusive of tax', 'cost-of-goods-for-woocommerce' ),
326326
'desc' => __( 'Include tax on Net Payment', 'cost-of-goods-for-woocommerce' ),
327+
'desc_tip' => sprintf( __( 'Only works with %s.', 'cost-of-goods-for-woocommerce' ), '<strong>' . __( 'Calculate profit by the difference between Net Payment and Cost', 'cost-of-goods-for-woocommerce' ) . '</strong>' ),
327328
'id' => 'alg_wc_cog_net_payment_inclusive_of_tax',
328329
'default' => 'no',
329330
'type' => 'checkbox',

langs/cost-of-goods-for-woocommerce.pot

Lines changed: 45 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
# This file is distributed under the GNU General Public License v3.0.
33
msgid ""
44
msgstr ""
5-
"Project-Id-Version: Cost of Goods for WooCommerce 2.3.6\n"
5+
"Project-Id-Version: Cost of Goods for WooCommerce 2.3.7\n"
66
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/cost-of-goods-for-woocommerce\n"
77
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
88
"Language-Team: LANGUAGE <[email protected]>\n"
99
"MIME-Version: 1.0\n"
1010
"Content-Type: text/plain; charset=UTF-8\n"
1111
"Content-Transfer-Encoding: 8bit\n"
12-
"POT-Creation-Date: 2021-01-27T19:57:14+01:00\n"
12+
"POT-Creation-Date: 2021-01-28T16:14:53+01:00\n"
1313
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1414
"X-Generator: WP-CLI 2.4.0\n"
1515
"X-Domain: cost-of-goods-for-woocommerce\n"
@@ -88,7 +88,7 @@ msgstr ""
8888
#: includes/class-alg-wc-cog-orders-meta-boxes.php:115
8989
#: includes/class-alg-wc-cog-products.php:121
9090
#: includes/class-alg-wc-cog-products.php:145
91-
#: includes/settings/class-alg-wc-cog-settings-orders.php:371
91+
#: includes/settings/class-alg-wc-cog-settings-orders.php:372
9292
#: includes/settings/class-alg-wc-cog-settings-products.php:109
9393
#: includes/settings/class-alg-wc-settings-cog.php:24
9494
msgid "Cost of Goods"
@@ -124,17 +124,17 @@ msgid "Order fee (percent)"
124124
msgstr ""
125125

126126
#: includes/class-alg-wc-cog-orders-meta-boxes.php:86
127-
#: includes/settings/class-alg-wc-cog-settings-orders.php:378
127+
#: includes/settings/class-alg-wc-cog-settings-orders.php:379
128128
msgid "Handling fee"
129129
msgstr ""
130130

131131
#: includes/class-alg-wc-cog-orders-meta-boxes.php:87
132-
#: includes/settings/class-alg-wc-cog-settings-orders.php:386
132+
#: includes/settings/class-alg-wc-cog-settings-orders.php:387
133133
msgid "Shipping fee"
134134
msgstr ""
135135

136136
#: includes/class-alg-wc-cog-orders-meta-boxes.php:88
137-
#: includes/settings/class-alg-wc-cog-settings-orders.php:394
137+
#: includes/settings/class-alg-wc-cog-settings-orders.php:395
138138
msgid "Payment fee"
139139
msgstr ""
140140

@@ -147,7 +147,7 @@ msgid "Cost details"
147147
msgstr ""
148148

149149
#: includes/class-alg-wc-cog-orders-meta-boxes.php:115
150-
#: includes/settings/class-alg-wc-cog-settings-orders.php:371
150+
#: includes/settings/class-alg-wc-cog-settings-orders.php:372
151151
msgid "Extra costs"
152152
msgstr ""
153153

@@ -715,10 +715,10 @@ msgid "When enabled, the plugin will try to get currency exchange rates from the
715715
msgstr ""
716716

717717
#: includes/settings/class-alg-wc-cog-settings-gateways.php:24
718-
#: includes/settings/class-alg-wc-cog-settings-orders.php:339
719-
#: includes/settings/class-alg-wc-cog-settings-orders.php:369
720-
#: includes/settings/class-alg-wc-cog-settings-orders.php:404
721-
#: includes/settings/class-alg-wc-cog-settings-orders.php:419
718+
#: includes/settings/class-alg-wc-cog-settings-orders.php:340
719+
#: includes/settings/class-alg-wc-cog-settings-orders.php:370
720+
#: includes/settings/class-alg-wc-cog-settings-orders.php:405
721+
#: includes/settings/class-alg-wc-cog-settings-orders.php:420
722722
#: includes/settings/class-alg-wc-cog-settings-shipping.php:24
723723
msgid "Extra Costs"
724724
msgstr ""
@@ -738,9 +738,9 @@ msgstr ""
738738

739739
#: includes/settings/class-alg-wc-cog-settings-gateways.php:40
740740
#: includes/settings/class-alg-wc-cog-settings-orders.php:224
741-
#: includes/settings/class-alg-wc-cog-settings-orders.php:341
742-
#: includes/settings/class-alg-wc-cog-settings-orders.php:372
743-
#: includes/settings/class-alg-wc-cog-settings-orders.php:423
741+
#: includes/settings/class-alg-wc-cog-settings-orders.php:342
742+
#: includes/settings/class-alg-wc-cog-settings-orders.php:373
743+
#: includes/settings/class-alg-wc-cog-settings-orders.php:424
744744
#: includes/settings/class-alg-wc-cog-settings-shipping.php:100
745745
msgid "You will need to recalculate order's cost and profit after you change these settings."
746746
msgstr ""
@@ -750,25 +750,25 @@ msgid "Extra gateway costs"
750750
msgstr ""
751751

752752
#: includes/settings/class-alg-wc-cog-settings-gateways.php:65
753-
#: includes/settings/class-alg-wc-cog-settings-orders.php:346
753+
#: includes/settings/class-alg-wc-cog-settings-orders.php:347
754754
#: includes/settings/class-alg-wc-cog-settings-shipping.php:135
755755
msgid "Fixed cost"
756756
msgstr ""
757757

758758
#: includes/settings/class-alg-wc-cog-settings-gateways.php:66
759-
#: includes/settings/class-alg-wc-cog-settings-orders.php:347
759+
#: includes/settings/class-alg-wc-cog-settings-orders.php:348
760760
#: includes/settings/class-alg-wc-cog-settings-shipping.php:136
761761
msgid "In %s."
762762
msgstr ""
763763

764764
#: includes/settings/class-alg-wc-cog-settings-gateways.php:73
765-
#: includes/settings/class-alg-wc-cog-settings-orders.php:354
765+
#: includes/settings/class-alg-wc-cog-settings-orders.php:355
766766
#: includes/settings/class-alg-wc-cog-settings-shipping.php:143
767767
msgid "Percent cost"
768768
msgstr ""
769769

770770
#: includes/settings/class-alg-wc-cog-settings-gateways.php:74
771-
#: includes/settings/class-alg-wc-cog-settings-orders.php:355
771+
#: includes/settings/class-alg-wc-cog-settings-orders.php:356
772772
#: includes/settings/class-alg-wc-cog-settings-shipping.php:144
773773
msgid "Percent from order total."
774774
msgstr ""
@@ -787,7 +787,7 @@ msgid "This section lets you add custom columns to the WooCommerce admin %s."
787787
msgstr ""
788788

789789
#: includes/settings/class-alg-wc-cog-settings-orders.php:46
790-
#: includes/settings/class-alg-wc-cog-settings-orders.php:405
790+
#: includes/settings/class-alg-wc-cog-settings-orders.php:406
791791
msgid "orders list"
792792
msgstr ""
793793

@@ -802,7 +802,7 @@ msgstr ""
802802

803803
#: includes/settings/class-alg-wc-cog-settings-orders.php:53
804804
#: includes/settings/class-alg-wc-cog-settings-orders.php:130
805-
#: includes/settings/class-alg-wc-cog-settings-orders.php:402
805+
#: includes/settings/class-alg-wc-cog-settings-orders.php:403
806806
#: includes/settings/class-alg-wc-cog-settings-products.php:48
807807
#: includes/settings/class-alg-wc-cog-settings-products.php:55
808808
msgid "Add"
@@ -974,7 +974,7 @@ msgid "Total to calculate all extra costs percentage fees from (%s)."
974974
msgstr ""
975975

976976
#: includes/settings/class-alg-wc-cog-settings-orders.php:240
977-
#: includes/settings/class-alg-wc-cog-settings-orders.php:339
977+
#: includes/settings/class-alg-wc-cog-settings-orders.php:340
978978
msgid "All Orders"
979979
msgstr ""
980980

@@ -1068,18 +1068,19 @@ msgid "Refund calculation"
10681068
msgstr ""
10691069

10701070
#: includes/settings/class-alg-wc-cog-settings-orders.php:318
1071-
msgid "Profit and price ignore refunds"
1071+
msgid "Profit ignore refunds"
10721072
msgstr ""
10731073

10741074
#: includes/settings/class-alg-wc-cog-settings-orders.php:319
1075-
msgid "Calculate profit based on total refunded"
1075+
msgid "Subtract total refunded from profit"
10761076
msgstr ""
10771077

10781078
#: includes/settings/class-alg-wc-cog-settings-orders.php:320
1079-
msgid "Calculate profit and price based on item refunded amount"
1079+
msgid "Subtract each item's refund amount from profit"
10801080
msgstr ""
10811081

10821082
#: includes/settings/class-alg-wc-cog-settings-orders.php:321
1083+
#: includes/settings/class-alg-wc-cog-settings-orders.php:327
10831084
msgid "Calculate profit by the difference between Net Payment and Cost"
10841085
msgstr ""
10851086

@@ -1091,55 +1092,59 @@ msgstr ""
10911092
msgid "Include tax on Net Payment"
10921093
msgstr ""
10931094

1094-
#: includes/settings/class-alg-wc-cog-settings-orders.php:340
1095+
#: includes/settings/class-alg-wc-cog-settings-orders.php:327
1096+
msgid "Only works with %s."
1097+
msgstr ""
1098+
1099+
#: includes/settings/class-alg-wc-cog-settings-orders.php:341
10951100
msgid "Here you can add extra costs for your orders, e.g. handling fees."
10961101
msgstr ""
10971102

1098-
#: includes/settings/class-alg-wc-cog-settings-orders.php:369
1099-
#: includes/settings/class-alg-wc-cog-settings-orders.php:377
1100-
#: includes/settings/class-alg-wc-cog-settings-orders.php:385
1101-
#: includes/settings/class-alg-wc-cog-settings-orders.php:393
1102-
#: includes/settings/class-alg-wc-cog-settings-orders.php:404
1103+
#: includes/settings/class-alg-wc-cog-settings-orders.php:370
1104+
#: includes/settings/class-alg-wc-cog-settings-orders.php:378
1105+
#: includes/settings/class-alg-wc-cog-settings-orders.php:386
1106+
#: includes/settings/class-alg-wc-cog-settings-orders.php:394
1107+
#: includes/settings/class-alg-wc-cog-settings-orders.php:405
11031108
msgid "Per Order"
11041109
msgstr ""
11051110

1106-
#: includes/settings/class-alg-wc-cog-settings-orders.php:370
1111+
#: includes/settings/class-alg-wc-cog-settings-orders.php:371
11071112
msgid "Adds \"%s\" meta box to admin order edit page."
11081113
msgstr ""
11091114

1110-
#: includes/settings/class-alg-wc-cog-settings-orders.php:401
1115+
#: includes/settings/class-alg-wc-cog-settings-orders.php:402
11111116
msgid "Columns"
11121117
msgstr ""
11131118

1114-
#: includes/settings/class-alg-wc-cog-settings-orders.php:403
1119+
#: includes/settings/class-alg-wc-cog-settings-orders.php:404
11151120
msgid "Will add \"%s\" columns to the WooCommerce admin %s."
11161121
msgstr ""
11171122

1118-
#: includes/settings/class-alg-wc-cog-settings-orders.php:406
1123+
#: includes/settings/class-alg-wc-cog-settings-orders.php:407
11191124
msgid "One column per fee."
11201125
msgstr ""
11211126

1122-
#: includes/settings/class-alg-wc-cog-settings-orders.php:419
1127+
#: includes/settings/class-alg-wc-cog-settings-orders.php:420
11231128
msgid "From Meta"
11241129
msgstr ""
11251130

1126-
#: includes/settings/class-alg-wc-cog-settings-orders.php:420
1131+
#: includes/settings/class-alg-wc-cog-settings-orders.php:421
11271132
msgid "Adds extra costs from order meta."
11281133
msgstr ""
11291134

1130-
#: includes/settings/class-alg-wc-cog-settings-orders.php:421
1135+
#: includes/settings/class-alg-wc-cog-settings-orders.php:422
11311136
msgid "E.g.: %s."
11321137
msgstr ""
11331138

1134-
#: includes/settings/class-alg-wc-cog-settings-orders.php:428
1139+
#: includes/settings/class-alg-wc-cog-settings-orders.php:429
11351140
msgid "Meta keys"
11361141
msgstr ""
11371142

1138-
#: includes/settings/class-alg-wc-cog-settings-orders.php:429
1143+
#: includes/settings/class-alg-wc-cog-settings-orders.php:430
11391144
msgid "Ignored if empty."
11401145
msgstr ""
11411146

1142-
#: includes/settings/class-alg-wc-cog-settings-orders.php:430
1147+
#: includes/settings/class-alg-wc-cog-settings-orders.php:431
11431148
msgid "One meta key per line."
11441149
msgstr ""
11451150

readme.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Contributors: wpcodefactory
33
Tags: woocommerce, cost, cost of goods, cog, cost of goods sold, cogs, woo commerce
44
Requires at least: 4.4
55
Tested up to: 5.6
6-
Stable tag: 2.3.6
6+
Stable tag: 2.3.7
77
License: GNU General Public License v3.0
88
License URI: http://www.gnu.org/licenses/gpl-3.0.html
99

@@ -83,6 +83,9 @@ And then you can follow these steps:
8383

8484
== Changelog ==
8585

86+
= 2.3.7 - 28/01/2021 =
87+
* Fix "Refund calculation" option.
88+
8689
= 2.3.6 - 27/01/2021 =
8790
* Fix - Orders - Refunds - "Net Payment inclusive of tax" option.
8891
* Fix error - Call to undefined method `OrderRefund::get_total_refunded()`.

0 commit comments

Comments
 (0)