Vat exempt
<?php
add_filter('woocommerce_billing_fields', function($fields){
$fields['vat_number'] = array(
'type' => 'text',
'label' => __('BTW nummer', 'woocommerce'),
'placeholder' => _x('', 'placeholder', 'woocommerce'),
'required' => false,
'class' => array('form-row form-row-wide', 'update_totals_on_change'),
'clear' => true,
);
$fields['vat_number']['priority'] = 35;
return $fields;
});
function sync_customer_vat_acf() {
if(isset(WC()->customer)){
$customer = WC()->customer;
$user_id = 'user_'.$customer->get_id();
if(get_field('vat_number', $user_id) && !empty(get_field('vat_number', $user_id)) && get_field('btw_exempt', $user_id)) {
$customer->set_is_vat_exempt(true);
return true;
} else {
$customer->set_is_vat_exempt(false);
return false;
}
}
return true;
}
add_action('woocommerce_cart_updated', __NAMESPACE__ . '\\sync_customer_vat_acf');
add_action('woocommerce_checkout_create_order', __NAMESPACE__ . '\\sync_customer_vat_acf');
add_action('woocommerce_checkout_update_order_review', __NAMESPACE__ . '\\sync_customer_vat_acf');
add_filter('woocommerce_create_order', function($data){
sync_customer_vat_acf();
return $data;
});
add_filter('woocommerce_order_is_vat_exempt', function($data) {
$order_id = absint( $_POST['order_id'] );
$order = wc_get_order( $order_id );
if($order->get_user_id()) {
$user_id = 'user_'.$order->get_user_id();
if(get_field('vat_number', $user_id) && !empty(get_field('vat_number', $user_id)) && get_field('btw_exempt', $user_id)) {
return true;
} else {
return false;
}
} else {
echo 'Klant is niet beschikbaar';
}
return $data;
});