WC_Tax_Rate_Importer::import( mixed $file )
Import the file if it exists and is valid.
Description Description
Parameters Parameters
- $file
-
(Required) File.
Source Source
File: includes/admin/importers/class-wc-tax-rate-importer.php
public function import( $file ) {
if ( ! is_file( $file ) ) {
$this->import_error( __( 'The file does not exist, please try again.', 'woocommerce' ) );
}
$this->import_start();
$loop = 0;
$handle = fopen( $file, 'r' );
if ( false !== $handle ) {
$header = fgetcsv( $handle, 0, $this->delimiter );
if ( 10 === count( $header ) ) {
$row = fgetcsv( $handle, 0, $this->delimiter );
while ( false !== $row ) {
list( $country, $state, $postcode, $city, $rate, $name, $priority, $compound, $shipping, $class ) = $row;
$tax_rate = array(
'tax_rate_country' => $country,
'tax_rate_state' => $state,
'tax_rate' => $rate,
'tax_rate_name' => $name,
'tax_rate_priority' => $priority,
'tax_rate_compound' => $compound ? 1 : 0,
'tax_rate_shipping' => $shipping ? 1 : 0,
'tax_rate_order' => $loop ++,
'tax_rate_class' => $class,
);
$tax_rate_id = WC_Tax::_insert_tax_rate( $tax_rate );
WC_Tax::_update_tax_rate_postcodes( $tax_rate_id, wc_clean( $postcode ) );
WC_Tax::_update_tax_rate_cities( $tax_rate_id, wc_clean( $city ) );
$row = fgetcsv( $handle, 0, $this->delimiter );
}
} else {
$this->import_error( __( 'The CSV is invalid.', 'woocommerce' ) );
}
fclose( $handle );
}
// Show Result.
echo '<div class="updated settings-error"><p>';
printf(
/* translators: %s: tax rates count */
esc_html__( 'Import complete - imported %s tax rates.', 'woocommerce' ),
'<strong>' . absint( $loop ) . '</strong>'
);
echo '</p></div>';
$this->import_end();
}