public function prepare_fields() { $fields = array(); $invoice_id = false; if (isset($this->data['invoice'])) { $invoice = $this->data['invoice']; $invoice_id = $invoice->id; } $profile = MS_Addon_Taxamo_Api::get_tax_profile(); $countries = MS_Addon_Taxamo_Api::get_country_codes(); $action = MS_Addon_Taxamo::AJAX_SAVE_USERPROFILE; $nonce = wp_create_nonce($action); $country_options = array('auto' => sprintf(__('The detected country %s is correct.', MS_TEXT_DOMAIN), '<strong>' . $profile->detected_country->name . '</strong>'), 'vat' => __('I have an EU VAT number and want to use it for tax declaration.', MS_TEXT_DOMAIN), 'declared' => __('Manually declare my country of residence.', MS_TEXT_DOMAIN)); $vat_details = ''; if (!empty($profile->vat_number) && $profile->vat_valid) { $vat_details = sprintf(__('This is a valid VAT number of %s. By using this you are are now exempt of VAT.', MS_TEXT_DOMAIN), '<strong>' . $profile->vat_country->name . '</strong>'); } else { $vat_details = __('VAT Number is invalid.', MS_TEXT_DOMAIN); } if ($profile->use_vat_number) { $tax_message = __('Valid EU VAT Number provided: You are exempt of VAT', MS_TEXT_DOMAIN); } else { $tax_message = __('The country used for tax calculation is %s', MS_TEXT_DOMAIN); } $fields['tax_country_label'] = array('type' => MS_Helper_Html::TYPE_HTML_TEXT, 'title' => sprintf($tax_message, '<strong>' . $profile->tax_country->name . '</strong>'), 'wrapper_class' => 'effective_tax_country'); $fields['detected_country_label'] = array('type' => MS_Helper_Html::TYPE_HTML_TEXT, 'title' => sprintf(__('We have detected that your computer is located in %s', MS_TEXT_DOMAIN), '<strong>' . $profile->detected_country->name . '</strong>')); $fields['detected_country'] = array('type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'id' => 'detected_country', 'value' => $profile->detected_country->code); $fields['country_choice'] = array('type' => MS_Helper_Html::INPUT_TYPE_RADIO, 'id' => 'country_choice', 'class' => 'country_choice', 'value' => $profile->country_choice, 'field_options' => $country_options); $fields['declared_country_code'] = array('type' => MS_Helper_Html::INPUT_TYPE_SELECT, 'id' => 'declared_country', 'title' => __('My country of residence', MS_TEXT_DOMAIN), 'desc' => __('I confirm that I am established, have my permanent address, or usually reside in the following country', MS_TEXT_DOMAIN), 'value' => $profile->declared_country->code, 'field_options' => $countries, 'wrapper_class' => 'manual_country_field'); $fields['vat_number'] = array('type' => MS_Helper_Html::INPUT_TYPE_TEXT, 'id' => 'vat_number', 'title' => __('EU VAT Number', MS_TEXT_DOMAIN), 'desc' => __('Fill this field if you are representing EU VAT payer', MS_TEXT_DOMAIN), 'wrapper_class' => 'vat_number_field', 'value' => $profile->vat_number, 'valid_country' => $profile->vat_country->vat_valid, 'after' => $vat_details); $fields['invoice_id'] = array('type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'id' => 'invoice_id', 'value' => $invoice_id); $fields['action'] = array('type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'id' => 'action', 'value' => $action); $fields['_wpnonce'] = array('type' => MS_Helper_Html::INPUT_TYPE_HIDDEN, 'id' => '_wpnonce', 'value' => $nonce); /* * 1. Checkbox "I confirm that the country of my main residence is in <country>" (in the payment table!) * 4. When VAT is entered the checkbox is disabled and VAT country is used. Checkbox 1 is hidden. */ return apply_filters('ms_addon_taxamo_userprofile_fields', $fields); }