Plugin Directory

Changeset 2660400


Ignore:
Timestamp:
01/19/2022 09:33:35 PM (4 years ago)
Author:
taxjar
Message:

Preparing for 4.1.0 release

Location:
taxjar-simplified-taxes-for-woocommerce/trunk
Files:
8 added
12 edited

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
    17# 4.0.2 (2021-12-20)
    28* Filter invalid PTCs before creating transactions in TaxJar.
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/TaxCalculation/class-tax-calculator-builder.php

    r2628282 r2660400  
    99
    1010use WC_Cart;
     11use WC_Order;
    1112use WC_Taxjar_Nexus;
    1213use TaxJar_Settings;
     
    102103        $this->set_order_validator( $order );
    103104        $this->set_context( 'api_order' );
     105        $this->set_order_tax_result_data_store( $order );
    104106    }
    105107
     
    115117        $this->set_order_validator( $order );
    116118        $this->set_context( 'order' );
     119        $this->set_order_tax_result_data_store( $order );
    117120    }
    118121
     
    271274        $this->set_order_validator( $order );
    272275        $this->set_context( 'admin_order' );
     276        $this->set_order_tax_result_data_store( $order );
    273277    }
    274278
     
    295299        $this->set_order_validator( $subscription );
    296300        $this->set_context( 'subscription_order' );
     301        $this->set_order_tax_result_data_store( $subscription );
    297302        return $this->calculator;
    298303    }
     
    311316        $this->set_order_validator( $renewal );
    312317        $this->set_context( 'renewal_order' );
     318        $this->set_order_tax_result_data_store( $renewal );
    313319        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 );
    314330    }
    315331
     
    327343        $this->set_cart_validator( $cart );
    328344        $this->set_context( 'cart' );
     345        $this->set_cart_tax_result_data_store( $cart );
    329346        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 );
    330357    }
    331358
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/TaxCalculation/class-tax-calculator.php

    r2628282 r2660400  
    8484
    8585    /**
     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    /**
    86100     * Sets the logger.
    87101     *
     
    153167    public function get_context() {
    154168        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;
    155178    }
    156179
     
    167190        } catch ( Exception $exception ) {
    168191            $this->failure( $exception );
     192        } finally {
     193            $this->result_data_store->update( $this->result );
    169194        }
    170195    }
     
    251276     */
    252277    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 );
    259284    }
    260285
     
    265290     */
    266291    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() );
    271296
    272297        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() ) );
    274299        }
    275300
    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 );
    278303    }
    279304}
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/abstract-class-taxjar-record.php

    r2374160 r2660400  
    290290    }
    291291
    292     public function add_object_sync_metadata() {
     292    public function update_object_sync_success_meta_data() {
    293293        $data = $this->get_data();
    294294        $data_hash = hash( 'md5', serialize( $data ) );
     
    296296        $this->object->update_meta_data( '_taxjar_last_sync', $sync_datetime );
    297297        $this->object->update_meta_data( '_taxjar_hash', $data_hash );
     298        $this->object->delete_meta_data( '_taxjar_sync_last_error' );
    298299        $this->object->save();
    299300    }
     
    330331
    331332        $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        }
    332340    }
    333341
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-customer-record.php

    r2464547 r2660400  
    8080    public function sync_success() {
    8181        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 );
    8388    }
    8489
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-order-record.php

    r2646984 r2660400  
    3131    public function should_sync( $ignore_status = false ) {
    3232        if ( ! isset( $this->object ) ) {
    33             $this->add_error( __( 'Order failed validation - order object not loaded to record before syncing.', 'wc-taxjar' ) );
     33            $this->add_error( __( 'Order object not loaded to record before syncing.', 'wc-taxjar' ) );
    3434            return false;
    3535        }
     
    3939            $valid_statuses = apply_filters( 'taxjar_valid_order_statuses_for_sync', array( 'completed', 'refunded' ) );
    4040            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) );
    4242                return false;
    4343            }
     
    4545            if ( WC_Taxjar_Transaction_Sync::should_validate_order_completed_date() ) {
    4646                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' ) );
    4848                    return false;
    4949                }
     
    5353        if ( ! $this->get_force_push() ) {
    5454            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' ) );
    5656                return false;
    5757            }
     
    6161
    6262        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() ) );
    6464            return false;
    6565        }
    6666
    6767        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() ) );
    6969            return false;
    7070        }
    7171
    7272        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' ) );
    7474            return false;
    7575        }
    7676
    7777        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' ) );
    7979            return false;
    8080        }
     
    8888        // prevent creating new record in queue when updating a successfully synced order
    8989        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 );
    9199        add_action( 'woocommerce_update_order', array( 'WC_Taxjar_Transaction_Sync', 'order_updated' ) );
    92100    }
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-refund-record.php

    r2646984 r2660400  
    2424        $data = $this->get_data();
    2525        if ( empty( $data ) ) {
    26             $this->add_error( __( 'Refund failed validation - refund object not loaded to record before syncing.', 'wc-taxjar' ) );
     26            $this->add_error( __( 'Refund object not loaded to record before syncing.', 'wc-taxjar' ) );
    2727            return false;
    2828        }
     
    3030        if ( WC_Taxjar_Transaction_Sync::should_validate_order_completed_date() ) {
    3131            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' ) );
    3333                return false;
    3434            }
     
    3737        $valid_order_statuses = apply_filters( 'taxjar_valid_order_statuses_for_sync', array( 'completed', 'refunded' ) );
    3838        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 ) );
    4040            return false;
    4141        }
     
    4343        if ( ! $this->get_force_push() ) {
    4444            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' ) );
    4646                return false;
    4747            }
     
    4949
    5050        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()) );
    5252            return false;
    5353        }
    5454
    5555        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() ) );
    5757            return false;
    5858        }
    5959
    6060        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' ) );
    6262            return false;
    6363        }
    6464
    6565        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' ) );
    6767            return false;
    6868        }
     
    7373    public function sync_success() {
    7474        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 );
    7681    }
    7782
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-taxjar-tax-calculation.php

    r2646984 r2660400  
    3939
    4040        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 );
    4153    }
    4254
     
    133145     */
    134146    private function is_mini_cart() {
    135         return is_cart() && is_ajax();
     147        return is_cart() && wp_doing_ajax();
    136148    }
    137149
  • taxjar-simplified-taxes-for-woocommerce/trunk/includes/class-wc-taxjar-integration.php

    r2538727 r2660400  
    4646            $this->tax_calculations = new TaxJar_Tax_Calculation();
    4747
    48             if ( $this->on_settings_page() ) {
     48            if ( is_admin() ) {
    4949                add_action( 'admin_enqueue_scripts', array( $this, 'load_taxjar_admin_assets' ) );
    5050            }
     
    5454                add_action( 'admin_enqueue_scripts', array( $this, 'load_taxjar_admin_new_order_assets' ) );
    5555            }
     56
     57            new \TaxJar\Admin_Meta_Boxes();
    5658        }
    5759
     
    219221
    220222        /**
    221          * Checks if currently on the TaxJar settings page
    222          *
    223          * @return boolean
    224          */
    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         /**
    230223         * Admin Assets
    231224         */
  • 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 
    151.widefat .column-taxjar_actions a.button {
    162    display: block;
     
    9278    display: none;
    9379}
     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  
    33Tags: woocommerce, taxjar, tax, taxes, sales tax, tax calculation, sales tax compliance, sales tax filing
    44Requires at least: 5.4
    5 Tested up to: 5.8.2
    6 Stable tag: 4.0.2
     5Tested up to: 5.8.3
     6Stable tag: 4.1.0
    77License: GPLv2 or later
    88URI: http://www.gnu.org/licenses/gpl-2.0.html
    9 WC requires at least: 5.5.0
    10 WC tested up to: 6.0.0
     9WC requires at least: 5.6.0
     10WC tested up to: 6.1.0
    1111
    1212Trusted 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.
     
    9595
    9696== 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
    97103
    98104= 4.0.2 (2021-12-20)
  • taxjar-simplified-taxes-for-woocommerce/trunk/taxjar-woocommerce.php

    r2646984 r2660400  
    44 * Plugin URI: https://www.taxjar.com/woocommerce-sales-tax-plugin/
    55 * 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.2
     6 * Version: 4.1.0
    77 * Author: TaxJar
    88 * Author URI: https://www.taxjar.com
    9  * WC requires at least: 5.5.0
    10  * WC tested up to: 6.0.0
     9 * WC requires at least: 5.6.0
     10 * WC tested up to: 6.1.0
    1111 * Requires PHP: 7.0
    1212 *
     
    4444final class WC_Taxjar {
    4545
    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';
    4848
    4949    /**
     
    6969            include_once 'includes/interfaces/class-tax-applicator-interface.php';
    7070            include_once 'includes/interfaces/class-tax-calculation-validator-interface.php';
     71            include_once 'includes/interfaces/class-tax-calculation-result-data-store.php';
    7172
    7273            // Include our integration class and WP_User for wp_delete_user()
     
    115116            include_once 'includes/TaxCalculation/class-cart-calculation-logger.php';
    116117            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';
    117123
    118124            // Register the integration.
Note: See TracChangeset for help on using the changeset viewer.