如何使用单选按钮更新结帐购物车以免税?

时间:2019-05-30 18:34:30

标签: wordpress woocommerce

我正在尝试通过让用户在单选按钮上单击是,然后上传其免税文档来使用户在结帐时获得免税状态。

我可以广播和上传文件,但似乎无法在结帐页面上更新税额。

我看到了此解决方案Add Tax Exempt form on checkout in woocommerce,并尝试进行更改以匹配我的设置,但无法正常工作。 PHP不是我的强项,所以我确定我在某个地方搞砸了。

我遇到问题的部分。它不是在更新税收。

add_action( 'woocommerce_checkout_update_order_review', 'taxexempt_checkout_update_order_review');
function taxexempt_checkout_update_order_review( $post_data ) {
  global $woocommerce;

  $woocommerce->customer->set_is_vat_exempt(false);

  parse_str($post_data);

  if ( isset($uhave_tax_exempt) && $uhave_tax_exempt == '1')
    $woocommerce->customer->set_is_vat_exempt(true);                
}

正在显示单选按钮和文件上传的部分。

function add_radio_field(){
    $radioFile   = "";
    $radioFile   .='<div class="customfield_cover"><label for="some_field_name" class="">Tax Exempt? </label><div id="radio_cover_id">';
    $radioFile .='<input name="uhave_tax_exempt" class="tax_exempt" type="radio" value="1" >Yes&nbsp;&nbsp;&nbsp;&nbsp;<input class="tax_exempt" name="uhave_tax_exempt" type="radio" value="2" >No';
    $radioFile .='</div></div>';
    echo $radioFile;
 }
add_action('woocommerce_before_order_notes','add_radio_field');

function add_file_field(){
     $uploadFile   = "";
     $uploadFile   .='<div class="customfield_cover custom_file_upload_cvr" style="display:none;" >
     <label for="some_field_name" class="">Attach tax exempt / Resale certificate </label>
     <div id="upload_CNIC_image" style="position:relative;left:15px;">';
     $uploadFile .='<input id="custom_file_upload" name="tax_exempt_attachmentfile" accept="file_extension|image/*|application/pdf|application/msword" type="file"  multiple="true" />
     <input type="hidden" value="" name="uploaded_docs" id="uploaded_docs" />
     <input type="hidden" value="" name="uploaded_docs_org" id="uploaded_org" />
     <div class="remove_uploaded"></div>
     ';
     $uploadFile .='</div></div>';
     echo $uploadFile;
 }
add_action('woocommerce_before_order_notes','add_file_field');

1 个答案:

答案 0 :(得分:0)

可能无法完全解决这种情况,但是$woocommerce->customer->set_is_vat_exempt(FALSE);将不起作用,因为PHP中的布尔值都是小写,因此我将这行替换为$woocommerce->customer->set_is_vat_exempt(false);