Changeset 2660400
- Timestamp:
- 01/19/2022 09:33:35 PM (4 years ago)
- Location:
- taxjar-simplified-taxes-for-woocommerce/trunk
- Files:
-
- 8 added
- 12 edited
-
CHANGELOG.md (modified) (1 diff)
-
includes/TaxCalculation/class-cart-tax-calculation-result-data-store.php (added)
-
includes/TaxCalculation/class-order-tax-calculation-result-data-store.php (added)
-
includes/TaxCalculation/class-tax-calculator-builder.php (modified) (7 diffs)
-
includes/TaxCalculation/class-tax-calculator.php (modified) (5 diffs)
-
includes/abstract-class-taxjar-record.php (modified) (3 diffs)
-
includes/admin (added)
-
includes/admin/class-admin-meta-boxes.php (added)
-
includes/admin/class-order-meta-box.php (added)
-
includes/admin/views (added)
-
includes/admin/views/html-order-meta-box.php (added)
-
includes/class-taxjar-customer-record.php (modified) (1 diff)
-
includes/class-taxjar-order-record.php (modified) (6 diffs)
-
includes/class-taxjar-refund-record.php (modified) (6 diffs)
-
includes/class-taxjar-tax-calculation.php (modified) (2 diffs)
-
includes/class-wc-taxjar-integration.php (modified) (3 diffs)
-
includes/css/admin.css (modified) (2 diffs)
-
includes/interfaces/class-tax-calculation-result-data-store.php (added)
-
readme.txt (modified) (2 diffs)
-
taxjar-woocommerce.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
taxjar-simplified-taxes-for-woocommerce/trunk/CHANGELOG.md
r2646984 r2660400 1 # 4.1.0 (2022-01-19) 2 * Add order meta box to give details of calculation and sync statuses 3 * Remove usage of deprecated function is_ajax 4 * WooCommerce tested up to 6.1 5 * Update minimum WordPress version to 5.6 6 1 7 # 4.0.2 (2021-12-20) 2 8 * Filter invalid PTCs before creating transactions in TaxJar. -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/TaxCalculation/class-tax-calculator-builder.php
r2628282 r2660400 9 9 10 10 use WC_Cart; 11 use WC_Order; 11 12 use WC_Taxjar_Nexus; 12 13 use TaxJar_Settings; … … 102 103 $this->set_order_validator( $order ); 103 104 $this->set_context( 'api_order' ); 105 $this->set_order_tax_result_data_store( $order ); 104 106 } 105 107 … … 115 117 $this->set_order_validator( $order ); 116 118 $this->set_context( 'order' ); 119 $this->set_order_tax_result_data_store( $order ); 117 120 } 118 121 … … 271 274 $this->set_order_validator( $order ); 272 275 $this->set_context( 'admin_order' ); 276 $this->set_order_tax_result_data_store( $order ); 273 277 } 274 278 … … 295 299 $this->set_order_validator( $subscription ); 296 300 $this->set_context( 'subscription_order' ); 301 $this->set_order_tax_result_data_store( $subscription ); 297 302 return $this->calculator; 298 303 } … … 311 316 $this->set_order_validator( $renewal ); 312 317 $this->set_context( 'renewal_order' ); 318 $this->set_order_tax_result_data_store( $renewal ); 313 319 return $this->calculator; 320 } 321 322 /** 323 * Set the tax result data store when building an order calculator. 324 * 325 * @param WC_Order $order Order whose tax is being calculated. 326 */ 327 private function set_order_tax_result_data_store( WC_Order $order ) { 328 $result_data_store = new Order_Tax_Calculation_Result_Data_Store( $order ); 329 $this->calculator->set_result_data_store( $result_data_store ); 314 330 } 315 331 … … 327 343 $this->set_cart_validator( $cart ); 328 344 $this->set_context( 'cart' ); 345 $this->set_cart_tax_result_data_store( $cart ); 329 346 return $this->calculator; 347 } 348 349 /** 350 * Set the tax result data store when building a cart calculator. 351 * 352 * @param WC_Cart $cart Cart whose tax is being calculated. 353 */ 354 private function set_cart_tax_result_data_store( WC_Cart $cart ) { 355 $result_data_store = new Cart_Tax_Calculation_Result_Data_Store( $cart ); 356 $this->calculator->set_result_data_store( $result_data_store ); 330 357 } 331 358 -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/TaxCalculation/class-tax-calculator.php
r2628282 r2660400 84 84 85 85 /** 86 * Persists the tax calculation results on the object having tax calculated. 87 * 88 * @var Tax_Calculation_Result_Data_Store 89 */ 90 private $result_data_store; 91 92 /** 93 * Result of tax calculation. 94 * 95 * @var Tax_Calculation_Result 96 */ 97 private $result; 98 99 /** 86 100 * Sets the logger. 87 101 * … … 153 167 public function get_context() { 154 168 return $this->context; 169 } 170 171 /** 172 * Set the result data store. 173 * 174 * @param Tax_Calculation_Result_Data_Store $data_store Result data store. 175 */ 176 public function set_result_data_store( Tax_Calculation_Result_Data_Store $data_store ) { 177 $this->result_data_store = $data_store; 155 178 } 156 179 … … 167 190 } catch ( Exception $exception ) { 168 191 $this->failure( $exception ); 192 } finally { 193 $this->result_data_store->update( $this->result ); 169 194 } 170 195 } … … 251 276 */ 252 277 private function success() { 253 $ result = new Tax_Calculation_Result();254 $ result->set_success( true );255 $ result->set_context( $this->get_context() );256 $ result->set_raw_request( $this->request_body->to_json() );257 $ result->set_raw_response( wp_json_encode( $this->tax_details->get_raw_response() ) );258 $this->logger->log_success( $ result );278 $this->result = new Tax_Calculation_Result(); 279 $this->result->set_success( true ); 280 $this->result->set_context( $this->get_context() ); 281 $this->result->set_raw_request( $this->request_body->to_json() ); 282 $this->result->set_raw_response( wp_json_encode( $this->tax_details->get_raw_response() ) ); 283 $this->logger->log_success( $this->result ); 259 284 } 260 285 … … 265 290 */ 266 291 private function failure( Exception $exception ) { 267 $ result = new Tax_Calculation_Result();268 $ result->set_success( false );269 $ result->set_context( $this->get_context() );270 $ result->set_raw_request( $this->request_body->to_json() );292 $this->result = new Tax_Calculation_Result(); 293 $this->result->set_success( false ); 294 $this->result->set_context( $this->get_context() ); 295 $this->result->set_raw_request( $this->request_body->to_json() ); 271 296 272 297 if ( $this->tax_details ) { 273 $ result->set_raw_response( wp_json_encode( $this->tax_details->get_raw_response() ) );298 $this->result->set_raw_response( wp_json_encode( $this->tax_details->get_raw_response() ) ); 274 299 } 275 300 276 $ result->set_error_message( $exception->getMessage() );277 $this->logger->log_failure( $ result, $exception );301 $this->result->set_error_message( $exception->getMessage() ); 302 $this->logger->log_failure( $this->result, $exception ); 278 303 } 279 304 } -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/abstract-class-taxjar-record.php
r2374160 r2660400 290 290 } 291 291 292 public function add_object_sync_metadata() {292 public function update_object_sync_success_meta_data() { 293 293 $data = $this->get_data(); 294 294 $data_hash = hash( 'md5', serialize( $data ) ); … … 296 296 $this->object->update_meta_data( '_taxjar_last_sync', $sync_datetime ); 297 297 $this->object->update_meta_data( '_taxjar_hash', $data_hash ); 298 $this->object->delete_meta_data( '_taxjar_sync_last_error' ); 298 299 $this->object->save(); 299 300 } … … 330 331 331 332 $this->save(); 333 } 334 335 public function update_object_sync_failure_meta_data( $error_message ) { 336 if ( $this->object ) { 337 $this->object->update_meta_data( '_taxjar_sync_last_error', $error_message ); 338 $this->object->save(); 339 } 332 340 } 333 341 -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-customer-record.php
r2464547 r2660400 80 80 public function sync_success() { 81 81 parent::sync_success(); 82 $this->add_object_sync_metadata(); 82 $this->update_object_sync_success_meta_data(); 83 } 84 85 public function sync_failure( $error_message ) { 86 parent::sync_failure( $error_message ); 87 $this->update_object_sync_failure_meta_data( $error_message ); 83 88 } 84 89 -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-order-record.php
r2646984 r2660400 31 31 public function should_sync( $ignore_status = false ) { 32 32 if ( ! isset( $this->object ) ) { 33 $this->add_error( __( 'Order failed validation - orderobject not loaded to record before syncing.', 'wc-taxjar' ) );33 $this->add_error( __( 'Order object not loaded to record before syncing.', 'wc-taxjar' ) ); 34 34 return false; 35 35 } … … 39 39 $valid_statuses = apply_filters( 'taxjar_valid_order_statuses_for_sync', array( 'completed', 'refunded' ) ); 40 40 if ( ! in_array( $status, $valid_statuses ) ) { 41 $this->add_error( __( 'Order failed validation - invalid order status.', 'wc-taxjar') );41 $this->add_error( __( 'Order has an invalid status. Only orders with the following statuses can sync to TaxJar: ', 'wc-taxjar' ) . implode( ", ", $valid_statuses) ); 42 42 return false; 43 43 } … … 45 45 if ( WC_Taxjar_Transaction_Sync::should_validate_order_completed_date() ) { 46 46 if ( empty( $this->object->get_date_completed() ) ) { 47 $this->add_error( __( 'Order failed validation - order has no completed date', 'wc-taxjar' ) );47 $this->add_error( __( 'Order does not have a completed date. Only orders that have been completed can sync to TaxJar.', 'wc-taxjar' ) ); 48 48 return false; 49 49 } … … 53 53 if ( ! $this->get_force_push() ) { 54 54 if ( hash( 'md5', serialize( $this->get_data() ) ) === $this->get_object_hash() ) { 55 $this->add_error( __( 'Order failed validation, order data not different than previous sync.', 'wc-taxjar' ) );55 $this->add_error( __( 'Order data is not different from previous sync, re-syncing the transaction is not necessary.', 'wc-taxjar' ) ); 56 56 return false; 57 57 } … … 61 61 62 62 if ( ! in_array( $order_data[ 'to_country' ], TaxJar_Record::allowed_countries() ) ) { 63 $this->add_error( __( 'Order failed validation, ship to country did not pass validation', 'wc-taxjar') );63 $this->add_error( __( 'Order ship to country is not supported for reporting and filing. Only orders shipped to the following countries will sync to TaxJar: ', 'wc-taxjar' ) . implode( ", ", TaxJar_Record::allowed_countries() ) ); 64 64 return false; 65 65 } 66 66 67 67 if ( ! in_array( $this->object->get_currency(), TaxJar_Record::allowed_currencies() ) ) { 68 $this->add_error( __( 'Order failed validation, currency did not pass validation.', 'wc-taxjar') );68 $this->add_error( __( 'Order currency is not supported. Only orders with the following currencies will sync to TaxJar: ', 'wc-taxjar' ) . implode( ", ", TaxJar_Record::allowed_currencies() ) ); 69 69 return false; 70 70 } 71 71 72 72 if ( ! $this->has_valid_ship_from_address() ) { 73 $this->add_error( __( 'Order failed validation, missing required ship from field', 'wc-taxjar' ) );73 $this->add_error( __( 'Order is missing required ship from field.', 'wc-taxjar' ) ); 74 74 return false; 75 75 } 76 76 77 77 if ( empty( $order_data[ 'to_country' ] ) || empty( $order_data[ 'to_state' ] ) || empty( $order_data[ 'to_zip' ] ) || empty( $order_data[ 'to_city' ] ) ) { 78 $this->add_error( __( 'Order failed validation,missing required ship to field.', 'wc-taxjar' ) );78 $this->add_error( __( 'Order is missing required ship to field.', 'wc-taxjar' ) ); 79 79 return false; 80 80 } … … 88 88 // prevent creating new record in queue when updating a successfully synced order 89 89 remove_action( 'woocommerce_update_order', array( 'WC_Taxjar_Transaction_Sync', 'order_updated' ) ); 90 $this->add_object_sync_metadata(); 90 $this->update_object_sync_success_meta_data(); 91 add_action( 'woocommerce_update_order', array( 'WC_Taxjar_Transaction_Sync', 'order_updated' ) ); 92 } 93 94 public function sync_failure( $error_message ) { 95 parent::sync_failure( $error_message ); 96 97 remove_action( 'woocommerce_update_order', array( 'WC_Taxjar_Transaction_Sync', 'order_updated' ) ); 98 $this->update_object_sync_failure_meta_data( $error_message ); 91 99 add_action( 'woocommerce_update_order', array( 'WC_Taxjar_Transaction_Sync', 'order_updated' ) ); 92 100 } -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-refund-record.php
r2646984 r2660400 24 24 $data = $this->get_data(); 25 25 if ( empty( $data ) ) { 26 $this->add_error( __( 'Refund failed validation - refundobject not loaded to record before syncing.', 'wc-taxjar' ) );26 $this->add_error( __( 'Refund object not loaded to record before syncing.', 'wc-taxjar' ) ); 27 27 return false; 28 28 } … … 30 30 if ( WC_Taxjar_Transaction_Sync::should_validate_order_completed_date() ) { 31 31 if ( empty( $this->order_completed_date ) ) { 32 $this->add_error( __( ' Refund failed validation - parent order has no completed date.', 'wc-taxjar' ) );32 $this->add_error( __( 'Parent order does not have a completed date. Only refunds of orders that have been completed can sync to TaxJar.', 'wc-taxjar' ) ); 33 33 return false; 34 34 } … … 37 37 $valid_order_statuses = apply_filters( 'taxjar_valid_order_statuses_for_sync', array( 'completed', 'refunded' ) ); 38 38 if ( empty( $this->order_status ) || ! in_array( $this->order_status, $valid_order_statuses ) ) { 39 $this->add_error( __( ' Refund failed validation - parent order does not have valid status.', 'wc-taxjar') );39 $this->add_error( __( 'Parent order has an invalid status. Only refunds of orders with the following statuses can sync to TaxJar: ', 'wc-taxjar' ) . implode( ", ", $valid_order_statuses ) ); 40 40 return false; 41 41 } … … 43 43 if ( ! $this->get_force_push() ) { 44 44 if ( hash( 'md5', serialize( $this->get_data() ) ) === $this->get_object_hash() ) { 45 $this->add_error( __( 'Refund failed validation - not updated since last sync.', 'wc-taxjar' ) );45 $this->add_error( __( 'Refund data is not different from previous sync, re-syncing the transaction is not necessary.', 'wc-taxjar' ) ); 46 46 return false; 47 47 } … … 49 49 50 50 if ( ! in_array( $data[ 'to_country' ], TaxJar_Record::allowed_countries() ) ) { 51 $this->add_error( __( ' Refund failed validation, ship to country did not pass validation', 'wc-taxjar') );51 $this->add_error( __( 'Parent order ship to country is not supported for reporting and filing. Only orders shipped to the following countries will sync to TaxJar: ', 'wc-taxjar' ) . implode( ", ", TaxJar_Record::allowed_countries()) ); 52 52 return false; 53 53 } 54 54 55 55 if ( ! in_array( $this->object->get_currency(), TaxJar_Record::allowed_currencies() ) ) { 56 $this->add_error( __( 'Refund failed validation, currency did not pass validation.', 'wc-taxjar') );56 $this->add_error( __( 'Refund currency is not supported. Only refunds with the following currencies will sync to TaxJar: ', 'wc-taxjar' ) . implode( ", ", TaxJar_Record::allowed_currencies() ) ); 57 57 return false; 58 58 } 59 59 60 60 if ( ! $this->has_valid_ship_from_address() ) { 61 $this->add_error( __( ' Refund failed validation - missing required ship from field on parent order', 'wc-taxjar' ) );61 $this->add_error( __( 'Parent order is missing required ship from field.', 'wc-taxjar' ) ); 62 62 return false; 63 63 } 64 64 65 65 if ( empty( $data[ 'to_country' ] ) || empty( $data[ 'to_state' ] ) || empty( $data[ 'to_zip' ] ) || empty( $data[ 'to_city' ] ) ) { 66 $this->add_error( __( ' Refund failed validation - missing required ship to field on parent order.', 'wc-taxjar' ) );66 $this->add_error( __( 'Parent order is missing required ship to field', 'wc-taxjar' ) ); 67 67 return false; 68 68 } … … 73 73 public function sync_success() { 74 74 parent::sync_success(); 75 $this->add_object_sync_metadata(); 75 $this->update_object_sync_success_meta_data(); 76 } 77 78 public function sync_failure( $error_message ) { 79 parent::sync_failure( $error_message ); 80 $this->update_object_sync_failure_meta_data( $error_message ); 76 81 } 77 82 -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-tax-calculation.php
r2646984 r2660400 39 39 40 40 add_action( 'woocommerce_order_after_calculate_totals', array( $this, 'maybe_calculate_order_taxes' ), 10, 2 ); 41 add_action( 'woocommerce_checkout_create_order', array( $this, 'persist_cart_calculation_results_to_order'), 10, 1 ); 42 add_action( 'woocommerce_checkout_create_subscription', array( $this, 'persist_recurring_cart_calculation_results_to_subscription'), 10, 4 ); 43 } 44 45 public function persist_cart_calculation_results_to_order( $order ) { 46 $calculation_results = WC()->cart->tax_calculation_results; 47 $order->update_meta_data( '_taxjar_tax_result', $calculation_results ); 48 } 49 50 public function persist_recurring_cart_calculation_results_to_subscription( $subscription, $posted_data, $order, $recurring_cart ) { 51 $calculation_results = $recurring_cart->tax_calculation_results; 52 $subscription->update_meta_data( '_taxjar_tax_result', $calculation_results ); 41 53 } 42 54 … … 133 145 */ 134 146 private function is_mini_cart() { 135 return is_cart() && is_ajax();147 return is_cart() && wp_doing_ajax(); 136 148 } 137 149 -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-wc-taxjar-integration.php
r2538727 r2660400 46 46 $this->tax_calculations = new TaxJar_Tax_Calculation(); 47 47 48 if ( $this->on_settings_page() ) {48 if ( is_admin() ) { 49 49 add_action( 'admin_enqueue_scripts', array( $this, 'load_taxjar_admin_assets' ) ); 50 50 } … … 54 54 add_action( 'admin_enqueue_scripts', array( $this, 'load_taxjar_admin_new_order_assets' ) ); 55 55 } 56 57 new \TaxJar\Admin_Meta_Boxes(); 56 58 } 57 59 … … 219 221 220 222 /** 221 * Checks if currently on the TaxJar settings page222 *223 * @return boolean224 */225 public function on_settings_page() {226 return ( isset( $_GET['page'] ) && 'wc-settings' === $_GET['page'] && isset( $_GET['tab'] ) && 'taxjar-integration' === $_GET['tab'] );227 }228 229 /**230 223 * Admin Assets 231 224 */ -
taxjar-simplified-taxes-for-woocommerce/trunk/includes/css/admin.css
r2281088 r2660400 1 /* Remove Calculate Taxes button */2 #poststuff #woocommerce-order-totals .buttons .calc_line_taxes {3 display: none !important;4 }5 6 /* Remove Add Tax Row Button */7 .add_total_row {8 display: none !important;9 }10 11 .add-order-tax {12 display: none !important;13 }14 15 1 .widefat .column-taxjar_actions a.button { 16 2 display: block; … … 92 78 display: none; 93 79 } 80 81 #taxjar_order_data.panel-wrap { 82 overflow: hidden; 83 } 84 85 #taxjar_order_data ul.wc-tabs { 86 margin: 0; 87 width: 20%; 88 float: left; 89 line-height: 1em; 90 padding: 0 0 10px; 91 position: relative; 92 background-color: #fafafa; 93 border-right: 1px solid #eee; 94 box-sizing: border-box; 95 } 96 97 #taxjar_order_data ul.wc-tabs li { 98 margin: 0; 99 padding: 0; 100 display: block; 101 position: relative; 102 } 103 104 #taxjar_order_data ul.wc-tabs li a { 105 margin: 0; 106 padding: 10px; 107 display: block; 108 box-shadow: none; 109 text-decoration: none; 110 line-height: 20px!important; 111 border-bottom: 1px solid #eee; 112 } 113 114 #taxjar_order_data ul.wc-tabs li.active a { 115 color: #555; 116 position: relative; 117 background-color: #eee; 118 } 119 120 #taxjar_order_data ul.wc-tabs li a::before { 121 font-family: Dashicons; 122 speak: never; 123 font-weight: 400; 124 font-variant: normal; 125 text-transform: none; 126 line-height: 1; 127 -webkit-font-smoothing: antialiased; 128 content: ""; 129 text-decoration: none; 130 } 131 132 #taxjar_order_data .wc-metaboxes-wrapper, #taxjar_order_data .woocommerce_options_panel { 133 float: left; 134 width: 80%; 135 } 136 137 #taxjar.postbox .inside { 138 margin: 0; 139 padding: 0; 140 } 141 142 #taxjar_order_data ul.wc-tabs li.calculation_status_tab a::before, #taxjar_order_data ul.wc-tabs li.sync_status_tab a::before { 143 content: "\f226"; 144 } 145 146 #taxjar_order_data ul.wc-tabs li.advanced_tab a::before { 147 content: "\f111"; 148 } 149 150 #taxjar_order_data ul.wc-tabs li a span { 151 margin-left: 0.618em; 152 margin-right: 0.618em; 153 } 154 155 #taxjar_order_data ul.wc-tabs::after { 156 content: ""; 157 display: block; 158 width: 100%; 159 height: 9999em; 160 position: absolute; 161 bottom: -9999em; 162 left: 0; 163 background-color: #fafafa; 164 border-right: 1px solid #eee; 165 } 166 167 #calculation_status_order_data label span.calculation-status-icon::before { 168 font-family: Dashicons; 169 speak: never; 170 font-weight: 400; 171 font-variant: normal; 172 text-transform: none; 173 line-height: 1; 174 -webkit-font-smoothing: antialiased; 175 content: ""; 176 text-decoration: none; 177 } 178 179 #calculation_status_order_data label span.calculation-status-icon.success::before { 180 content: "\f159"; 181 color: #5b841b; 182 background-color: #5b841b; 183 border-radius: 50%; 184 } 185 186 #calculation_status_order_data label span.calculation-status-icon.fail::before { 187 content: "\f153"; 188 color: #d63638; 189 } 190 191 #calculation_status_order_data label span.calculation-status-icon.unknown::before { 192 content: "\f348"; 193 color: #dba617; 194 } 195 196 #advanced_order_data pre { 197 margin: 0 0 9px; 198 font-size: 12px; 199 padding: 5px 9px; 200 line-height: 24px; 201 max-width: 95%; 202 } 203 204 #calculation_status_order_data .description { 205 font-style: italic; 206 margin: 0px; 207 } 208 209 #advanced_order_data .accordion-section-title { 210 font-size: 12px; 211 } 212 213 #advanced_order_data span.copy-button.dashicons.dashicons-clipboard { 214 float: right; 215 margin-right: 20px; 216 font-size: 14px; 217 vertical-align: middle; 218 margin-top: 2px; 219 } 220 221 #sync_status_order_data span.sync-status::before { 222 font-family: Dashicons; 223 speak: never; 224 font-weight: 400; 225 font-variant: normal; 226 text-transform: none; 227 line-height: 1; 228 -webkit-font-smoothing: antialiased; 229 content: ""; 230 text-decoration: none; 231 margin-left: 15px; 232 vertical-align: middle; 233 } 234 235 #sync_status_order_data span.sync-status.synced::before { 236 content: "\f159"; 237 color: #5b841b; 238 background-color: #5b841b; 239 border-radius: 50%; 240 } 241 242 #sync_status_order_data span.sync-status.not-synced::before { 243 content: "\f159"; 244 color: #dcdcde; 245 background-color: #dcdcde; 246 border-radius: 50%; 247 } 248 249 #sync_status_order_data span.sync-status.failed::before { 250 content: "\f159"; 251 color: #d63638; 252 background-color: #d63638; 253 border-radius: 50%; 254 } -
taxjar-simplified-taxes-for-woocommerce/trunk/readme.txt
r2646984 r2660400 3 3 Tags: woocommerce, taxjar, tax, taxes, sales tax, tax calculation, sales tax compliance, sales tax filing 4 4 Requires at least: 5.4 5 Tested up to: 5.8. 26 Stable tag: 4. 0.25 Tested up to: 5.8.3 6 Stable tag: 4.1.0 7 7 License: GPLv2 or later 8 8 URI: http://www.gnu.org/licenses/gpl-2.0.html 9 WC requires at least: 5. 5.010 WC tested up to: 6. 0.09 WC requires at least: 5.6.0 10 WC tested up to: 6.1.0 11 11 12 12 Trusted by more than 20,000 businesses, TaxJar’s award-winning solution makes it easy to automate sales tax reporting and filing, and determine economic nexus with a single click. … … 95 95 96 96 == Changelog == 97 98 = 4.1.0 (2022-01-19) 99 * Add order meta box to give details of calculation and sync statuses 100 * Remove usage of deprecated function is_ajax 101 * WooCommerce tested up to 6.1 102 * Update minimum WordPress version to 5.6 97 103 98 104 = 4.0.2 (2021-12-20) -
taxjar-simplified-taxes-for-woocommerce/trunk/taxjar-woocommerce.php
r2646984 r2660400 4 4 * Plugin URI: https://www.taxjar.com/woocommerce-sales-tax-plugin/ 5 5 * Description: Save hours every month by putting your sales tax on autopilot. Automated, multi-state sales tax calculation, collection, and filing. 6 * Version: 4. 0.26 * Version: 4.1.0 7 7 * Author: TaxJar 8 8 * Author URI: https://www.taxjar.com 9 * WC requires at least: 5. 5.010 * WC tested up to: 6. 0.09 * WC requires at least: 5.6.0 10 * WC tested up to: 6.1.0 11 11 * Requires PHP: 7.0 12 12 * … … 44 44 final class WC_Taxjar { 45 45 46 static $version = '4. 0.2';47 public static $minimum_woocommerce_version = '5. 5.0';46 static $version = '4.1.0'; 47 public static $minimum_woocommerce_version = '5.6.0'; 48 48 49 49 /** … … 69 69 include_once 'includes/interfaces/class-tax-applicator-interface.php'; 70 70 include_once 'includes/interfaces/class-tax-calculation-validator-interface.php'; 71 include_once 'includes/interfaces/class-tax-calculation-result-data-store.php'; 71 72 72 73 // Include our integration class and WP_User for wp_delete_user() … … 115 116 include_once 'includes/TaxCalculation/class-cart-calculation-logger.php'; 116 117 include_once 'includes/TaxCalculation/class-tax-builder.php'; 118 include_once 'includes/TaxCalculation/class-cart-tax-calculation-result-data-store.php'; 119 include_once 'includes/TaxCalculation/class-order-tax-calculation-result-data-store.php'; 120 121 include_once 'includes/admin/class-admin-meta-boxes.php'; 122 include_once 'includes/admin/class-order-meta-box.php'; 117 123 118 124 // Register the integration.
Note: See TracChangeset
for help on using the changeset viewer.