У меня есть поиск по всей сети в поисках фрагмента, плагина или любой помощи, связанной с Wordpress WooCommerce и добавлением дискреционного подоходного налога Флориды для округа к стандартному государственному налогу с продаж в размере 6%. Сначала я думал, что смогу добиться этого, создав сложный список всех почтовых индексов Флориды, сгруппировав их по округам и установив каждый тариф для группы. Похоже, это сработало после нескольких дней ввода данных, но я обнаружил, что некоторые почтовые индексы пересекают несколько округов, фактически несколько почтовых индексов пересекают 4 разных округа, каждый из которых имеет свою собственную ставку подоходного налога. Что еще хуже, с каждым годом ставки могут меняться и часто меняются. Я хотя и об использовании City, но с теми же проблемами.
Я видел, как несколько человек пытались решить эту проблему с 2009 года, но никаких реальных решений не было опубликовано. Один из них предложил отредактировать выпадающий список штатов, чтобы добавить все округа во Флориду (например: Флорида - Алачуа, Флорида - Бейкер, Флорида - Брэдфорд), но это создаст 67 новых записей в списке 50+ штатов, что из числа клиентов штата будет вынужден пролистывать. Кроме того, ходят слухи, что в будущем интернет-компаниям, возможно, придется собирать налоги с продаж штатов, а в других штатах действуют другие налоговые ставки в каждом округе, округе и т. Д., И лишь немногие, похоже, основаны на почтовых индексах.
Единственное решение, которое я вижу в беспорядочном дополнительном налоге во Флориде, состоит в том, чтобы у всех моих клиентов во Флориде было отображено дополнительное обязательное раскрывающееся меню «Округ» (в котором перечислены 67 доступных округов Флориды), и дополнительный налог с продаж основывался бы на этом выборе. , Если в каком-либо другом штате имеется несколько налоговых юрисдикций, то можно использовать раскрывающийся список, специфичный для этого штата. Это новое раскрывающееся меню должно быть обязательно отображено на странице редактирования адреса, в области калькулятора доставки и на странице оформления заказа (практически везде, где адрес введен / отредактирован). Также можно выбрать в столбце WooCommerce - настройки - налоги - стандартные ставки - (желательно сразу за столбцом кода штата), чтобы каждую ставку можно было добавить в соответствующий округ / налоговую юрисдикцию.
Вот что я получил до сих пор ...
Мне нужно, чтобы все это было обусловлено тем, что раскрывающийся список штата будет установлен во Флориде. Если введены Канада или любые другие штаты США, кроме Флориды, этот код не должен выполняться.
function custom_admin_shipping_fields( $shipping_fields ) {
$shipping_fields['county'] = array(
'label' => __( 'Florida County', 'woocommerce' ),
'description' => 'Needed to calculate discretionary surtax.',
'desc_tip' => true,
'class' => array( 'form-row-wide', 'update_totals_on_change' ),
'priority' => 85,
'required' => true,
'show' => true,
'type' => 'select',
'options' => array(
'' => __( 'Select a Florida county...', 'woocommerce' ),
1 => __( 'Alachua', 'woocommerce' ),
2 => __( 'Baker', 'woocommerce' ),
3 => __( 'Bay', 'woocommerce' ),
4 => __( 'Bradford', 'woocommerce' ),
5 => __( 'Brevard', 'woocommerce' ),
6 => __( 'Broward', 'woocommerce' ),
7 => __( 'Calhoun', 'woocommerce' ),
8 => __( 'Charlotte', 'woocommerce' ),
9 => __( 'Citrus', 'woocommerce' ),
10 => __( 'Clay', 'woocommerce' ),
11 => __( 'Collier', 'woocommerce' ),
12 => __( 'Columbia', 'woocommerce' ),
13 => __( 'DeSoto', 'woocommerce' ),
13 => __( 'Dixie', 'woocommerce' ),
14 => __( 'Duval', 'woocommerce' ),
15 => __( 'add_more_counties_here', 'woocommerce' ),
),
);
return $shipping_fields;
}
add_filter( 'woocommerce_shipping_fields', 'custom_admin_shipping_fields');
add_filter( 'woocommerce_admin_shipping_fields', 'custom_admin_shipping_fields');
// ******************* ADMIN USER PROFILE PAGE ****************
// Would love to not have to double entry the county arrays but I could not figure out how
// to get the above code to work in the admin edit view profile page.
add_filter( 'woocommerce_customer_meta_fields', 'custom_customer_meta_fields' );
function custom_customer_meta_fields( $fields ) {
$fields['shipping']['fields']['county'] = array(
'label' => __( 'Florida County', 'woocommerce' ),
'description' => 'Needed to calculate discretionary surtax.',
'desc_tip' => true,
'class' => array( 'form-row-wide', 'update_totals_on_change' ),
'priority' => 85, // this does not move the county field to just after the state field like it does elsewhere, not sure why
'required' => true,
'show' => true,
'type' => 'select',
'options' => array(
'' => __( 'Select a Florida county...', 'woocommerce' ),
1 => __( 'Alachua', 'woocommerce' ),
2 => __( 'Baker', 'woocommerce' ),
3 => __( 'Bay', 'woocommerce' ),
4 => __( 'Bradford', 'woocommerce' ),
5 => __( 'Brevard', 'woocommerce' ),
6 => __( 'Broward', 'woocommerce' ),
7 => __( 'Calhoun', 'woocommerce' ),
8 => __( 'Charlotte', 'woocommerce' ),
9 => __( 'Citrus', 'woocommerce' ),
10 => __( 'Clay', 'woocommerce' ),
11 => __( 'Collier', 'woocommerce' ),
12 => __( 'Columbia', 'woocommerce' ),
13 => __( 'DeSoto', 'woocommerce' ),
13 => __( 'Dixie', 'woocommerce' ),
14 => __( 'Duval', 'woocommerce' ),
15 => __( 'add_more_counties_here', 'woocommerce' ),
),
);
return $fields;
}
// ***********************************************************
// the below is for the order screen, needs a little more work to display second array value field
// Would like it the save the actual name of the county and not the number for each order.
// Also, can't seem to get it to show up in the order details shipping area
/** * Update the order meta with field value */
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta');
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['county'] ) ) {
update_post_meta( $order_id, 'Florida County', sanitize_text_field( $_POST['county' ]) );
}
}
Это насколько я получил. Однако весь смысл всего этого в том, что у меня может быть столбец округа в таблице WooCommerce> Настройки> Налог> Стандартные налоговые ставки. Таким образом, я могу установить подоходный налог на уровне 0,5%, 1%, 1,5%, 2% и 2,5% соответственно для каждого округа.