/** * There was a bug in the WCS_Upgrade_2_0::add_line_tax_data() method in Subscriptions 2.0.0 and 2.0.1 which * prevented recurring line tax data from being copied correctly to newly created subscriptions. This bug was * fixed in 2.0.2, so we can now use that method to make sure line tax data is set correctly. But to do that, * we first need to massage some of the deprecated line item meta to use the original meta keys. * * @param int $subscription_line_item_id ID of the new subscription line item * @param int $old_order_item_id ID of the old order line item * @param array $old_order_item The old line item * @return bool|int the meta ID of the newly added '_line_tax_data' meta data row, or false if no line tax data was added. */ protected static function maybe_repair_line_tax_data($subscription_line_item_id, $old_order_item_id, $old_order_item) { // we need item meta in the old format so that we can use the (now fixed) WCS_Upgrade_2_0::add_line_tax_data() method and save duplicating its code $old_order_item['item_meta']['_recurring_line_total'] = isset($old_order_item['item_meta']['_wcs_migrated_recurring_line_total']) ? $old_order_item['item_meta']['_wcs_migrated_recurring_line_total'] : 0; $old_order_item['item_meta']['_recurring_line_tax'] = isset($old_order_item['item_meta']['_wcs_migrated_recurring_line_tax']) ? $old_order_item['item_meta']['_wcs_migrated_recurring_line_tax'] : 0; $old_order_item['item_meta']['_recurring_line_subtotal_tax'] = isset($old_order_item['item_meta']['_wcs_migrated_recurring_line_subtotal_tax']) ? $old_order_item['item_meta']['_wcs_migrated_recurring_line_subtotal_tax'] : 0; if (isset($old_order_item['item_meta']['_wcs_migrated_recurring_line_tax_data'])) { $old_order_item['item_meta']['_recurring_line_tax_data'] = $old_order_item['item_meta']['_wcs_migrated_recurring_line_tax_data']; } return WCS_Upgrade_2_0::add_line_tax_data($subscription_line_item_id, $old_order_item_id, $old_order_item); }