我希望在要分配给产品的不同类别中包括不同类型的税收。不幸的是,使用下面的代码,我将所有税款按标准税率计算,因此以后无法将其分配给产品。
问题是我无法以编程方式创建新的附加税种。
$tax_data = array(
'tax_rate_country' => '*',
'tax_rate_state' => '*',
'tax_rate' => $tax_rate,
'tax_rate_name' => $tax_rate_name,
'tax_rate_priority' => 1,
'tax_rate_compound' => 0,
'tax_rate_shipping' => 1,
'tax_rate_order' => 0,
'tax_rate_class' => $tax_rate_class
);
$tax_rate_id = WC_Tax::_insert_tax_rate( $tax_data );
WC_Tax::_update_tax_rate_postcodes($tax_rate_id, wc_clean('*'));
WC_Tax::_update_tax_rate_cities($tax_rate_id, wc_clean('*'));
有人可以帮助我吗?
答案 0 :(得分:0)
我开发了一个函数,在这里我简化为一个骨架,对我有用。
$tax_classes = "";
foreach( $taxes_list as $tax ) {
$tax_information_id = $tax->KODE->__toString();
$tax_classes .= sanitize_title( $tax_information_id ) . "\n";
}
if ( get_option( "woocommerce_tax_classes" ) ) {
update_option( "woocommerce_tax_classes", $tax_classes );
}
foreach( $taxes_list as $tax ) {
$tax_data = array(
'tax_rate_country' => '*',
'tax_rate_state' => '*',
'tax_rate' => $tax["vat"],
'tax_rate_name' => $tax["name"],
'tax_rate_priority' => 1,
'tax_rate_compound' => 0,
'tax_rate_shipping' => 1,
'tax_rate_order' => 0,
'tax_rate_class' => sanitize_title( $tax["code"] )
);
$tax_rate_id = WC_Tax::_insert_tax_rate( $tax_data );
WC_Tax::_update_tax_rate_postcodes($tax_rate_id, wc_clean('*'));
WC_Tax::_update_tax_rate_cities($tax_rate_id, wc_clean('*'));
}
答案 1 :(得分:0)
$tax_class_name = 'GST-15';
$tax_class_slug = 'gst-15';
$tax_rate = 8;
$tax_rate_name = 'SGST';
// Create tax classs
$tax_class = WC_Tax::create_tax_class($tax_class_name,$tax_class_slug);
//Invalidate the cache
WC_Cache_Helper::invalidate_cache_group( 'taxes' );
WC_Cache_Helper::get_transient_version( 'shipping', true );
//Attached the tax_rate to tax_class
$tax_rate_data = array(
'tax_rate_country' => '*',
'tax_rate_state' => '*',
'tax_rate' => $tax_rate,
'tax_rate_name' => $tax_rate_name,
'tax_rate_priority' => 1,
'tax_rate_compound' => 0,
'tax_rate_shipping' => 1,
'tax_rate_order' => 0,
'tax_rate_class' => $tax_class_slug
);
$tax_rate_id = WC_Tax::_insert_tax_rate( $tax_rate_data );